Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/deps
diff options
context:
space:
mode:
Diffstat (limited to 'deps')
-rw-r--r--deps/npm/docs/content/configuring-npm/package-lock-json.md6
-rw-r--r--deps/npm/docs/content/using-npm/registry.md7
-rw-r--r--deps/npm/docs/content/using-npm/scope.md3
-rw-r--r--deps/npm/docs/content/using-npm/workspaces.md16
-rw-r--r--deps/npm/docs/output/commands/npm-ls.html2
-rw-r--r--deps/npm/docs/output/commands/npm.html2
-rw-r--r--deps/npm/docs/output/configuring-npm/package-lock-json.html6
-rw-r--r--deps/npm/docs/output/using-npm/registry.html6
-rw-r--r--deps/npm/docs/output/using-npm/scope.html3
-rw-r--r--deps/npm/docs/output/using-npm/workspaces.html10
-rw-r--r--deps/npm/lib/cache.js5
-rw-r--r--deps/npm/lib/config.js5
-rw-r--r--deps/npm/lib/deprecate.js2
-rw-r--r--deps/npm/lib/help.js3
-rw-r--r--deps/npm/lib/ls.js4
-rw-r--r--deps/npm/lib/npm.js3
-rw-r--r--deps/npm/lib/outdated.js6
-rw-r--r--deps/npm/lib/utils/completion/installed-deep.js4
-rw-r--r--deps/npm/lib/utils/config/describe-all.js3
-rw-r--r--deps/npm/lib/utils/npm-usage.js3
-rw-r--r--deps/npm/lib/utils/open-url.js1
-rw-r--r--deps/npm/lib/utils/tar.js11
-rw-r--r--deps/npm/man/man1/npm-access.12
-rw-r--r--deps/npm/man/man1/npm-adduser.12
-rw-r--r--deps/npm/man/man1/npm-audit.12
-rw-r--r--deps/npm/man/man1/npm-bin.12
-rw-r--r--deps/npm/man/man1/npm-bugs.12
-rw-r--r--deps/npm/man/man1/npm-cache.12
-rw-r--r--deps/npm/man/man1/npm-ci.12
-rw-r--r--deps/npm/man/man1/npm-completion.12
-rw-r--r--deps/npm/man/man1/npm-config.12
-rw-r--r--deps/npm/man/man1/npm-dedupe.12
-rw-r--r--deps/npm/man/man1/npm-deprecate.12
-rw-r--r--deps/npm/man/man1/npm-diff.12
-rw-r--r--deps/npm/man/man1/npm-dist-tag.12
-rw-r--r--deps/npm/man/man1/npm-docs.12
-rw-r--r--deps/npm/man/man1/npm-doctor.12
-rw-r--r--deps/npm/man/man1/npm-edit.12
-rw-r--r--deps/npm/man/man1/npm-exec.12
-rw-r--r--deps/npm/man/man1/npm-explain.12
-rw-r--r--deps/npm/man/man1/npm-explore.12
-rw-r--r--deps/npm/man/man1/npm-find-dupes.12
-rw-r--r--deps/npm/man/man1/npm-fund.12
-rw-r--r--deps/npm/man/man1/npm-help-search.12
-rw-r--r--deps/npm/man/man1/npm-help.12
-rw-r--r--deps/npm/man/man1/npm-hook.12
-rw-r--r--deps/npm/man/man1/npm-init.12
-rw-r--r--deps/npm/man/man1/npm-install-ci-test.12
-rw-r--r--deps/npm/man/man1/npm-install-test.12
-rw-r--r--deps/npm/man/man1/npm-install.12
-rw-r--r--deps/npm/man/man1/npm-link.12
-rw-r--r--deps/npm/man/man1/npm-logout.12
-rw-r--r--deps/npm/man/man1/npm-ls.14
-rw-r--r--deps/npm/man/man1/npm-org.12
-rw-r--r--deps/npm/man/man1/npm-outdated.12
-rw-r--r--deps/npm/man/man1/npm-owner.12
-rw-r--r--deps/npm/man/man1/npm-pack.12
-rw-r--r--deps/npm/man/man1/npm-ping.12
-rw-r--r--deps/npm/man/man1/npm-pkg.12
-rw-r--r--deps/npm/man/man1/npm-prefix.12
-rw-r--r--deps/npm/man/man1/npm-profile.12
-rw-r--r--deps/npm/man/man1/npm-prune.12
-rw-r--r--deps/npm/man/man1/npm-publish.12
-rw-r--r--deps/npm/man/man1/npm-rebuild.12
-rw-r--r--deps/npm/man/man1/npm-repo.12
-rw-r--r--deps/npm/man/man1/npm-restart.12
-rw-r--r--deps/npm/man/man1/npm-root.12
-rw-r--r--deps/npm/man/man1/npm-run-script.12
-rw-r--r--deps/npm/man/man1/npm-search.12
-rw-r--r--deps/npm/man/man1/npm-set-script.12
-rw-r--r--deps/npm/man/man1/npm-shrinkwrap.12
-rw-r--r--deps/npm/man/man1/npm-star.12
-rw-r--r--deps/npm/man/man1/npm-stars.12
-rw-r--r--deps/npm/man/man1/npm-start.12
-rw-r--r--deps/npm/man/man1/npm-stop.12
-rw-r--r--deps/npm/man/man1/npm-team.12
-rw-r--r--deps/npm/man/man1/npm-test.12
-rw-r--r--deps/npm/man/man1/npm-token.12
-rw-r--r--deps/npm/man/man1/npm-uninstall.12
-rw-r--r--deps/npm/man/man1/npm-unpublish.12
-rw-r--r--deps/npm/man/man1/npm-unstar.12
-rw-r--r--deps/npm/man/man1/npm-update.12
-rw-r--r--deps/npm/man/man1/npm-version.12
-rw-r--r--deps/npm/man/man1/npm-view.12
-rw-r--r--deps/npm/man/man1/npm-whoami.12
-rw-r--r--deps/npm/man/man1/npm.14
-rw-r--r--deps/npm/man/man1/npx.12
-rw-r--r--deps/npm/man/man5/folders.52
-rw-r--r--deps/npm/man/man5/install.52
-rw-r--r--deps/npm/man/man5/npm-shrinkwrap-json.52
-rw-r--r--deps/npm/man/man5/npmrc.52
-rw-r--r--deps/npm/man/man5/package-json.52
-rw-r--r--deps/npm/man/man5/package-lock-json.58
-rw-r--r--deps/npm/man/man7/config.72
-rw-r--r--deps/npm/man/man7/developers.72
-rw-r--r--deps/npm/man/man7/orgs.72
-rw-r--r--deps/npm/man/man7/registry.79
-rw-r--r--deps/npm/man/man7/removal.72
-rw-r--r--deps/npm/man/man7/scope.75
-rw-r--r--deps/npm/man/man7/scripts.72
-rw-r--r--deps/npm/man/man7/workspaces.722
-rw-r--r--deps/npm/node_modules/@isaacs/string-locale-compare/LICENSE (renamed from deps/npm/node_modules/json-stringify-safe/LICENSE)2
-rw-r--r--deps/npm/node_modules/@isaacs/string-locale-compare/index.js42
-rw-r--r--deps/npm/node_modules/@isaacs/string-locale-compare/package.json28
-rw-r--r--deps/npm/node_modules/@npmcli/arborist/bin/dedupe.js49
-rw-r--r--deps/npm/node_modules/@npmcli/arborist/lib/add-rm-pkg-deps.js4
-rw-r--r--deps/npm/node_modules/@npmcli/arborist/lib/arborist/audit.js11
-rw-r--r--deps/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js34
-rw-r--r--deps/npm/node_modules/@npmcli/arborist/lib/arborist/index.js29
-rw-r--r--deps/npm/node_modules/@npmcli/arborist/lib/arborist/load-virtual.js5
-rw-r--r--deps/npm/node_modules/@npmcli/arborist/lib/arborist/rebuild.js11
-rw-r--r--deps/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js16
-rw-r--r--deps/npm/node_modules/@npmcli/arborist/lib/audit-report.js3
-rw-r--r--deps/npm/node_modules/@npmcli/arborist/lib/can-place-dep.js5
-rw-r--r--deps/npm/node_modules/@npmcli/arborist/lib/place-dep.js63
-rw-r--r--deps/npm/node_modules/@npmcli/arborist/lib/printable.js9
-rw-r--r--deps/npm/node_modules/@npmcli/arborist/lib/shrinkwrap.js3
-rw-r--r--deps/npm/node_modules/@npmcli/arborist/lib/vuln.js22
-rw-r--r--deps/npm/node_modules/@npmcli/arborist/lib/yarn-lock.js13
-rw-r--r--deps/npm/node_modules/@npmcli/arborist/package.json12
-rw-r--r--deps/npm/node_modules/@npmcli/metavuln-calculator/package.json8
-rw-r--r--deps/npm/node_modules/@npmcli/run-script/package.json4
-rw-r--r--deps/npm/node_modules/ajv/.tonic_example.js20
-rw-r--r--deps/npm/node_modules/ajv/LICENSE22
-rw-r--r--deps/npm/node_modules/ajv/dist/ajv.bundle.js7189
-rw-r--r--deps/npm/node_modules/ajv/dist/ajv.min.js3
-rw-r--r--deps/npm/node_modules/ajv/dist/ajv.min.js.map1
-rw-r--r--deps/npm/node_modules/ajv/lib/ajv.d.ts397
-rw-r--r--deps/npm/node_modules/ajv/lib/ajv.js506
-rw-r--r--deps/npm/node_modules/ajv/lib/cache.js26
-rw-r--r--deps/npm/node_modules/ajv/lib/compile/async.js90
-rw-r--r--deps/npm/node_modules/ajv/lib/compile/equal.js5
-rw-r--r--deps/npm/node_modules/ajv/lib/compile/error_classes.js34
-rw-r--r--deps/npm/node_modules/ajv/lib/compile/formats.js142
-rw-r--r--deps/npm/node_modules/ajv/lib/compile/index.js387
-rw-r--r--deps/npm/node_modules/ajv/lib/compile/resolve.js270
-rw-r--r--deps/npm/node_modules/ajv/lib/compile/rules.js66
-rw-r--r--deps/npm/node_modules/ajv/lib/compile/schema_obj.js9
-rw-r--r--deps/npm/node_modules/ajv/lib/compile/ucs2length.js20
-rw-r--r--deps/npm/node_modules/ajv/lib/compile/util.js239
-rw-r--r--deps/npm/node_modules/ajv/lib/data.js49
-rw-r--r--deps/npm/node_modules/ajv/lib/definition_schema.js37
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/_limit.jst113
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/_limitItems.jst12
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/_limitLength.jst12
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/_limitProperties.jst12
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/allOf.jst32
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/anyOf.jst46
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/coerce.def51
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/comment.jst9
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/const.jst11
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/contains.jst55
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/custom.jst191
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/defaults.def47
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/definitions.def203
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/dependencies.jst79
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/enum.jst30
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/errors.def194
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/format.jst106
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/if.jst73
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/items.jst98
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/missing.def39
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/multipleOf.jst22
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/not.jst43
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/oneOf.jst54
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/pattern.jst14
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/properties.jst245
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/propertyNames.jst52
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/ref.jst85
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/required.jst108
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/uniqueItems.jst62
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/validate.jst276
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/_limit.js163
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/_limitItems.js80
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/_limitLength.js85
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/_limitProperties.js80
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/allOf.js42
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/anyOf.js73
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/comment.js14
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/const.js56
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/contains.js81
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/custom.js228
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/dependencies.js168
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/enum.js66
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/format.js150
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/if.js103
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/index.js33
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/items.js140
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/multipleOf.js80
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/not.js84
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/oneOf.js73
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/pattern.js75
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/properties.js335
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/propertyNames.js81
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/ref.js124
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/required.js270
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/uniqueItems.js86
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/validate.js482
-rw-r--r--deps/npm/node_modules/ajv/lib/keyword.js146
-rw-r--r--deps/npm/node_modules/ajv/lib/refs/data.json17
-rw-r--r--deps/npm/node_modules/ajv/lib/refs/json-schema-draft-04.json149
-rw-r--r--deps/npm/node_modules/ajv/lib/refs/json-schema-draft-06.json154
-rw-r--r--deps/npm/node_modules/ajv/lib/refs/json-schema-draft-07.json168
-rw-r--r--deps/npm/node_modules/ajv/lib/refs/json-schema-secure.json94
-rw-r--r--deps/npm/node_modules/ajv/package.json106
-rw-r--r--deps/npm/node_modules/ajv/scripts/bundle.js61
-rw-r--r--deps/npm/node_modules/ajv/scripts/compile-dots.js73
-rw-r--r--deps/npm/node_modules/ajv/scripts/info10
-rw-r--r--deps/npm/node_modules/ajv/scripts/prepare-tests12
-rw-r--r--deps/npm/node_modules/ajv/scripts/publish-built-version32
-rw-r--r--deps/npm/node_modules/ajv/scripts/travis-gh-pages23
-rw-r--r--deps/npm/node_modules/asn1/LICENSE19
-rw-r--r--deps/npm/node_modules/asn1/lib/ber/errors.js13
-rw-r--r--deps/npm/node_modules/asn1/lib/ber/index.js27
-rw-r--r--deps/npm/node_modules/asn1/lib/ber/reader.js262
-rw-r--r--deps/npm/node_modules/asn1/lib/ber/types.js36
-rw-r--r--deps/npm/node_modules/asn1/lib/ber/writer.js317
-rw-r--r--deps/npm/node_modules/asn1/lib/index.js20
-rw-r--r--deps/npm/node_modules/asn1/package.json31
-rw-r--r--deps/npm/node_modules/assert-plus/AUTHORS6
-rw-r--r--deps/npm/node_modules/assert-plus/CHANGES.md14
-rw-r--r--deps/npm/node_modules/assert-plus/assert.js211
-rw-r--r--deps/npm/node_modules/assert-plus/package.json23
-rw-r--r--deps/npm/node_modules/asynckit/LICENSE21
-rw-r--r--deps/npm/node_modules/asynckit/bench.js76
-rw-r--r--deps/npm/node_modules/asynckit/index.js6
-rw-r--r--deps/npm/node_modules/asynckit/lib/abort.js29
-rw-r--r--deps/npm/node_modules/asynckit/lib/async.js34
-rw-r--r--deps/npm/node_modules/asynckit/lib/defer.js26
-rw-r--r--deps/npm/node_modules/asynckit/lib/iterate.js75
-rw-r--r--deps/npm/node_modules/asynckit/lib/readable_asynckit.js91
-rw-r--r--deps/npm/node_modules/asynckit/lib/readable_parallel.js25
-rw-r--r--deps/npm/node_modules/asynckit/lib/readable_serial.js25
-rw-r--r--deps/npm/node_modules/asynckit/lib/readable_serial_ordered.js29
-rw-r--r--deps/npm/node_modules/asynckit/lib/state.js37
-rw-r--r--deps/npm/node_modules/asynckit/lib/streamify.js141
-rw-r--r--deps/npm/node_modules/asynckit/lib/terminator.js29
-rw-r--r--deps/npm/node_modules/asynckit/package.json63
-rw-r--r--deps/npm/node_modules/asynckit/parallel.js43
-rw-r--r--deps/npm/node_modules/asynckit/serial.js17
-rw-r--r--deps/npm/node_modules/asynckit/serialOrdered.js75
-rw-r--r--deps/npm/node_modules/asynckit/stream.js21
-rw-r--r--deps/npm/node_modules/aws-sign2/LICENSE55
-rw-r--r--deps/npm/node_modules/aws-sign2/index.js212
-rw-r--r--deps/npm/node_modules/aws-sign2/package.json17
-rw-r--r--deps/npm/node_modules/aws4/LICENSE19
-rw-r--r--deps/npm/node_modules/aws4/aws4.js373
-rw-r--r--deps/npm/node_modules/aws4/lru.js96
-rw-r--r--deps/npm/node_modules/aws4/package.json17
-rw-r--r--deps/npm/node_modules/bcrypt-pbkdf/CONTRIBUTING.md13
-rw-r--r--deps/npm/node_modules/bcrypt-pbkdf/LICENSE66
-rw-r--r--deps/npm/node_modules/bcrypt-pbkdf/index.js556
-rw-r--r--deps/npm/node_modules/bcrypt-pbkdf/package.json15
-rw-r--r--deps/npm/node_modules/caseless/LICENSE28
-rw-r--r--deps/npm/node_modules/caseless/index.js67
-rw-r--r--deps/npm/node_modules/caseless/package.json27
-rw-r--r--deps/npm/node_modules/caseless/test.js67
-rw-r--r--deps/npm/node_modules/cli-columns/color.js1
-rw-r--r--deps/npm/node_modules/cli-columns/index.js9
-rw-r--r--deps/npm/node_modules/cli-columns/node_modules/ansi-regex/index.d.ts37
-rw-r--r--deps/npm/node_modules/cli-columns/node_modules/ansi-regex/index.js10
-rw-r--r--deps/npm/node_modules/cli-columns/node_modules/ansi-regex/license (renamed from deps/npm/node_modules/har-validator/LICENSE)2
-rw-r--r--deps/npm/node_modules/cli-columns/node_modules/ansi-regex/package.json55
-rw-r--r--deps/npm/node_modules/cli-columns/node_modules/is-fullwidth-code-point/index.d.ts17
-rw-r--r--deps/npm/node_modules/cli-columns/node_modules/is-fullwidth-code-point/index.js50
-rw-r--r--deps/npm/node_modules/cli-columns/node_modules/is-fullwidth-code-point/license (renamed from deps/npm/node_modules/psl/LICENSE)4
-rw-r--r--deps/npm/node_modules/cli-columns/node_modules/is-fullwidth-code-point/package.json42
-rw-r--r--deps/npm/node_modules/cli-columns/node_modules/string-width/index.d.ts29
-rw-r--r--deps/npm/node_modules/cli-columns/node_modules/string-width/index.js47
-rw-r--r--deps/npm/node_modules/cli-columns/node_modules/string-width/license (renamed from deps/npm/node_modules/performance-now/license.txt)6
-rw-r--r--deps/npm/node_modules/cli-columns/node_modules/string-width/package.json56
-rw-r--r--deps/npm/node_modules/cli-columns/node_modules/strip-ansi/index.d.ts17
-rw-r--r--deps/npm/node_modules/cli-columns/node_modules/strip-ansi/index.js4
-rw-r--r--deps/npm/node_modules/cli-columns/node_modules/strip-ansi/license (renamed from deps/npm/node_modules/isstream/LICENSE.md)6
-rw-r--r--deps/npm/node_modules/cli-columns/node_modules/strip-ansi/package.json54
-rw-r--r--deps/npm/node_modules/cli-columns/package.json30
-rw-r--r--deps/npm/node_modules/cli-columns/test.js39
-rw-r--r--deps/npm/node_modules/combined-stream/License19
-rw-r--r--deps/npm/node_modules/combined-stream/Readme.md138
-rw-r--r--deps/npm/node_modules/combined-stream/lib/combined_stream.js208
-rw-r--r--deps/npm/node_modules/combined-stream/package.json25
-rw-r--r--deps/npm/node_modules/combined-stream/yarn.lock17
-rw-r--r--deps/npm/node_modules/core-util-is/LICENSE19
-rw-r--r--deps/npm/node_modules/core-util-is/float.patch604
-rw-r--r--deps/npm/node_modules/core-util-is/lib/util.js107
-rw-r--r--deps/npm/node_modules/core-util-is/package.json32
-rw-r--r--deps/npm/node_modules/core-util-is/test.js68
-rw-r--r--deps/npm/node_modules/dashdash/CHANGES.md364
-rw-r--r--deps/npm/node_modules/dashdash/LICENSE.txt24
-rw-r--r--deps/npm/node_modules/dashdash/etc/dashdash.bash_completion.in389
-rw-r--r--deps/npm/node_modules/dashdash/lib/dashdash.js1055
-rw-r--r--deps/npm/node_modules/dashdash/package.json26
-rw-r--r--deps/npm/node_modules/delayed-stream/License19
-rw-r--r--deps/npm/node_modules/delayed-stream/Makefile7
-rw-r--r--deps/npm/node_modules/delayed-stream/Readme.md141
-rw-r--r--deps/npm/node_modules/delayed-stream/lib/delayed_stream.js107
-rw-r--r--deps/npm/node_modules/delayed-stream/package.json27
-rwxr-xr-xdeps/npm/node_modules/ecc-jsbn/LICENSE21
-rwxr-xr-xdeps/npm/node_modules/ecc-jsbn/index.js58
-rwxr-xr-xdeps/npm/node_modules/ecc-jsbn/lib/LICENSE-jsbn40
-rwxr-xr-xdeps/npm/node_modules/ecc-jsbn/lib/ec.js561
-rwxr-xr-xdeps/npm/node_modules/ecc-jsbn/lib/sec.js170
-rwxr-xr-xdeps/npm/node_modules/ecc-jsbn/package.json40
-rwxr-xr-xdeps/npm/node_modules/ecc-jsbn/test.js14
-rw-r--r--deps/npm/node_modules/extend/LICENSE23
-rw-r--r--deps/npm/node_modules/extend/component.json32
-rw-r--r--deps/npm/node_modules/extend/index.js117
-rw-r--r--deps/npm/node_modules/extend/package.json42
-rw-r--r--deps/npm/node_modules/extsprintf/.gitmodules0
-rw-r--r--deps/npm/node_modules/extsprintf/LICENSE19
-rw-r--r--deps/npm/node_modules/extsprintf/Makefile24
-rw-r--r--deps/npm/node_modules/extsprintf/Makefile.targ285
-rw-r--r--deps/npm/node_modules/extsprintf/jsl.node.conf137
-rw-r--r--deps/npm/node_modules/extsprintf/lib/extsprintf.js183
-rw-r--r--deps/npm/node_modules/extsprintf/package.json14
-rw-r--r--deps/npm/node_modules/fast-deep-equal/LICENSE21
-rw-r--r--deps/npm/node_modules/fast-deep-equal/es6/index.d.ts2
-rw-r--r--deps/npm/node_modules/fast-deep-equal/es6/index.js72
-rw-r--r--deps/npm/node_modules/fast-deep-equal/es6/react.d.ts2
-rw-r--r--deps/npm/node_modules/fast-deep-equal/es6/react.js79
-rw-r--r--deps/npm/node_modules/fast-deep-equal/index.d.ts4
-rw-r--r--deps/npm/node_modules/fast-deep-equal/index.js46
-rw-r--r--deps/npm/node_modules/fast-deep-equal/package.json61
-rw-r--r--deps/npm/node_modules/fast-deep-equal/react.d.ts2
-rw-r--r--deps/npm/node_modules/fast-deep-equal/react.js53
-rw-r--r--deps/npm/node_modules/fast-json-stable-stringify/LICENSE21
-rw-r--r--deps/npm/node_modules/fast-json-stable-stringify/benchmark/index.js31
-rw-r--r--deps/npm/node_modules/fast-json-stable-stringify/benchmark/test.json137
-rw-r--r--deps/npm/node_modules/fast-json-stable-stringify/example/key_cmp.js7
-rw-r--r--deps/npm/node_modules/fast-json-stable-stringify/example/nested.js3
-rw-r--r--deps/npm/node_modules/fast-json-stable-stringify/example/str.js3
-rw-r--r--deps/npm/node_modules/fast-json-stable-stringify/example/value_cmp.js7
-rw-r--r--deps/npm/node_modules/fast-json-stable-stringify/index.d.ts4
-rw-r--r--deps/npm/node_modules/fast-json-stable-stringify/index.js59
-rw-r--r--deps/npm/node_modules/fast-json-stable-stringify/package.json52
-rw-r--r--deps/npm/node_modules/fast-json-stable-stringify/test/cmp.js13
-rw-r--r--deps/npm/node_modules/fast-json-stable-stringify/test/nested.js44
-rw-r--r--deps/npm/node_modules/fast-json-stable-stringify/test/str.js46
-rw-r--r--deps/npm/node_modules/fast-json-stable-stringify/test/to-json.js22
-rw-r--r--deps/npm/node_modules/forever-agent/LICENSE55
-rw-r--r--deps/npm/node_modules/forever-agent/index.js138
-rw-r--r--deps/npm/node_modules/forever-agent/package.json17
-rw-r--r--deps/npm/node_modules/getpass/LICENSE18
-rw-r--r--deps/npm/node_modules/getpass/lib/index.js123
-rw-r--r--deps/npm/node_modules/getpass/package.json18
-rw-r--r--deps/npm/node_modules/glob/changelog.md67
-rw-r--r--deps/npm/node_modules/glob/common.js2
-rw-r--r--deps/npm/node_modules/glob/glob.js9
-rw-r--r--deps/npm/node_modules/glob/package.json3
-rw-r--r--deps/npm/node_modules/glob/sync.js9
-rw-r--r--deps/npm/node_modules/har-schema/LICENSE13
-rw-r--r--deps/npm/node_modules/har-schema/lib/afterRequest.json30
-rw-r--r--deps/npm/node_modules/har-schema/lib/beforeRequest.json30
-rw-r--r--deps/npm/node_modules/har-schema/lib/browser.json20
-rw-r--r--deps/npm/node_modules/har-schema/lib/cache.json21
-rw-r--r--deps/npm/node_modules/har-schema/lib/content.json29
-rw-r--r--deps/npm/node_modules/har-schema/lib/cookie.json36
-rw-r--r--deps/npm/node_modules/har-schema/lib/creator.json20
-rw-r--r--deps/npm/node_modules/har-schema/lib/entry.json53
-rw-r--r--deps/npm/node_modules/har-schema/lib/har.json13
-rw-r--r--deps/npm/node_modules/har-schema/lib/header.json20
-rw-r--r--deps/npm/node_modules/har-schema/lib/index.js22
-rw-r--r--deps/npm/node_modules/har-schema/lib/log.json36
-rw-r--r--deps/npm/node_modules/har-schema/lib/page.json32
-rw-r--r--deps/npm/node_modules/har-schema/lib/pageTimings.json18
-rw-r--r--deps/npm/node_modules/har-schema/lib/postData.json43
-rw-r--r--deps/npm/node_modules/har-schema/lib/query.json20
-rw-r--r--deps/npm/node_modules/har-schema/lib/request.json57
-rw-r--r--deps/npm/node_modules/har-schema/lib/response.json54
-rw-r--r--deps/npm/node_modules/har-schema/lib/timings.json42
-rw-r--r--deps/npm/node_modules/har-schema/package.json54
-rw-r--r--deps/npm/node_modules/har-validator/lib/async.js105
-rw-r--r--deps/npm/node_modules/har-validator/lib/error.js17
-rw-r--r--deps/npm/node_modules/har-validator/lib/promise.js102
-rw-r--r--deps/npm/node_modules/har-validator/package.json43
-rw-r--r--deps/npm/node_modules/http-signature/CHANGES.md46
-rw-r--r--deps/npm/node_modules/http-signature/LICENSE18
-rw-r--r--deps/npm/node_modules/http-signature/http_signing.md363
-rw-r--r--deps/npm/node_modules/http-signature/lib/index.js29
-rw-r--r--deps/npm/node_modules/http-signature/lib/parser.js315
-rw-r--r--deps/npm/node_modules/http-signature/lib/signer.js401
-rw-r--r--deps/npm/node_modules/http-signature/lib/utils.js112
-rw-r--r--deps/npm/node_modules/http-signature/lib/verify.js88
-rw-r--r--deps/npm/node_modules/http-signature/package.json39
-rw-r--r--deps/npm/node_modules/is-core-module/core.json112
-rw-r--r--deps/npm/node_modules/is-core-module/package.json5
-rw-r--r--deps/npm/node_modules/is-core-module/test/index.js22
-rw-r--r--deps/npm/node_modules/isstream/isstream.js27
-rw-r--r--deps/npm/node_modules/isstream/package.json33
-rw-r--r--deps/npm/node_modules/isstream/test.js168
-rw-r--r--deps/npm/node_modules/jsbn/LICENSE40
-rw-r--r--deps/npm/node_modules/jsbn/example.html12
-rw-r--r--deps/npm/node_modules/jsbn/example.js3
-rw-r--r--deps/npm/node_modules/jsbn/index.js1357
-rw-r--r--deps/npm/node_modules/jsbn/package.json21
-rw-r--r--deps/npm/node_modules/json-schema-traverse/LICENSE21
-rw-r--r--deps/npm/node_modules/json-schema-traverse/index.js89
-rw-r--r--deps/npm/node_modules/json-schema-traverse/package.json43
-rw-r--r--deps/npm/node_modules/json-schema-traverse/spec/fixtures/schema.js125
-rw-r--r--deps/npm/node_modules/json-schema-traverse/spec/index.spec.js171
-rw-r--r--deps/npm/node_modules/json-schema/draft-00/hyper-schema68
-rw-r--r--deps/npm/node_modules/json-schema/draft-00/json-ref26
-rw-r--r--deps/npm/node_modules/json-schema/draft-00/links33
-rw-r--r--deps/npm/node_modules/json-schema/draft-00/schema155
-rw-r--r--deps/npm/node_modules/json-schema/draft-01/hyper-schema68
-rw-r--r--deps/npm/node_modules/json-schema/draft-01/json-ref26
-rw-r--r--deps/npm/node_modules/json-schema/draft-01/links33
-rw-r--r--deps/npm/node_modules/json-schema/draft-01/schema155
-rw-r--r--deps/npm/node_modules/json-schema/draft-02/hyper-schema68
-rw-r--r--deps/npm/node_modules/json-schema/draft-02/json-ref26
-rw-r--r--deps/npm/node_modules/json-schema/draft-02/links35
-rw-r--r--deps/npm/node_modules/json-schema/draft-02/schema166
-rw-r--r--deps/npm/node_modules/json-schema/draft-03/examples/address20
-rw-r--r--deps/npm/node_modules/json-schema/draft-03/examples/calendar53
-rw-r--r--deps/npm/node_modules/json-schema/draft-03/examples/card105
-rw-r--r--deps/npm/node_modules/json-schema/draft-03/examples/geo8
-rw-r--r--deps/npm/node_modules/json-schema/draft-03/examples/interfaces23
-rw-r--r--deps/npm/node_modules/json-schema/draft-03/hyper-schema60
-rw-r--r--deps/npm/node_modules/json-schema/draft-03/json-ref26
-rw-r--r--deps/npm/node_modules/json-schema/draft-03/links35
-rw-r--r--deps/npm/node_modules/json-schema/draft-03/schema174
-rw-r--r--deps/npm/node_modules/json-schema/draft-04/hyper-schema60
-rw-r--r--deps/npm/node_modules/json-schema/draft-04/links41
-rw-r--r--deps/npm/node_modules/json-schema/draft-04/schema189
-rw-r--r--deps/npm/node_modules/json-schema/draft-zyp-json-schema-03.xml1120
-rw-r--r--deps/npm/node_modules/json-schema/draft-zyp-json-schema-04.xml1072
-rw-r--r--deps/npm/node_modules/json-schema/lib/links.js66
-rw-r--r--deps/npm/node_modules/json-schema/lib/validate.js273
-rw-r--r--deps/npm/node_modules/json-schema/package.json31
-rw-r--r--deps/npm/node_modules/json-schema/test/tests.js95
-rw-r--r--deps/npm/node_modules/json-stringify-safe/Makefile35
-rw-r--r--deps/npm/node_modules/json-stringify-safe/package.json31
-rw-r--r--deps/npm/node_modules/json-stringify-safe/stringify.js27
-rw-r--r--deps/npm/node_modules/json-stringify-safe/test/mocha.opts2
-rw-r--r--deps/npm/node_modules/json-stringify-safe/test/stringify_test.js246
-rw-r--r--deps/npm/node_modules/jsprim/CHANGES.md49
-rw-r--r--deps/npm/node_modules/jsprim/CONTRIBUTING.md19
-rw-r--r--deps/npm/node_modules/jsprim/LICENSE19
-rw-r--r--deps/npm/node_modules/jsprim/lib/jsprim.js735
-rw-r--r--deps/npm/node_modules/jsprim/package.json20
-rw-r--r--deps/npm/node_modules/libnpmdiff/package.json2
-rw-r--r--deps/npm/node_modules/libnpmexec/package.json11
-rw-r--r--deps/npm/node_modules/libnpmfund/package.json7
-rw-r--r--deps/npm/node_modules/libnpmpack/package.json8
-rw-r--r--deps/npm/node_modules/libnpmversion/package.json7
-rw-r--r--deps/npm/node_modules/mime-db/HISTORY.md486
-rw-r--r--deps/npm/node_modules/mime-db/LICENSE22
-rw-r--r--deps/npm/node_modules/mime-db/db.json8417
-rw-r--r--deps/npm/node_modules/mime-db/index.js11
-rw-r--r--deps/npm/node_modules/mime-db/package.json59
-rw-r--r--deps/npm/node_modules/mime-types/HISTORY.md378
-rw-r--r--deps/npm/node_modules/mime-types/LICENSE23
-rw-r--r--deps/npm/node_modules/mime-types/index.js188
-rw-r--r--deps/npm/node_modules/mime-types/package.json44
-rw-r--r--deps/npm/node_modules/node-gyp/.github/ISSUE_TEMPLATE.md5
-rw-r--r--deps/npm/node_modules/node-gyp/.github/PULL_REQUEST_TEMPLATE.md2
-rw-r--r--deps/npm/node_modules/node-gyp/.github/workflows/release-please.yml56
-rw-r--r--deps/npm/node_modules/node-gyp/.github/workflows/tests.yml26
-rw-r--r--deps/npm/node_modules/node-gyp/CHANGELOG.md281
-rw-r--r--deps/npm/node_modules/node-gyp/README.md41
-rw-r--r--deps/npm/node_modules/node-gyp/docs/Common-issues.md13
-rw-r--r--deps/npm/node_modules/node-gyp/docs/Error-pre-versions-of-node-cannot-be-installed.md94
-rw-r--r--deps/npm/node_modules/node-gyp/docs/Home.md7
-rw-r--r--deps/npm/node_modules/node-gyp/docs/Linking-to-OpenSSL.md86
-rw-r--r--deps/npm/node_modules/node-gyp/docs/Updating-npm-bundled-node-gyp.md45
-rw-r--r--deps/npm/node_modules/node-gyp/docs/binding.gyp-files-in-the-wild.md48
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/.github/workflows/Python_tests.yml7
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/.github/workflows/node-gyp.yml6
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/.github/workflows/release-please.yml4
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/CHANGELOG.md100
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/CODE_OF_CONDUCT.md4
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/CONTRIBUTING.md2
-rwxr-xr-xdeps/npm/node_modules/node-gyp/gyp/gyp_main.py14
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py19
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSProject.py6
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings.py26
-rwxr-xr-xdeps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings_test.py7
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSToolFile.py2
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSUserFile.py4
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSUtil.py4
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py24
-rwxr-xr-xdeps/npm/node_modules/node-gyp/gyp/pylib/gyp/__init__.py14
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/pylib/gyp/common.py19
-rwxr-xr-xdeps/npm/node_modules/node-gyp/gyp/pylib/gyp/common_test.py2
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py12
-rwxr-xr-xdeps/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py7
-rwxr-xr-xdeps/npm/node_modules/node-gyp/gyp/pylib/gyp/flock_tool.py4
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/analyzer.py13
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/android.py227
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py26
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/dump_dependency_json.py1
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/eclipse.py10
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/gypsh.py2
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py266
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py74
-rwxr-xr-xdeps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs_test.py7
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py242
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py2
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py13
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode_test.py2
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py30
-rwxr-xr-xdeps/npm/node_modules/node-gyp/gyp/pylib/gyp/input_test.py2
-rwxr-xr-xdeps/npm/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py17
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py246
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/pylib/gyp/ninja_syntax.py6
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/pylib/gyp/simple_copy.py5
-rwxr-xr-xdeps/npm/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py39
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py98
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_ninja.py8
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py51
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xml_fix.py4
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/setup.py10
-rwxr-xr-xdeps/npm/node_modules/node-gyp/gyp/test_gyp.py30
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/tools/README2
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/tools/emacs/gyp-tests.el2
-rw-r--r--deps/npm/node_modules/node-gyp/gyp/tools/emacs/gyp.el2
-rwxr-xr-xdeps/npm/node_modules/node-gyp/gyp/tools/graphviz.py9
-rwxr-xr-xdeps/npm/node_modules/node-gyp/gyp/tools/pretty_gyp.py5
-rwxr-xr-xdeps/npm/node_modules/node-gyp/gyp/tools/pretty_sln.py3
-rwxr-xr-xdeps/npm/node_modules/node-gyp/gyp/tools/pretty_vcproj.py32
-rw-r--r--deps/npm/node_modules/node-gyp/lib/configure.js6
-rw-r--r--deps/npm/node_modules/node-gyp/lib/find-python.js56
-rw-r--r--deps/npm/node_modules/node-gyp/lib/find-visualstudio.js2
-rw-r--r--deps/npm/node_modules/node-gyp/lib/install.js557
-rw-r--r--deps/npm/node_modules/node-gyp/lib/proxy.js92
-rw-r--r--deps/npm/node_modules/node-gyp/macOS_Catalina.md4
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/LICENSE16
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/agent.js209
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/cache.js260
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/index.js457
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/package.json72
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/utils/configure-options.js32
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/utils/initialize-cache.js26
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/utils/is-header-conditional.js17
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/utils/iterable-to-object.js9
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/utils/make-policy.js19
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/warning.js24
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/socks-proxy-agent/dist/agent.d.ts21
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/socks-proxy-agent/dist/agent.js180
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/socks-proxy-agent/dist/agent.js.map1
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/socks-proxy-agent/dist/index.d.ts19
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/socks-proxy-agent/dist/index.js14
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/socks-proxy-agent/dist/index.js.map1
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/socks-proxy-agent/package.json64
-rw-r--r--deps/npm/node_modules/node-gyp/package.json10
-rw-r--r--deps/npm/node_modules/node-gyp/test/fixtures/test-charmap.py41
-rw-r--r--deps/npm/node_modules/node-gyp/test/test-download.js317
-rw-r--r--deps/npm/node_modules/node-gyp/test/test-find-python.js22
-rw-r--r--deps/npm/node_modules/node-gyp/test/test-install.js54
-rwxr-xr-xdeps/npm/node_modules/node-gyp/update-gyp.py41
-rw-r--r--deps/npm/node_modules/oauth-sign/LICENSE55
-rw-r--r--deps/npm/node_modules/oauth-sign/index.js146
-rw-r--r--deps/npm/node_modules/oauth-sign/package.json23
-rw-r--r--deps/npm/node_modules/pacote/package.json6
-rw-r--r--deps/npm/node_modules/performance-now/.tm_properties7
-rw-r--r--deps/npm/node_modules/performance-now/lib/performance-now.js36
-rw-r--r--deps/npm/node_modules/performance-now/lib/performance-now.js.map10
-rw-r--r--deps/npm/node_modules/performance-now/package.json35
-rw-r--r--deps/npm/node_modules/performance-now/src/index.d.ts8
-rw-r--r--deps/npm/node_modules/performance-now/src/performance-now.coffee17
-rw-r--r--deps/npm/node_modules/performance-now/test/mocha.opts3
-rw-r--r--deps/npm/node_modules/performance-now/test/performance-now.coffee43
-rw-r--r--deps/npm/node_modules/performance-now/test/scripts.coffee27
-rwxr-xr-xdeps/npm/node_modules/performance-now/test/scripts/delayed-call.coffee11
-rwxr-xr-xdeps/npm/node_modules/performance-now/test/scripts/delayed-require.coffee12
-rwxr-xr-xdeps/npm/node_modules/performance-now/test/scripts/difference.coffee6
-rwxr-xr-xdeps/npm/node_modules/performance-now/test/scripts/initial-value.coffee10
-rw-r--r--deps/npm/node_modules/psl/browserstack-logo.svg90
-rw-r--r--deps/npm/node_modules/psl/data/rules.json8834
-rw-r--r--deps/npm/node_modules/psl/dist/psl.js9645
-rw-r--r--deps/npm/node_modules/psl/dist/psl.min.js1
-rw-r--r--deps/npm/node_modules/psl/index.js269
-rw-r--r--deps/npm/node_modules/psl/package.json44
-rw-r--r--deps/npm/node_modules/punycode/LICENSE-MIT.txt20
-rw-r--r--deps/npm/node_modules/punycode/package.json58
-rw-r--r--deps/npm/node_modules/punycode/punycode.es6.js441
-rw-r--r--deps/npm/node_modules/punycode/punycode.js440
-rw-r--r--deps/npm/node_modules/qs/LICENSE28
-rw-r--r--deps/npm/node_modules/qs/dist/qs.js638
-rw-r--r--deps/npm/node_modules/qs/lib/formats.js18
-rw-r--r--deps/npm/node_modules/qs/lib/index.js11
-rw-r--r--deps/npm/node_modules/qs/lib/parse.js174
-rw-r--r--deps/npm/node_modules/qs/lib/stringify.js210
-rw-r--r--deps/npm/node_modules/qs/lib/utils.js213
-rw-r--r--deps/npm/node_modules/qs/package.json52
-rw-r--r--deps/npm/node_modules/qs/test/index.js7
-rw-r--r--deps/npm/node_modules/qs/test/parse.js574
-rw-r--r--deps/npm/node_modules/qs/test/stringify.js597
-rw-r--r--deps/npm/node_modules/qs/test/utils.js34
-rw-r--r--deps/npm/node_modules/request/LICENSE55
-rwxr-xr-xdeps/npm/node_modules/request/index.js155
-rw-r--r--deps/npm/node_modules/request/lib/auth.js167
-rw-r--r--deps/npm/node_modules/request/lib/cookies.js38
-rw-r--r--deps/npm/node_modules/request/lib/getProxyFromURI.js79
-rw-r--r--deps/npm/node_modules/request/lib/har.js205
-rw-r--r--deps/npm/node_modules/request/lib/hawk.js89
-rw-r--r--deps/npm/node_modules/request/lib/helpers.js66
-rw-r--r--deps/npm/node_modules/request/lib/multipart.js112
-rw-r--r--deps/npm/node_modules/request/lib/oauth.js148
-rw-r--r--deps/npm/node_modules/request/lib/querystring.js50
-rw-r--r--deps/npm/node_modules/request/lib/redirect.js154
-rw-r--r--deps/npm/node_modules/request/lib/tunnel.js175
-rw-r--r--deps/npm/node_modules/request/node_modules/form-data/License19
-rw-r--r--deps/npm/node_modules/request/node_modules/form-data/lib/browser.js2
-rw-r--r--deps/npm/node_modules/request/node_modules/form-data/lib/form_data.js457
-rw-r--r--deps/npm/node_modules/request/node_modules/form-data/lib/populate.js10
-rw-r--r--deps/npm/node_modules/request/node_modules/form-data/package.json65
-rw-r--r--deps/npm/node_modules/request/node_modules/form-data/yarn.lock2662
-rw-r--r--deps/npm/node_modules/request/node_modules/tough-cookie/LICENSE12
-rw-r--r--deps/npm/node_modules/request/node_modules/tough-cookie/lib/cookie.js1482
-rw-r--r--deps/npm/node_modules/request/node_modules/tough-cookie/lib/memstore.js181
-rw-r--r--deps/npm/node_modules/request/node_modules/tough-cookie/lib/pathMatch.js61
-rw-r--r--deps/npm/node_modules/request/node_modules/tough-cookie/lib/permuteDomain.js56
-rw-r--r--deps/npm/node_modules/request/node_modules/tough-cookie/lib/pubsuffix-psl.js38
-rw-r--r--deps/npm/node_modules/request/node_modules/tough-cookie/lib/store.js75
-rw-r--r--deps/npm/node_modules/request/node_modules/tough-cookie/lib/version.js2
-rw-r--r--deps/npm/node_modules/request/node_modules/tough-cookie/package.json78
-rw-r--r--deps/npm/node_modules/request/package.json86
-rw-r--r--deps/npm/node_modules/request/request.js1553
-rw-r--r--deps/npm/node_modules/socks-proxy-agent/dist/agent.d.ts1
-rw-r--r--deps/npm/node_modules/socks-proxy-agent/dist/agent.js5
-rw-r--r--deps/npm/node_modules/socks-proxy-agent/dist/agent.js.map2
-rw-r--r--deps/npm/node_modules/socks-proxy-agent/dist/index.d.ts2
-rw-r--r--deps/npm/node_modules/socks-proxy-agent/dist/index.js.map2
-rw-r--r--deps/npm/node_modules/socks-proxy-agent/package.json2
-rw-r--r--deps/npm/node_modules/sshpk/LICENSE18
-rwxr-xr-xdeps/npm/node_modules/sshpk/bin/sshpk-conv243
-rwxr-xr-xdeps/npm/node_modules/sshpk/bin/sshpk-sign191
-rwxr-xr-xdeps/npm/node_modules/sshpk/bin/sshpk-verify167
-rw-r--r--deps/npm/node_modules/sshpk/lib/algs.js168
-rw-r--r--deps/npm/node_modules/sshpk/lib/certificate.js410
-rw-r--r--deps/npm/node_modules/sshpk/lib/dhe.js397
-rw-r--r--deps/npm/node_modules/sshpk/lib/ed-compat.js92
-rw-r--r--deps/npm/node_modules/sshpk/lib/errors.js84
-rw-r--r--deps/npm/node_modules/sshpk/lib/fingerprint.js220
-rw-r--r--deps/npm/node_modules/sshpk/lib/formats/auto.js124
-rw-r--r--deps/npm/node_modules/sshpk/lib/formats/dnssec.js287
-rw-r--r--deps/npm/node_modules/sshpk/lib/formats/openssh-cert.js352
-rw-r--r--deps/npm/node_modules/sshpk/lib/formats/pem.js290
-rw-r--r--deps/npm/node_modules/sshpk/lib/formats/pkcs1.js373
-rw-r--r--deps/npm/node_modules/sshpk/lib/formats/pkcs8.js631
-rw-r--r--deps/npm/node_modules/sshpk/lib/formats/putty.js99
-rw-r--r--deps/npm/node_modules/sshpk/lib/formats/rfc4253.js166
-rw-r--r--deps/npm/node_modules/sshpk/lib/formats/ssh-private.js262
-rw-r--r--deps/npm/node_modules/sshpk/lib/formats/ssh.js115
-rw-r--r--deps/npm/node_modules/sshpk/lib/formats/x509-pem.js88
-rw-r--r--deps/npm/node_modules/sshpk/lib/formats/x509.js752
-rw-r--r--deps/npm/node_modules/sshpk/lib/identity.js373
-rw-r--r--deps/npm/node_modules/sshpk/lib/index.js40
-rw-r--r--deps/npm/node_modules/sshpk/lib/key.js294
-rw-r--r--deps/npm/node_modules/sshpk/lib/private-key.js246
-rw-r--r--deps/npm/node_modules/sshpk/lib/signature.js314
-rw-r--r--deps/npm/node_modules/sshpk/lib/ssh-buffer.js149
-rw-r--r--deps/npm/node_modules/sshpk/lib/utils.js404
-rw-r--r--deps/npm/node_modules/sshpk/man/man1/sshpk-conv.1135
-rw-r--r--deps/npm/node_modules/sshpk/man/man1/sshpk-sign.181
-rw-r--r--deps/npm/node_modules/sshpk/man/man1/sshpk-verify.168
-rw-r--r--deps/npm/node_modules/sshpk/package.json60
-rw-r--r--deps/npm/node_modules/tunnel-agent/LICENSE55
-rw-r--r--deps/npm/node_modules/tunnel-agent/index.js244
-rw-r--r--deps/npm/node_modules/tunnel-agent/package.json22
-rw-r--r--deps/npm/node_modules/tweetnacl/AUTHORS.md28
-rw-r--r--deps/npm/node_modules/tweetnacl/LICENSE24
-rw-r--r--deps/npm/node_modules/tweetnacl/PULL_REQUEST_TEMPLATE.md20
-rw-r--r--deps/npm/node_modules/tweetnacl/nacl-fast.js2388
-rw-r--r--deps/npm/node_modules/tweetnacl/nacl-fast.min.js2
-rw-r--r--deps/npm/node_modules/tweetnacl/nacl.d.ts98
-rw-r--r--deps/npm/node_modules/tweetnacl/nacl.js1175
-rw-r--r--deps/npm/node_modules/tweetnacl/nacl.min.js1
-rw-r--r--deps/npm/node_modules/tweetnacl/package.json58
-rwxr-xr-xdeps/npm/node_modules/uri-js/LICENSE11
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/es5/uri.all.d.ts59
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/es5/uri.all.js1443
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/es5/uri.all.js.map1
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/es5/uri.all.min.d.ts59
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/es5/uri.all.min.js3
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/es5/uri.all.min.js.map1
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/index.d.ts1
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/index.js17
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/index.js.map1
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/regexps-iri.d.ts3
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/regexps-iri.js3
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/regexps-iri.js.map1
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/regexps-uri.d.ts4
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/regexps-uri.js42
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/regexps-uri.js.map1
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/schemes/http.d.ts3
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/schemes/http.js28
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/schemes/http.js.map1
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/schemes/https.d.ts3
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/schemes/https.js9
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/schemes/https.js.map1
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/schemes/mailto.d.ts12
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/schemes/mailto.js148
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/schemes/mailto.js.map1
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/schemes/urn-uuid.d.ts7
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js23
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js.map1
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/schemes/urn.d.ts10
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/schemes/urn.js49
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/schemes/urn.js.map1
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/schemes/ws.d.ts7
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/schemes/ws.js41
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/schemes/ws.js.map1
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/schemes/wss.d.ts3
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/schemes/wss.js9
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/schemes/wss.js.map1
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/uri.d.ts59
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/uri.js480
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/uri.js.map1
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/util.d.ts6
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/util.js36
-rwxr-xr-xdeps/npm/node_modules/uri-js/dist/esnext/util.js.map1
-rwxr-xr-xdeps/npm/node_modules/uri-js/package.json77
-rwxr-xr-xdeps/npm/node_modules/uri-js/yarn.lock2558
-rw-r--r--deps/npm/node_modules/uuid/AUTHORS5
-rw-r--r--deps/npm/node_modules/uuid/CHANGELOG.md119
-rw-r--r--deps/npm/node_modules/uuid/LICENSE.md21
-rw-r--r--deps/npm/node_modules/uuid/README.md276
-rwxr-xr-xdeps/npm/node_modules/uuid/bin/uuid65
-rw-r--r--deps/npm/node_modules/uuid/index.js8
-rw-r--r--deps/npm/node_modules/uuid/lib/bytesToUuid.js26
-rw-r--r--deps/npm/node_modules/uuid/lib/md5-browser.js216
-rw-r--r--deps/npm/node_modules/uuid/lib/md5.js25
-rw-r--r--deps/npm/node_modules/uuid/lib/rng-browser.js34
-rw-r--r--deps/npm/node_modules/uuid/lib/rng.js8
-rw-r--r--deps/npm/node_modules/uuid/lib/sha1-browser.js89
-rw-r--r--deps/npm/node_modules/uuid/lib/sha1.js25
-rw-r--r--deps/npm/node_modules/uuid/lib/v35.js57
-rw-r--r--deps/npm/node_modules/uuid/package.json49
-rw-r--r--deps/npm/node_modules/uuid/v1.js109
-rw-r--r--deps/npm/node_modules/uuid/v3.js4
-rw-r--r--deps/npm/node_modules/uuid/v4.js29
-rw-r--r--deps/npm/node_modules/uuid/v5.js3
-rw-r--r--deps/npm/node_modules/verror/CHANGES.md28
-rw-r--r--deps/npm/node_modules/verror/CONTRIBUTING.md19
-rw-r--r--deps/npm/node_modules/verror/LICENSE19
-rw-r--r--deps/npm/node_modules/verror/lib/verror.js451
-rw-r--r--deps/npm/node_modules/verror/package.json22
-rw-r--r--deps/npm/package.json34
-rw-r--r--deps/npm/tap-snapshots/test/lib/publish.js.test.cjs9
-rw-r--r--deps/npm/test/coverage-map.js2
-rw-r--r--deps/npm/test/index.js22
-rw-r--r--deps/npm/test/lib/npm.js39
-rw-r--r--deps/npm/test/lib/outdated.js26
-rw-r--r--deps/npm/test/lib/publish.js20
-rw-r--r--deps/npm/test/lib/utils/open-url.js23
-rw-r--r--deps/npm/test/lib/utils/unsupported.js13
748 files changed, 4610 insertions, 97661 deletions
diff --git a/deps/npm/docs/content/configuring-npm/package-lock-json.md b/deps/npm/docs/content/configuring-npm/package-lock-json.md
index 9b126867b80..61766dea355 100644
--- a/deps/npm/docs/content/configuring-npm/package-lock-json.md
+++ b/deps/npm/docs/content/configuring-npm/package-lock-json.md
@@ -138,7 +138,8 @@ Package descriptors have the following fields:
the case of packages fetched from the registry, this will be a url to a
tarball. In the case of git dependencies, this will be the full git url
with commit sha. In the case of link dependencies, this will be the
- location of the link target.
+ location of the link target. `registry.npmjs.org` is a magic value meaning
+ "the currently configured registry".
* integrity: A `sha512` or `sha1` [Standard Subresource
Integrity](https://w3c.github.io/webappsec/specs/subresourceintegrity/)
@@ -201,7 +202,8 @@ Dependency objects have the following fields:
* resolved: For registry sources this is path of the tarball relative to
the registry URL. If the tarball URL isn't on the same server as the
- registry URL then this is a complete URL.
+ registry URL then this is a complete URL. `registry.npmjs.org` is a magic
+ value meaning "the currently configured registry".
* bundled: If true, this is the bundled dependency and will be installed
by the parent module. When installing, this module will be extracted
diff --git a/deps/npm/docs/content/using-npm/registry.md b/deps/npm/docs/content/using-npm/registry.md
index 3b07ab11c5b..4a265db03f0 100644
--- a/deps/npm/docs/content/using-npm/registry.md
+++ b/deps/npm/docs/content/using-npm/registry.md
@@ -30,6 +30,13 @@ The registry URL used is determined by the scope of the package (see
supplied by the `registry` config parameter. See [`npm config`](/commands/npm-config),
[`npmrc`](/configuring-npm/npmrc), and [`config`](/using-npm/config) for more on managing npm's configuration.
+When the default registry is used in a package-lock or shrinkwrap is has the
+special meaning of "the currently configured registry". If you create a lock
+file while using the default registry you can switch to another registry and
+npm will install packages from the new registry, but if you create a lock
+file while using a custom registry packages will be installed from that
+registry even after you change to another registry.
+
### Does npm send any information about me back to the registry?
Yes.
diff --git a/deps/npm/docs/content/using-npm/scope.md b/deps/npm/docs/content/using-npm/scope.md
index 62b4a685164..911d7ea5177 100644
--- a/deps/npm/docs/content/using-npm/scope.md
+++ b/deps/npm/docs/content/using-npm/scope.md
@@ -98,7 +98,8 @@ desired, with `npm access` or on the npmjs.com website.
Scopes can be associated with a separate registry. This allows you to
seamlessly use a mix of packages from the primary npm registry and one or more
-private registries, such as npm Enterprise.
+private registries, such as [GitHub Packages](https://github.com/features/packages) or the open source [Verdaccio](https://verdaccio.org)
+project.
You can associate a scope with a registry at login, e.g.
diff --git a/deps/npm/docs/content/using-npm/workspaces.md b/deps/npm/docs/content/using-npm/workspaces.md
index ae834c0cc7e..baf84f543f0 100644
--- a/deps/npm/docs/content/using-npm/workspaces.md
+++ b/deps/npm/docs/content/using-npm/workspaces.md
@@ -176,6 +176,22 @@ npm run test --workspaces
Will run the `test` script in both `./packages/a` and `./packages/b`.
+Commands will be run in each workspace in the order they appear in your `package.json`
+
+```
+{
+ "workspaces": [ "packages/a", "packages/b" ]
+}
+```
+
+Order of run is different with:
+
+```
+{
+ "workspaces": [ "packages/b", "packages/a" ]
+}
+```
+
### Ignoring missing scripts
It is not required for all of the workspaces to implement scripts run with the `npm run` command.
diff --git a/deps/npm/docs/output/commands/npm-ls.html b/deps/npm/docs/output/commands/npm-ls.html
index 0ce0ef1e18a..96b5405080b 100644
--- a/deps/npm/docs/output/commands/npm-ls.html
+++ b/deps/npm/docs/output/commands/npm-ls.html
@@ -159,7 +159,7 @@ tree at all, use <a href="../commands/npm-explain.html"><code>npm explain</code>
the results to only the paths to the packages named. Note that nested
packages will <em>also</em> show the paths to the specified packages. For
example, running <code>npm ls promzard</code> in npm’s source tree will show:</p>
-<pre lang="bash"><code>npm@7.24.0 /path/to/npm
+<pre lang="bash"><code>npm@8.0.0 /path/to/npm
└─┬ init-package-json@0.0.4
└── promzard@0.1.5
</code></pre>
diff --git a/deps/npm/docs/output/commands/npm.html b/deps/npm/docs/output/commands/npm.html
index 0956b0ef0d9..9e948248988 100644
--- a/deps/npm/docs/output/commands/npm.html
+++ b/deps/npm/docs/output/commands/npm.html
@@ -148,7 +148,7 @@ npm command-line interface
<pre lang="bash"><code>npm &lt;command&gt; [args]
</code></pre>
<h3 id="version">Version</h3>
-<p>7.24.0</p>
+<p>8.0.0</p>
<h3 id="description">Description</h3>
<p>npm is the package manager for the Node JavaScript platform. It puts
modules in place so that node can find them, and manages dependency
diff --git a/deps/npm/docs/output/configuring-npm/package-lock-json.html b/deps/npm/docs/output/configuring-npm/package-lock-json.html
index 1e14f242bd6..41ee923047e 100644
--- a/deps/npm/docs/output/configuring-npm/package-lock-json.html
+++ b/deps/npm/docs/output/configuring-npm/package-lock-json.html
@@ -262,7 +262,8 @@ packages are listed with their relative paths from the root project folder.</p>
the case of packages fetched from the registry, this will be a url to a
tarball. In the case of git dependencies, this will be the full git url
with commit sha. In the case of link dependencies, this will be the
-location of the link target.</p>
+location of the link target. <code>registry.npmjs.org</code> is a magic value meaning
+“the currently configured registry”.</p>
</li>
<li>
<p>integrity: A <code>sha512</code> or <code>sha1</code> <a href="https://w3c.github.io/webappsec/specs/subresourceintegrity/">Standard Subresource
@@ -334,7 +335,8 @@ dependencies, this is the commit sha.</p>
<li>
<p>resolved: For registry sources this is path of the tarball relative to
the registry URL. If the tarball URL isn’t on the same server as the
-registry URL then this is a complete URL.</p>
+registry URL then this is a complete URL. <code>registry.npmjs.org</code> is a magic
+value meaning “the currently configured registry”.</p>
</li>
<li>
<p>bundled: If true, this is the bundled dependency and will be installed
diff --git a/deps/npm/docs/output/using-npm/registry.html b/deps/npm/docs/output/using-npm/registry.html
index 3514ac72cd4..c32ca654c00 100644
--- a/deps/npm/docs/output/using-npm/registry.html
+++ b/deps/npm/docs/output/using-npm/registry.html
@@ -163,6 +163,12 @@ of which there is a public mirror at <a href="https://skimdb.npmjs.com/registry"
<a href="../using-npm/scope.html"><code>scope</code></a>. If no scope is specified, the default registry is used, which is
supplied by the <code>registry</code> config parameter. See <a href="../commands/npm-config.html"><code>npm config</code></a>,
<a href="../configuring-npm/npmrc.html"><code>npmrc</code></a>, and <a href="../using-npm/config.html"><code>config</code></a> for more on managing npm’s configuration.</p>
+<p>When the default registry is used in a package-lock or shrinkwrap is has the
+special meaning of “the currently configured registry”. If you create a lock
+file while using the default registry you can switch to another registry and
+npm will install packages from the new registry, but if you create a lock
+file while using a custom registry packages will be installed from that
+registry even after you change to another registry.</p>
<h3 id="does-npm-send-any-information-about-me-back-to-the-registry">Does npm send any information about me back to the registry?</h3>
<p>Yes.</p>
<p>When making requests of the registry npm adds two headers with information
diff --git a/deps/npm/docs/output/using-npm/scope.html b/deps/npm/docs/output/using-npm/scope.html
index 630f3694ce4..922554b186d 100644
--- a/deps/npm/docs/output/using-npm/scope.html
+++ b/deps/npm/docs/output/using-npm/scope.html
@@ -206,7 +206,8 @@ desired, with <code>npm access</code> or on the npmjs.com website.</p>
<h3 id="associating-a-scope-with-a-registry">Associating a scope with a registry</h3>
<p>Scopes can be associated with a separate registry. This allows you to
seamlessly use a mix of packages from the primary npm registry and one or more
-private registries, such as npm Enterprise.</p>
+private registries, such as <a href="https://github.com/features/packages">GitHub Packages</a> or the open source <a href="https://verdaccio.org">Verdaccio</a>
+project.</p>
<p>You can associate a scope with a registry at login, e.g.</p>
<pre lang="bash"><code>npm login --registry=http://reg.example.com --scope=@myco
</code></pre>
diff --git a/deps/npm/docs/output/using-npm/workspaces.html b/deps/npm/docs/output/using-npm/workspaces.html
index e4ce7a3840e..8efacb2260f 100644
--- a/deps/npm/docs/output/using-npm/workspaces.html
+++ b/deps/npm/docs/output/using-npm/workspaces.html
@@ -264,6 +264,16 @@ configured workspaces. e.g:</p>
<pre><code>npm run test --workspaces
</code></pre>
<p>Will run the <code>test</code> script in both <code>./packages/a</code> and <code>./packages/b</code>.</p>
+<p>Commands will be run in each workspace in the order they appear in your <code>package.json</code></p>
+<pre><code>{
+ "workspaces": [ "packages/a", "packages/b" ]
+}
+</code></pre>
+<p>Order of run is different with:</p>
+<pre><code>{
+ "workspaces": [ "packages/b", "packages/a" ]
+}
+</code></pre>
<h3 id="ignoring-missing-scripts">Ignoring missing scripts</h3>
<p>It is not required for all of the workspaces to implement scripts run with the <code>npm run</code> command.</p>
<p>By running the command with the <code>--if-present</code> flag, npm will ignore workspaces missing target script.</p>
diff --git a/deps/npm/lib/cache.js b/deps/npm/lib/cache.js
index aed2cce31e6..4a566511194 100644
--- a/deps/npm/lib/cache.js
+++ b/deps/npm/lib/cache.js
@@ -8,6 +8,7 @@ const semver = require('semver')
const BaseCommand = require('./base-command.js')
const npa = require('npm-package-arg')
const jsonParse = require('json-parse-even-better-errors')
+const localeCompare = require('@isaacs/string-locale-compare')('en')
const searchCachePackage = async (path, spec, cacheKeys) => {
const parsed = npa(spec)
@@ -212,10 +213,10 @@ class Cache extends BaseCommand {
for (const key of keySet)
results.add(key)
}
- [...results].sort((a, b) => a.localeCompare(b, 'en')).forEach(key => this.npm.output(key))
+ [...results].sort(localeCompare).forEach(key => this.npm.output(key))
return
}
- cacheKeys.sort((a, b) => a.localeCompare(b, 'en')).forEach(key => this.npm.output(key))
+ cacheKeys.sort(localeCompare).forEach(key => this.npm.output(key))
}
}
diff --git a/deps/npm/lib/config.js b/deps/npm/lib/config.js
index 2df7bf51343..a1f706d930e 100644
--- a/deps/npm/lib/config.js
+++ b/deps/npm/lib/config.js
@@ -10,6 +10,7 @@ const writeFile = promisify(fs.writeFile)
const { spawn } = require('child_process')
const { EOL } = require('os')
const ini = require('ini')
+const localeCompare = require('@isaacs/string-locale-compare')('en')
// take an array of `[key, value, k2=v2, k3, v3, ...]` and turn into
// { key: value, k2: v2, k3: v3 }
@@ -209,7 +210,7 @@ class Config extends BaseCommand {
; Configs like \`//<hostname>/:_authToken\` are auth that is restricted
; to the registry host specified.
-${data.split('\n').sort((a, b) => a.localeCompare(b, 'en')).join('\n').trim()}
+${data.split('\n').sort(localeCompare).join('\n').trim()}
;;;;
; all available options shown below with default values
@@ -238,7 +239,7 @@ ${defData}
if (where === 'default' && !long)
continue
- const keys = Object.keys(data).sort((a, b) => a.localeCompare(b, 'en'))
+ const keys = Object.keys(data).sort(localeCompare)
if (!keys.length)
continue
diff --git a/deps/npm/lib/deprecate.js b/deps/npm/lib/deprecate.js
index 156bbf875ea..c1f7ee629bf 100644
--- a/deps/npm/lib/deprecate.js
+++ b/deps/npm/lib/deprecate.js
@@ -49,7 +49,7 @@ class Deprecate extends BaseCommand {
}
async deprecate ([pkg, msg]) {
- // msg == null becase '' is a valid value, it indicates undeprecate
+ // msg == null because '' is a valid value, it indicates undeprecate
if (!pkg || msg == null)
throw this.usageError()
diff --git a/deps/npm/lib/help.js b/deps/npm/lib/help.js
index 8e4ff67bc28..9a6f950e059 100644
--- a/deps/npm/lib/help.js
+++ b/deps/npm/lib/help.js
@@ -3,6 +3,7 @@ const path = require('path')
const openUrl = require('./utils/open-url.js')
const { promisify } = require('util')
const glob = promisify(require('glob'))
+const localeCompare = require('@isaacs/string-locale-compare')('en')
const BaseCommand = require('./base-command.js')
@@ -82,7 +83,7 @@ class Help extends BaseCommand {
if (aManNumber !== bManNumber)
return aManNumber - bManNumber
- return a.localeCompare(b, 'en')
+ return localeCompare(a, b)
})
const man = mans[0]
diff --git a/deps/npm/lib/ls.js b/deps/npm/lib/ls.js
index 7e41892c534..495b6348a03 100644
--- a/deps/npm/lib/ls.js
+++ b/deps/npm/lib/ls.js
@@ -22,6 +22,7 @@ const _problems = Symbol('problems')
const _required = Symbol('required')
const _type = Symbol('type')
const ArboristWorkspaceCmd = require('./workspaces/arborist-cmd.js')
+const localeCompare = require('@isaacs/string-locale-compare')('en')
class LS extends ArboristWorkspaceCmd {
/* istanbul ignore next - see test/lib/load-all-commands.js */
@@ -503,8 +504,7 @@ const augmentNodesWithMetadata = ({
return node
}
-const sortAlphabetically = (a, b) =>
- a.pkgid.localeCompare(b.pkgid, 'en')
+const sortAlphabetically = ({ pkgid: a }, { pkgid: b }) => localeCompare(a, b)
const humanOutput = ({ color, result, seenItems, unicode }) => {
// we need to traverse the entire tree in order to determine which items
diff --git a/deps/npm/lib/npm.js b/deps/npm/lib/npm.js
index 966d11210c2..1a7b06a34f7 100644
--- a/deps/npm/lib/npm.js
+++ b/deps/npm/lib/npm.js
@@ -355,6 +355,3 @@ const npm = module.exports = new class extends EventEmitter {
this.log.showProgress()
}
}()
-
-if (require.main === module)
- require('./cli.js')(process)
diff --git a/deps/npm/lib/outdated.js b/deps/npm/lib/outdated.js
index 01e268fe96a..b3b630421c4 100644
--- a/deps/npm/lib/outdated.js
+++ b/deps/npm/lib/outdated.js
@@ -6,6 +6,7 @@ const color = require('chalk')
const styles = require('ansistyles')
const npa = require('npm-package-arg')
const pickManifest = require('npm-pick-manifest')
+const localeCompare = require('@isaacs/string-locale-compare')('en')
const Arborist = require('@npmcli/arborist')
@@ -85,7 +86,10 @@ class Outdated extends ArboristWorkspaceCmd {
}))
// sorts list alphabetically
- const outdated = this.list.sort((a, b) => a.name.localeCompare(b.name, 'en'))
+ const outdated = this.list.sort((a, b) => localeCompare(a.name, b.name))
+
+ if (outdated.length > 0)
+ process.exitCode = 1
// return if no outdated packages
if (outdated.length === 0 && !this.npm.config.get('json'))
diff --git a/deps/npm/lib/utils/completion/installed-deep.js b/deps/npm/lib/utils/completion/installed-deep.js
index 2430688612c..590955a1ee5 100644
--- a/deps/npm/lib/utils/completion/installed-deep.js
+++ b/deps/npm/lib/utils/completion/installed-deep.js
@@ -1,5 +1,6 @@
const { resolve } = require('path')
const Arborist = require('@npmcli/arborist')
+const localeCompare = require('@isaacs/string-locale-compare')('en')
const installedDeep = async (npm) => {
const {
@@ -15,8 +16,7 @@ const installedDeep = async (npm) => {
return i
})
.filter(i => (i.depth - 1) <= depth)
- .sort((a, b) => a.depth - b.depth)
- .sort((a, b) => a.depth === b.depth ? a.name.localeCompare(b.name, 'en') : 0)
+ .sort((a, b) => (a.depth - b.depth) || localeCompare(a.name, b.name))
const res = new Set()
const gArb = new Arborist({ global: true, path: resolve(npm.globalDir, '..') })
diff --git a/deps/npm/lib/utils/config/describe-all.js b/deps/npm/lib/utils/config/describe-all.js
index c8a973cc0fd..23a10ae9778 100644
--- a/deps/npm/lib/utils/config/describe-all.js
+++ b/deps/npm/lib/utils/config/describe-all.js
@@ -1,4 +1,5 @@
const definitions = require('./definitions.js')
+const localeCompare = require('@isaacs/string-locale-compare')('en')
const describeAll = () => {
// sort not-deprecated ones to the top
/* istanbul ignore next - typically already sorted in the definitions file,
@@ -7,7 +8,7 @@ const describeAll = () => {
const sort = ([keya, {deprecated: depa}], [keyb, {deprecated: depb}]) => {
return depa && !depb ? 1
: !depa && depb ? -1
- : keya.localeCompare(keyb, 'en')
+ : localeCompare(keya, keyb)
}
return Object.entries(definitions).sort(sort)
.map(([key, def]) => def.describe())
diff --git a/deps/npm/lib/utils/npm-usage.js b/deps/npm/lib/utils/npm-usage.js
index ddb0bab0bc9..f6785867c0a 100644
--- a/deps/npm/lib/utils/npm-usage.js
+++ b/deps/npm/lib/utils/npm-usage.js
@@ -1,5 +1,6 @@
const { dirname } = require('path')
const { cmdList } = require('./cmd-list')
+const localeCompare = require('@isaacs/string-locale-compare')('en')
module.exports = (npm) => {
const usesBrowser = npm.config.get('viewer') === 'browser'
@@ -62,7 +63,7 @@ const usages = (npm) => {
maxLen = Math.max(maxLen, c.length)
return set
}, [])
- .sort((a, b) => a[0].localeCompare(b[0], 'en'))
+ .sort(([a], [b]) => localeCompare(a, b))
.map(([c, usage]) => `\n ${c}${' '.repeat(maxLen - c.length + 1)}${
(usage.split('\n').join('\n' + ' '.repeat(maxLen + 5)))}`)
.join('\n')
diff --git a/deps/npm/lib/utils/open-url.js b/deps/npm/lib/utils/open-url.js
index 41fac33ec66..331ca96fa96 100644
--- a/deps/npm/lib/utils/open-url.js
+++ b/deps/npm/lib/utils/open-url.js
@@ -4,6 +4,7 @@ const { URL } = require('url')
// attempt to open URL in web-browser, print address otherwise:
const open = async (npm, url, errMsg) => {
+ url = encodeURI(url)
const browser = npm.config.get('browser')
function printAlternateMsg () {
diff --git a/deps/npm/lib/utils/tar.js b/deps/npm/lib/utils/tar.js
index c3071c1bd47..0ff822370d4 100644
--- a/deps/npm/lib/utils/tar.js
+++ b/deps/npm/lib/utils/tar.js
@@ -3,6 +3,10 @@ const ssri = require('ssri')
const npmlog = require('npmlog')
const formatBytes = require('./format-bytes.js')
const columnify = require('columnify')
+const localeCompare = require('@isaacs/string-locale-compare')('en', {
+ sensitivity: 'case',
+ numeric: true,
+})
const logTar = (tarball, opts = {}) => {
const { unicode = false, log = npmlog } = opts
@@ -75,12 +79,7 @@ const getContents = async (manifest, tarball) => {
algorithms: ['sha1', 'sha512'],
})
- const comparator = (a, b) => {
- return a.path.localeCompare(b.path, 'en', {
- sensitivity: 'case',
- numeric: true,
- })
- }
+ const comparator = ({ path: a }, { path: b }) => localeCompare(a, b)
const isUpper = (str) => {
const ch = str.charAt(0)
diff --git a/deps/npm/man/man1/npm-access.1 b/deps/npm/man/man1/npm-access.1
index 19a23676ded..2b4165b5f38 100644
--- a/deps/npm/man/man1/npm-access.1
+++ b/deps/npm/man/man1/npm-access.1
@@ -1,4 +1,4 @@
-.TH "NPM\-ACCESS" "1" "September 2021" "" ""
+.TH "NPM\-ACCESS" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-access\fR \- Set access level on published packages
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-adduser.1 b/deps/npm/man/man1/npm-adduser.1
index d413f5abcbd..e4820299c8c 100644
--- a/deps/npm/man/man1/npm-adduser.1
+++ b/deps/npm/man/man1/npm-adduser.1
@@ -1,4 +1,4 @@
-.TH "NPM\-ADDUSER" "1" "September 2021" "" ""
+.TH "NPM\-ADDUSER" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-adduser\fR \- Add a registry user account
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-audit.1 b/deps/npm/man/man1/npm-audit.1
index f2a56e3e5e1..92548895cad 100644
--- a/deps/npm/man/man1/npm-audit.1
+++ b/deps/npm/man/man1/npm-audit.1
@@ -1,4 +1,4 @@
-.TH "NPM\-AUDIT" "1" "September 2021" "" ""
+.TH "NPM\-AUDIT" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-audit\fR \- Run a security audit
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-bin.1 b/deps/npm/man/man1/npm-bin.1
index 19b1ce3fea5..49fda132144 100644
--- a/deps/npm/man/man1/npm-bin.1
+++ b/deps/npm/man/man1/npm-bin.1
@@ -1,4 +1,4 @@
-.TH "NPM\-BIN" "1" "September 2021" "" ""
+.TH "NPM\-BIN" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-bin\fR \- Display npm bin folder
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-bugs.1 b/deps/npm/man/man1/npm-bugs.1
index 5be9bba84b8..2d7ab52ee2e 100644
--- a/deps/npm/man/man1/npm-bugs.1
+++ b/deps/npm/man/man1/npm-bugs.1
@@ -1,4 +1,4 @@
-.TH "NPM\-BUGS" "1" "September 2021" "" ""
+.TH "NPM\-BUGS" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-bugs\fR \- Report bugs for a package in a web browser
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-cache.1 b/deps/npm/man/man1/npm-cache.1
index 217d9e134bc..f8d27facf85 100644
--- a/deps/npm/man/man1/npm-cache.1
+++ b/deps/npm/man/man1/npm-cache.1
@@ -1,4 +1,4 @@
-.TH "NPM\-CACHE" "1" "September 2021" "" ""
+.TH "NPM\-CACHE" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-cache\fR \- Manipulates packages cache
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-ci.1 b/deps/npm/man/man1/npm-ci.1
index 87b62f0cf2a..44bba089603 100644
--- a/deps/npm/man/man1/npm-ci.1
+++ b/deps/npm/man/man1/npm-ci.1
@@ -1,4 +1,4 @@
-.TH "NPM\-CI" "1" "September 2021" "" ""
+.TH "NPM\-CI" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-ci\fR \- Install a project with a clean slate
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-completion.1 b/deps/npm/man/man1/npm-completion.1
index 54a54e0a66e..ec9d085f2df 100644
--- a/deps/npm/man/man1/npm-completion.1
+++ b/deps/npm/man/man1/npm-completion.1
@@ -1,4 +1,4 @@
-.TH "NPM\-COMPLETION" "1" "September 2021" "" ""
+.TH "NPM\-COMPLETION" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-completion\fR \- Tab Completion for npm
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-config.1 b/deps/npm/man/man1/npm-config.1
index 1189328e3b3..a28909f0240 100644
--- a/deps/npm/man/man1/npm-config.1
+++ b/deps/npm/man/man1/npm-config.1
@@ -1,4 +1,4 @@
-.TH "NPM\-CONFIG" "1" "September 2021" "" ""
+.TH "NPM\-CONFIG" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-config\fR \- Manage the npm configuration files
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-dedupe.1 b/deps/npm/man/man1/npm-dedupe.1
index 0a9b62f7f2c..64f39e8f82d 100644
--- a/deps/npm/man/man1/npm-dedupe.1
+++ b/deps/npm/man/man1/npm-dedupe.1
@@ -1,4 +1,4 @@
-.TH "NPM\-DEDUPE" "1" "September 2021" "" ""
+.TH "NPM\-DEDUPE" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-dedupe\fR \- Reduce duplication in the package tree
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-deprecate.1 b/deps/npm/man/man1/npm-deprecate.1
index 83d2345b046..73a2c73b58c 100644
--- a/deps/npm/man/man1/npm-deprecate.1
+++ b/deps/npm/man/man1/npm-deprecate.1
@@ -1,4 +1,4 @@
-.TH "NPM\-DEPRECATE" "1" "September 2021" "" ""
+.TH "NPM\-DEPRECATE" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-deprecate\fR \- Deprecate a version of a package
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-diff.1 b/deps/npm/man/man1/npm-diff.1
index afb36373395..702ee528421 100644
--- a/deps/npm/man/man1/npm-diff.1
+++ b/deps/npm/man/man1/npm-diff.1
@@ -1,4 +1,4 @@
-.TH "NPM\-DIFF" "1" "September 2021" "" ""
+.TH "NPM\-DIFF" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-diff\fR \- The registry diff command
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-dist-tag.1 b/deps/npm/man/man1/npm-dist-tag.1
index 5f019fa1632..abe0d5d614c 100644
--- a/deps/npm/man/man1/npm-dist-tag.1
+++ b/deps/npm/man/man1/npm-dist-tag.1
@@ -1,4 +1,4 @@
-.TH "NPM\-DIST\-TAG" "1" "September 2021" "" ""
+.TH "NPM\-DIST\-TAG" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-dist-tag\fR \- Modify package distribution tags
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-docs.1 b/deps/npm/man/man1/npm-docs.1
index 75a0fbc9441..06d20798690 100644
--- a/deps/npm/man/man1/npm-docs.1
+++ b/deps/npm/man/man1/npm-docs.1
@@ -1,4 +1,4 @@
-.TH "NPM\-DOCS" "1" "September 2021" "" ""
+.TH "NPM\-DOCS" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-docs\fR \- Open documentation for a package in a web browser
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-doctor.1 b/deps/npm/man/man1/npm-doctor.1
index ab3542bacd8..69e1112ba29 100644
--- a/deps/npm/man/man1/npm-doctor.1
+++ b/deps/npm/man/man1/npm-doctor.1
@@ -1,4 +1,4 @@
-.TH "NPM\-DOCTOR" "1" "September 2021" "" ""
+.TH "NPM\-DOCTOR" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-doctor\fR \- Check your npm environment
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-edit.1 b/deps/npm/man/man1/npm-edit.1
index c5bf4648197..b157e053b67 100644
--- a/deps/npm/man/man1/npm-edit.1
+++ b/deps/npm/man/man1/npm-edit.1
@@ -1,4 +1,4 @@
-.TH "NPM\-EDIT" "1" "September 2021" "" ""
+.TH "NPM\-EDIT" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-edit\fR \- Edit an installed package
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-exec.1 b/deps/npm/man/man1/npm-exec.1
index ebbc1b6e2ef..5573a2e2fc4 100644
--- a/deps/npm/man/man1/npm-exec.1
+++ b/deps/npm/man/man1/npm-exec.1
@@ -1,4 +1,4 @@
-.TH "NPM\-EXEC" "1" "September 2021" "" ""
+.TH "NPM\-EXEC" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-exec\fR \- Run a command from a local or remote npm package
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-explain.1 b/deps/npm/man/man1/npm-explain.1
index 67fc5452786..128abc1e194 100644
--- a/deps/npm/man/man1/npm-explain.1
+++ b/deps/npm/man/man1/npm-explain.1
@@ -1,4 +1,4 @@
-.TH "NPM\-EXPLAIN" "1" "September 2021" "" ""
+.TH "NPM\-EXPLAIN" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-explain\fR \- Explain installed packages
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-explore.1 b/deps/npm/man/man1/npm-explore.1
index 3834eb6ac92..c0878727f65 100644
--- a/deps/npm/man/man1/npm-explore.1
+++ b/deps/npm/man/man1/npm-explore.1
@@ -1,4 +1,4 @@
-.TH "NPM\-EXPLORE" "1" "September 2021" "" ""
+.TH "NPM\-EXPLORE" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-explore\fR \- Browse an installed package
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-find-dupes.1 b/deps/npm/man/man1/npm-find-dupes.1
index 35314bfe8f2..eea7ccd436f 100644
--- a/deps/npm/man/man1/npm-find-dupes.1
+++ b/deps/npm/man/man1/npm-find-dupes.1
@@ -1,4 +1,4 @@
-.TH "NPM\-FIND\-DUPES" "1" "September 2021" "" ""
+.TH "NPM\-FIND\-DUPES" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-find-dupes\fR \- Find duplication in the package tree
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-fund.1 b/deps/npm/man/man1/npm-fund.1
index ef42eeb69d1..5e59791e1f2 100644
--- a/deps/npm/man/man1/npm-fund.1
+++ b/deps/npm/man/man1/npm-fund.1
@@ -1,4 +1,4 @@
-.TH "NPM\-FUND" "1" "September 2021" "" ""
+.TH "NPM\-FUND" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-fund\fR \- Retrieve funding information
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-help-search.1 b/deps/npm/man/man1/npm-help-search.1
index 52704c9f8b8..22107cbd0f7 100644
--- a/deps/npm/man/man1/npm-help-search.1
+++ b/deps/npm/man/man1/npm-help-search.1
@@ -1,4 +1,4 @@
-.TH "NPM\-HELP\-SEARCH" "1" "September 2021" "" ""
+.TH "NPM\-HELP\-SEARCH" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-help-search\fR \- Search npm help documentation
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-help.1 b/deps/npm/man/man1/npm-help.1
index 0f5d3612e0a..eaf8fd26e18 100644
--- a/deps/npm/man/man1/npm-help.1
+++ b/deps/npm/man/man1/npm-help.1
@@ -1,4 +1,4 @@
-.TH "NPM\-HELP" "1" "September 2021" "" ""
+.TH "NPM\-HELP" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-help\fR \- Get help on npm
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-hook.1 b/deps/npm/man/man1/npm-hook.1
index f36a43dfc47..20f5af5615d 100644
--- a/deps/npm/man/man1/npm-hook.1
+++ b/deps/npm/man/man1/npm-hook.1
@@ -1,4 +1,4 @@
-.TH "NPM\-HOOK" "1" "September 2021" "" ""
+.TH "NPM\-HOOK" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-hook\fR \- Manage registry hooks
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-init.1 b/deps/npm/man/man1/npm-init.1
index be2d7a0439b..34170fd71d0 100644
--- a/deps/npm/man/man1/npm-init.1
+++ b/deps/npm/man/man1/npm-init.1
@@ -1,4 +1,4 @@
-.TH "NPM\-INIT" "1" "September 2021" "" ""
+.TH "NPM\-INIT" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-init\fR \- Create a package\.json file
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-install-ci-test.1 b/deps/npm/man/man1/npm-install-ci-test.1
index 4c51f47da62..b92b9af0e5f 100644
--- a/deps/npm/man/man1/npm-install-ci-test.1
+++ b/deps/npm/man/man1/npm-install-ci-test.1
@@ -1,4 +1,4 @@
-.TH "NPM\-INSTALL\-CI\-TEST" "1" "September 2021" "" ""
+.TH "NPM\-INSTALL\-CI\-TEST" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-install-ci-test\fR \- Install a project with a clean slate and run tests
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-install-test.1 b/deps/npm/man/man1/npm-install-test.1
index ee788cf70a7..aee2079af8f 100644
--- a/deps/npm/man/man1/npm-install-test.1
+++ b/deps/npm/man/man1/npm-install-test.1
@@ -1,4 +1,4 @@
-.TH "NPM\-INSTALL\-TEST" "1" "September 2021" "" ""
+.TH "NPM\-INSTALL\-TEST" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-install-test\fR \- Install package(s) and run tests
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-install.1 b/deps/npm/man/man1/npm-install.1
index 420aed1b082..2a6cb91ce6c 100644
--- a/deps/npm/man/man1/npm-install.1
+++ b/deps/npm/man/man1/npm-install.1
@@ -1,4 +1,4 @@
-.TH "NPM\-INSTALL" "1" "September 2021" "" ""
+.TH "NPM\-INSTALL" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-install\fR \- Install a package
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-link.1 b/deps/npm/man/man1/npm-link.1
index 81cfd87afdc..26b8d41e180 100644
--- a/deps/npm/man/man1/npm-link.1
+++ b/deps/npm/man/man1/npm-link.1
@@ -1,4 +1,4 @@
-.TH "NPM\-LINK" "1" "September 2021" "" ""
+.TH "NPM\-LINK" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-link\fR \- Symlink a package folder
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-logout.1 b/deps/npm/man/man1/npm-logout.1
index 945e1aa45a2..bc7c1d32eda 100644
--- a/deps/npm/man/man1/npm-logout.1
+++ b/deps/npm/man/man1/npm-logout.1
@@ -1,4 +1,4 @@
-.TH "NPM\-LOGOUT" "1" "September 2021" "" ""
+.TH "NPM\-LOGOUT" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-logout\fR \- Log out of the registry
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-ls.1 b/deps/npm/man/man1/npm-ls.1
index e9c5d78d82a..db15b74fba8 100644
--- a/deps/npm/man/man1/npm-ls.1
+++ b/deps/npm/man/man1/npm-ls.1
@@ -1,4 +1,4 @@
-.TH "NPM\-LS" "1" "September 2021" "" ""
+.TH "NPM\-LS" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-ls\fR \- List installed packages
.SS Synopsis
@@ -26,7 +26,7 @@ example, running \fBnpm ls promzard\fP in npm's source tree will show:
.P
.RS 2
.nf
-npm@7\.24\.0 /path/to/npm
+npm@8\.0\.0 /path/to/npm
└─┬ init\-package\-json@0\.0\.4
└── promzard@0\.1\.5
.fi
diff --git a/deps/npm/man/man1/npm-org.1 b/deps/npm/man/man1/npm-org.1
index 9eb657a80f2..4145f7db8c9 100644
--- a/deps/npm/man/man1/npm-org.1
+++ b/deps/npm/man/man1/npm-org.1
@@ -1,4 +1,4 @@
-.TH "NPM\-ORG" "1" "September 2021" "" ""
+.TH "NPM\-ORG" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-org\fR \- Manage orgs
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-outdated.1 b/deps/npm/man/man1/npm-outdated.1
index b760bd3af1e..ea19a17c72d 100644
--- a/deps/npm/man/man1/npm-outdated.1
+++ b/deps/npm/man/man1/npm-outdated.1
@@ -1,4 +1,4 @@
-.TH "NPM\-OUTDATED" "1" "September 2021" "" ""
+.TH "NPM\-OUTDATED" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-outdated\fR \- Check for outdated packages
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-owner.1 b/deps/npm/man/man1/npm-owner.1
index a73cb2c1872..ed5e7a8089c 100644
--- a/deps/npm/man/man1/npm-owner.1
+++ b/deps/npm/man/man1/npm-owner.1
@@ -1,4 +1,4 @@
-.TH "NPM\-OWNER" "1" "September 2021" "" ""
+.TH "NPM\-OWNER" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-owner\fR \- Manage package owners
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-pack.1 b/deps/npm/man/man1/npm-pack.1
index da097d402d0..3b02e5e4f96 100644
--- a/deps/npm/man/man1/npm-pack.1
+++ b/deps/npm/man/man1/npm-pack.1
@@ -1,4 +1,4 @@
-.TH "NPM\-PACK" "1" "September 2021" "" ""
+.TH "NPM\-PACK" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-pack\fR \- Create a tarball from a package
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-ping.1 b/deps/npm/man/man1/npm-ping.1
index 5f109a6da3a..21d7af98963 100644
--- a/deps/npm/man/man1/npm-ping.1
+++ b/deps/npm/man/man1/npm-ping.1
@@ -1,4 +1,4 @@
-.TH "NPM\-PING" "1" "September 2021" "" ""
+.TH "NPM\-PING" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-ping\fR \- Ping npm registry
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-pkg.1 b/deps/npm/man/man1/npm-pkg.1
index ba88b03e654..483cfaf117c 100644
--- a/deps/npm/man/man1/npm-pkg.1
+++ b/deps/npm/man/man1/npm-pkg.1
@@ -1,4 +1,4 @@
-.TH "NPM\-PKG" "1" "September 2021" "" ""
+.TH "NPM\-PKG" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-pkg\fR \- Manages your package\.json
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-prefix.1 b/deps/npm/man/man1/npm-prefix.1
index 381b3493992..720e06ba5b2 100644
--- a/deps/npm/man/man1/npm-prefix.1
+++ b/deps/npm/man/man1/npm-prefix.1
@@ -1,4 +1,4 @@
-.TH "NPM\-PREFIX" "1" "September 2021" "" ""
+.TH "NPM\-PREFIX" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-prefix\fR \- Display prefix
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-profile.1 b/deps/npm/man/man1/npm-profile.1
index 310d90026a4..7da569195af 100644
--- a/deps/npm/man/man1/npm-profile.1
+++ b/deps/npm/man/man1/npm-profile.1
@@ -1,4 +1,4 @@
-.TH "NPM\-PROFILE" "1" "September 2021" "" ""
+.TH "NPM\-PROFILE" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-profile\fR \- Change settings on your registry profile
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-prune.1 b/deps/npm/man/man1/npm-prune.1
index 0602a7e874a..10e2553a529 100644
--- a/deps/npm/man/man1/npm-prune.1
+++ b/deps/npm/man/man1/npm-prune.1
@@ -1,4 +1,4 @@
-.TH "NPM\-PRUNE" "1" "September 2021" "" ""
+.TH "NPM\-PRUNE" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-prune\fR \- Remove extraneous packages
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-publish.1 b/deps/npm/man/man1/npm-publish.1
index fe3f33450ab..e45982a25ed 100644
--- a/deps/npm/man/man1/npm-publish.1
+++ b/deps/npm/man/man1/npm-publish.1
@@ -1,4 +1,4 @@
-.TH "NPM\-PUBLISH" "1" "September 2021" "" ""
+.TH "NPM\-PUBLISH" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-publish\fR \- Publish a package
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-rebuild.1 b/deps/npm/man/man1/npm-rebuild.1
index 05a537c69a1..0af36bde8a6 100644
--- a/deps/npm/man/man1/npm-rebuild.1
+++ b/deps/npm/man/man1/npm-rebuild.1
@@ -1,4 +1,4 @@
-.TH "NPM\-REBUILD" "1" "September 2021" "" ""
+.TH "NPM\-REBUILD" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-rebuild\fR \- Rebuild a package
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-repo.1 b/deps/npm/man/man1/npm-repo.1
index 603afd8d3fe..237c81aec1f 100644
--- a/deps/npm/man/man1/npm-repo.1
+++ b/deps/npm/man/man1/npm-repo.1
@@ -1,4 +1,4 @@
-.TH "NPM\-REPO" "1" "September 2021" "" ""
+.TH "NPM\-REPO" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-repo\fR \- Open package repository page in the browser
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-restart.1 b/deps/npm/man/man1/npm-restart.1
index 0192591dea0..e9007b25324 100644
--- a/deps/npm/man/man1/npm-restart.1
+++ b/deps/npm/man/man1/npm-restart.1
@@ -1,4 +1,4 @@
-.TH "NPM\-RESTART" "1" "September 2021" "" ""
+.TH "NPM\-RESTART" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-restart\fR \- Restart a package
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-root.1 b/deps/npm/man/man1/npm-root.1
index a7c41b63102..93e8d02e293 100644
--- a/deps/npm/man/man1/npm-root.1
+++ b/deps/npm/man/man1/npm-root.1
@@ -1,4 +1,4 @@
-.TH "NPM\-ROOT" "1" "September 2021" "" ""
+.TH "NPM\-ROOT" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-root\fR \- Display npm root
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-run-script.1 b/deps/npm/man/man1/npm-run-script.1
index 649a2b1fc87..7d5826897c8 100644
--- a/deps/npm/man/man1/npm-run-script.1
+++ b/deps/npm/man/man1/npm-run-script.1
@@ -1,4 +1,4 @@
-.TH "NPM\-RUN\-SCRIPT" "1" "September 2021" "" ""
+.TH "NPM\-RUN\-SCRIPT" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-run-script\fR \- Run arbitrary package scripts
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-search.1 b/deps/npm/man/man1/npm-search.1
index e25f0a3cd4f..ab148fff87a 100644
--- a/deps/npm/man/man1/npm-search.1
+++ b/deps/npm/man/man1/npm-search.1
@@ -1,4 +1,4 @@
-.TH "NPM\-SEARCH" "1" "September 2021" "" ""
+.TH "NPM\-SEARCH" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-search\fR \- Search for packages
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-set-script.1 b/deps/npm/man/man1/npm-set-script.1
index 05215837304..3c49de1cf40 100644
--- a/deps/npm/man/man1/npm-set-script.1
+++ b/deps/npm/man/man1/npm-set-script.1
@@ -1,4 +1,4 @@
-.TH "NPM\-SET\-SCRIPT" "1" "September 2021" "" ""
+.TH "NPM\-SET\-SCRIPT" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-set-script\fR \- Set tasks in the scripts section of package\.json
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-shrinkwrap.1 b/deps/npm/man/man1/npm-shrinkwrap.1
index b0eff04992b..1acb119477f 100644
--- a/deps/npm/man/man1/npm-shrinkwrap.1
+++ b/deps/npm/man/man1/npm-shrinkwrap.1
@@ -1,4 +1,4 @@
-.TH "NPM\-SHRINKWRAP" "1" "September 2021" "" ""
+.TH "NPM\-SHRINKWRAP" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-shrinkwrap\fR \- Lock down dependency versions for publication
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-star.1 b/deps/npm/man/man1/npm-star.1
index f19795184de..c6213e5f253 100644
--- a/deps/npm/man/man1/npm-star.1
+++ b/deps/npm/man/man1/npm-star.1
@@ -1,4 +1,4 @@
-.TH "NPM\-STAR" "1" "September 2021" "" ""
+.TH "NPM\-STAR" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-star\fR \- Mark your favorite packages
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-stars.1 b/deps/npm/man/man1/npm-stars.1
index 71de65a2f58..fa0726fae5c 100644
--- a/deps/npm/man/man1/npm-stars.1
+++ b/deps/npm/man/man1/npm-stars.1
@@ -1,4 +1,4 @@
-.TH "NPM\-STARS" "1" "September 2021" "" ""
+.TH "NPM\-STARS" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-stars\fR \- View packages marked as favorites
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-start.1 b/deps/npm/man/man1/npm-start.1
index 24af98df838..008116df004 100644
--- a/deps/npm/man/man1/npm-start.1
+++ b/deps/npm/man/man1/npm-start.1
@@ -1,4 +1,4 @@
-.TH "NPM\-START" "1" "September 2021" "" ""
+.TH "NPM\-START" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-start\fR \- Start a package
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-stop.1 b/deps/npm/man/man1/npm-stop.1
index a6f8b977ea5..60be71f35f4 100644
--- a/deps/npm/man/man1/npm-stop.1
+++ b/deps/npm/man/man1/npm-stop.1
@@ -1,4 +1,4 @@
-.TH "NPM\-STOP" "1" "September 2021" "" ""
+.TH "NPM\-STOP" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-stop\fR \- Stop a package
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-team.1 b/deps/npm/man/man1/npm-team.1
index ffd620a450a..5892ff04fa4 100644
--- a/deps/npm/man/man1/npm-team.1
+++ b/deps/npm/man/man1/npm-team.1
@@ -1,4 +1,4 @@
-.TH "NPM\-TEAM" "1" "September 2021" "" ""
+.TH "NPM\-TEAM" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-team\fR \- Manage organization teams and team memberships
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-test.1 b/deps/npm/man/man1/npm-test.1
index 2280aacf2a4..6d7f7998934 100644
--- a/deps/npm/man/man1/npm-test.1
+++ b/deps/npm/man/man1/npm-test.1
@@ -1,4 +1,4 @@
-.TH "NPM\-TEST" "1" "September 2021" "" ""
+.TH "NPM\-TEST" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-test\fR \- Test a package
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-token.1 b/deps/npm/man/man1/npm-token.1
index 119f4279968..f78d21b821d 100644
--- a/deps/npm/man/man1/npm-token.1
+++ b/deps/npm/man/man1/npm-token.1
@@ -1,4 +1,4 @@
-.TH "NPM\-TOKEN" "1" "September 2021" "" ""
+.TH "NPM\-TOKEN" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-token\fR \- Manage your authentication tokens
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-uninstall.1 b/deps/npm/man/man1/npm-uninstall.1
index 85c251ef595..2355ba85938 100644
--- a/deps/npm/man/man1/npm-uninstall.1
+++ b/deps/npm/man/man1/npm-uninstall.1
@@ -1,4 +1,4 @@
-.TH "NPM\-UNINSTALL" "1" "September 2021" "" ""
+.TH "NPM\-UNINSTALL" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-uninstall\fR \- Remove a package
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-unpublish.1 b/deps/npm/man/man1/npm-unpublish.1
index 682659915c6..09c7c6dfc07 100644
--- a/deps/npm/man/man1/npm-unpublish.1
+++ b/deps/npm/man/man1/npm-unpublish.1
@@ -1,4 +1,4 @@
-.TH "NPM\-UNPUBLISH" "1" "September 2021" "" ""
+.TH "NPM\-UNPUBLISH" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-unpublish\fR \- Remove a package from the registry
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-unstar.1 b/deps/npm/man/man1/npm-unstar.1
index d69f398283a..4720b5b5c56 100644
--- a/deps/npm/man/man1/npm-unstar.1
+++ b/deps/npm/man/man1/npm-unstar.1
@@ -1,4 +1,4 @@
-.TH "NPM\-UNSTAR" "1" "September 2021" "" ""
+.TH "NPM\-UNSTAR" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-unstar\fR \- Remove an item from your favorite packages
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-update.1 b/deps/npm/man/man1/npm-update.1
index 5e871f7d573..61672425168 100644
--- a/deps/npm/man/man1/npm-update.1
+++ b/deps/npm/man/man1/npm-update.1
@@ -1,4 +1,4 @@
-.TH "NPM\-UPDATE" "1" "September 2021" "" ""
+.TH "NPM\-UPDATE" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-update\fR \- Update packages
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-version.1 b/deps/npm/man/man1/npm-version.1
index c91b7094ed9..1134f60188c 100644
--- a/deps/npm/man/man1/npm-version.1
+++ b/deps/npm/man/man1/npm-version.1
@@ -1,4 +1,4 @@
-.TH "NPM\-VERSION" "1" "September 2021" "" ""
+.TH "NPM\-VERSION" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-version\fR \- Bump a package version
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-view.1 b/deps/npm/man/man1/npm-view.1
index becada49734..84c39fdc538 100644
--- a/deps/npm/man/man1/npm-view.1
+++ b/deps/npm/man/man1/npm-view.1
@@ -1,4 +1,4 @@
-.TH "NPM\-VIEW" "1" "September 2021" "" ""
+.TH "NPM\-VIEW" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-view\fR \- View registry info
.SS Synopsis
diff --git a/deps/npm/man/man1/npm-whoami.1 b/deps/npm/man/man1/npm-whoami.1
index d7f53fb3257..00daba3b5b2 100644
--- a/deps/npm/man/man1/npm-whoami.1
+++ b/deps/npm/man/man1/npm-whoami.1
@@ -1,4 +1,4 @@
-.TH "NPM\-WHOAMI" "1" "September 2021" "" ""
+.TH "NPM\-WHOAMI" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm-whoami\fR \- Display npm username
.SS Synopsis
diff --git a/deps/npm/man/man1/npm.1 b/deps/npm/man/man1/npm.1
index 8e07933b219..bff58d214d6 100644
--- a/deps/npm/man/man1/npm.1
+++ b/deps/npm/man/man1/npm.1
@@ -1,4 +1,4 @@
-.TH "NPM" "1" "September 2021" "" ""
+.TH "NPM" "1" "October 2021" "" ""
.SH "NAME"
\fBnpm\fR \- javascript package manager
.SS Synopsis
@@ -10,7 +10,7 @@ npm <command> [args]
.RE
.SS Version
.P
-7\.24\.0
+8\.0\.0
.SS Description
.P
npm is the package manager for the Node JavaScript platform\. It puts
diff --git a/deps/npm/man/man1/npx.1 b/deps/npm/man/man1/npx.1
index 8eedcc86d5d..0415274fe55 100644
--- a/deps/npm/man/man1/npx.1
+++ b/deps/npm/man/man1/npx.1
@@ -1,4 +1,4 @@
-.TH "NPX" "1" "September 2021" "" ""
+.TH "NPX" "1" "October 2021" "" ""
.SH "NAME"
\fBnpx\fR \- Run a command from a local or remote npm package
.SS Synopsis
diff --git a/deps/npm/man/man5/folders.5 b/deps/npm/man/man5/folders.5
index d5b0ee7fc12..d06cc982ada 100644
--- a/deps/npm/man/man5/folders.5
+++ b/deps/npm/man/man5/folders.5
@@ -1,4 +1,4 @@
-.TH "FOLDERS" "5" "September 2021" "" ""
+.TH "FOLDERS" "5" "October 2021" "" ""
.SH "NAME"
\fBfolders\fR \- Folder Structures Used by npm
.SS Description
diff --git a/deps/npm/man/man5/install.5 b/deps/npm/man/man5/install.5
index 43bd168c9e1..deacc9b2948 100644
--- a/deps/npm/man/man5/install.5
+++ b/deps/npm/man/man5/install.5
@@ -1,4 +1,4 @@
-.TH "INSTALL" "5" "September 2021" "" ""
+.TH "INSTALL" "5" "October 2021" "" ""
.SH "NAME"
\fBinstall\fR \- Download and install node and npm
.SS Description
diff --git a/deps/npm/man/man5/npm-shrinkwrap-json.5 b/deps/npm/man/man5/npm-shrinkwrap-json.5
index dc2ae457691..52ff45477f1 100644
--- a/deps/npm/man/man5/npm-shrinkwrap-json.5
+++ b/deps/npm/man/man5/npm-shrinkwrap-json.5
@@ -1,4 +1,4 @@
-.TH "NPM\-SHRINKWRAP\.JSON" "5" "September 2021" "" ""
+.TH "NPM\-SHRINKWRAP\.JSON" "5" "October 2021" "" ""
.SH "NAME"
\fBnpm-shrinkwrap.json\fR \- A publishable lockfile
.SS Description
diff --git a/deps/npm/man/man5/npmrc.5 b/deps/npm/man/man5/npmrc.5
index aa3850d7779..be1135edb54 100644
--- a/deps/npm/man/man5/npmrc.5
+++ b/deps/npm/man/man5/npmrc.5
@@ -1,4 +1,4 @@
-.TH "NPMRC" "5" "September 2021" "" ""
+.TH "NPMRC" "5" "October 2021" "" ""
.SH "NAME"
\fBnpmrc\fR \- The npm config files
.SS Description
diff --git a/deps/npm/man/man5/package-json.5 b/deps/npm/man/man5/package-json.5
index 7b69312b124..eddbcda9b43 100644
--- a/deps/npm/man/man5/package-json.5
+++ b/deps/npm/man/man5/package-json.5
@@ -1,4 +1,4 @@
-.TH "PACKAGE\.JSON" "5" "September 2021" "" ""
+.TH "PACKAGE\.JSON" "5" "October 2021" "" ""
.SH "NAME"
\fBpackage.json\fR \- Specifics of npm's package\.json handling
.SS Description
diff --git a/deps/npm/man/man5/package-lock-json.5 b/deps/npm/man/man5/package-lock-json.5
index 0be5a0548e8..7f0952fbcc8 100644
--- a/deps/npm/man/man5/package-lock-json.5
+++ b/deps/npm/man/man5/package-lock-json.5
@@ -1,4 +1,4 @@
-.TH "PACKAGE\-LOCK\.JSON" "5" "September 2021" "" ""
+.TH "PACKAGE\-LOCK\.JSON" "5" "October 2021" "" ""
.SH "NAME"
\fBpackage-lock.json\fR \- A manifestation of the manifest
.SS Description
@@ -142,7 +142,8 @@ resolved: The place where the package was actually resolved from\. In
the case of packages fetched from the registry, this will be a url to a
tarball\. In the case of git dependencies, this will be the full git url
with commit sha\. In the case of link dependencies, this will be the
-location of the link target\.
+location of the link target\. \fBregistry\.npmjs\.org\fP is a magic value meaning
+"the currently configured registry"\.
.IP \(bu 2
integrity: A \fBsha512\fP or \fBsha1\fP Standard Subresource
Integrity \fIhttps://w3c\.github\.io/webappsec/specs/subresourceintegrity/\fR
@@ -215,7 +216,8 @@ dependencies, this is the commit sha\.
.IP \(bu 2
resolved: For registry sources this is path of the tarball relative to
the registry URL\. If the tarball URL isn't on the same server as the
-registry URL then this is a complete URL\.
+registry URL then this is a complete URL\. \fBregistry\.npmjs\.org\fP is a magic
+value meaning "the currently configured registry"\.
.IP \(bu 2
bundled: If true, this is the bundled dependency and will be installed
by the parent module\. When installing, this module will be extracted
diff --git a/deps/npm/man/man7/config.7 b/deps/npm/man/man7/config.7
index c794baedcc1..0fcc3612f65 100644
--- a/deps/npm/man/man7/config.7
+++ b/deps/npm/man/man7/config.7
@@ -1,4 +1,4 @@
-.TH "CONFIG" "7" "September 2021" "" ""
+.TH "CONFIG" "7" "October 2021" "" ""
.SH "NAME"
\fBconfig\fR \- More than you probably want to know about npm configuration
.SS Description
diff --git a/deps/npm/man/man7/developers.7 b/deps/npm/man/man7/developers.7
index 07c5f0d1426..589cd74ff0a 100644
--- a/deps/npm/man/man7/developers.7
+++ b/deps/npm/man/man7/developers.7
@@ -1,4 +1,4 @@
-.TH "DEVELOPERS" "7" "September 2021" "" ""
+.TH "DEVELOPERS" "7" "October 2021" "" ""
.SH "NAME"
\fBdevelopers\fR \- Developer Guide
.SS Description
diff --git a/deps/npm/man/man7/orgs.7 b/deps/npm/man/man7/orgs.7
index 74386a0cab7..2cc52cf20dc 100644
--- a/deps/npm/man/man7/orgs.7
+++ b/deps/npm/man/man7/orgs.7
@@ -1,4 +1,4 @@
-.TH "ORGS" "7" "September 2021" "" ""
+.TH "ORGS" "7" "October 2021" "" ""
.SH "NAME"
\fBorgs\fR \- Working with Teams & Orgs
.SS Description
diff --git a/deps/npm/man/man7/registry.7 b/deps/npm/man/man7/registry.7
index 90fe7a99f92..40e924f976a 100644
--- a/deps/npm/man/man7/registry.7
+++ b/deps/npm/man/man7/registry.7
@@ -1,4 +1,4 @@
-.TH "REGISTRY" "7" "September 2021" "" ""
+.TH "REGISTRY" "7" "October 2021" "" ""
.SH "NAME"
\fBregistry\fR \- The JavaScript Package Registry
.SS Description
@@ -26,6 +26,13 @@ The registry URL used is determined by the scope of the package (see
npm help \fBscope\fP\|\. If no scope is specified, the default registry is used, which is
supplied by the \fBregistry\fP config parameter\. See npm help \fBconfig\fP,
npm help \fBnpmrc\fP, and npm help \fBconfig\fP for more on managing npm's configuration\.
+.P
+When the default registry is used in a package\-lock or shrinkwrap is has the
+special meaning of "the currently configured registry"\. If you create a lock
+file while using the default registry you can switch to another registry and
+npm will install packages from the new registry, but if you create a lock
+file while using a custom registry packages will be installed from that
+registry even after you change to another registry\.
.SS Does npm send any information about me back to the registry?
.P
Yes\.
diff --git a/deps/npm/man/man7/removal.7 b/deps/npm/man/man7/removal.7
index bc591096ae0..b152cd47cc2 100644
--- a/deps/npm/man/man7/removal.7
+++ b/deps/npm/man/man7/removal.7
@@ -1,4 +1,4 @@
-.TH "REMOVAL" "7" "September 2021" "" ""
+.TH "REMOVAL" "7" "October 2021" "" ""
.SH "NAME"
\fBremoval\fR \- Cleaning the Slate
.SS Synopsis
diff --git a/deps/npm/man/man7/scope.7 b/deps/npm/man/man7/scope.7
index f35e7b38231..f5626388f2a 100644
--- a/deps/npm/man/man7/scope.7
+++ b/deps/npm/man/man7/scope.7
@@ -1,4 +1,4 @@
-.TH "SCOPE" "7" "September 2021" "" ""
+.TH "SCOPE" "7" "October 2021" "" ""
.SH "NAME"
\fBscope\fR \- Scoped packages
.SS Description
@@ -97,7 +97,8 @@ desired, with \fBnpm access\fP or on the npmjs\.com website\.
.P
Scopes can be associated with a separate registry\. This allows you to
seamlessly use a mix of packages from the primary npm registry and one or more
-private registries, such as npm Enterprise\.
+private registries, such as GitHub Packages \fIhttps://github\.com/features/packages\fR or the open source Verdaccio \fIhttps://verdaccio\.org\fR
+project\.
.P
You can associate a scope with a registry at login, e\.g\.
.P
diff --git a/deps/npm/man/man7/scripts.7 b/deps/npm/man/man7/scripts.7
index 4e688ccc849..9c9d07adce5 100644
--- a/deps/npm/man/man7/scripts.7
+++ b/deps/npm/man/man7/scripts.7
@@ -1,4 +1,4 @@
-.TH "SCRIPTS" "7" "September 2021" "" ""
+.TH "SCRIPTS" "7" "October 2021" "" ""
.SH "NAME"
\fBscripts\fR \- How npm handles the "scripts" field
.SS Description
diff --git a/deps/npm/man/man7/workspaces.7 b/deps/npm/man/man7/workspaces.7
index d84c9f59726..860aa080032 100644
--- a/deps/npm/man/man7/workspaces.7
+++ b/deps/npm/man/man7/workspaces.7
@@ -1,4 +1,4 @@
-.TH "WORKSPACES" "7" "September 2021" "" ""
+.TH "WORKSPACES" "7" "October 2021" "" ""
.SH "NAME"
\fBworkspaces\fR \- Working with workspaces
.SS Description
@@ -189,6 +189,26 @@ npm run test \-\-workspaces
.RE
.P
Will run the \fBtest\fP script in both \fB\|\./packages/a\fP and \fB\|\./packages/b\fP\|\.
+.P
+Commands will be run in each workspace in the order they appear in your \fBpackage\.json\fP
+.P
+.RS 2
+.nf
+{
+ "workspaces": [ "packages/a", "packages/b" ]
+}
+.fi
+.RE
+.P
+Order of run is different with:
+.P
+.RS 2
+.nf
+{
+ "workspaces": [ "packages/b", "packages/a" ]
+}
+.fi
+.RE
.SS Ignoring missing scripts
.P
It is not required for all of the workspaces to implement scripts run with the \fBnpm run\fP command\.
diff --git a/deps/npm/node_modules/json-stringify-safe/LICENSE b/deps/npm/node_modules/@isaacs/string-locale-compare/LICENSE
index 19129e315fe..05eeeb88c2e 100644
--- a/deps/npm/node_modules/json-stringify-safe/LICENSE
+++ b/deps/npm/node_modules/@isaacs/string-locale-compare/LICENSE
@@ -1,6 +1,6 @@
The ISC License
-Copyright (c) Isaac Z. Schlueter and Contributors
+Copyright (c) Isaac Z. Schlueter
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
diff --git a/deps/npm/node_modules/@isaacs/string-locale-compare/index.js b/deps/npm/node_modules/@isaacs/string-locale-compare/index.js
new file mode 100644
index 00000000000..0f68ab6774e
--- /dev/null
+++ b/deps/npm/node_modules/@isaacs/string-locale-compare/index.js
@@ -0,0 +1,42 @@
+const hasIntl = typeof Intl === 'object' && !!Intl
+const Collator = hasIntl && Intl.Collator
+const cache = new Map()
+
+const collatorCompare = (locale, opts) => {
+ const collator = new Collator(locale, opts)
+ return (a, b) => collator.compare(a, b)
+}
+
+const localeCompare = (locale, opts) => (a, b) => a.localeCompare(b, locale, opts)
+
+const knownOptions = [
+ 'sensitivity',
+ 'numeric',
+ 'ignorePunctuation',
+ 'caseFirst',
+]
+
+const { hasOwnProperty } = Object.prototype
+
+module.exports = (locale, options = {}) => {
+ if (!locale || typeof locale !== 'string')
+ throw new TypeError('locale required')
+
+ const opts = knownOptions.reduce((opts, k) => {
+ if (hasOwnProperty.call(options, k)) {
+ opts[k] = options[k]
+ }
+ return opts
+ }, {})
+ const key = `${locale}\n${JSON.stringify(opts)}`
+
+ if (cache.has(key))
+ return cache.get(key)
+
+ const compare = hasIntl
+ ? collatorCompare(locale, opts)
+ : localeCompare(locale, opts)
+ cache.set(key, compare)
+
+ return compare
+}
diff --git a/deps/npm/node_modules/@isaacs/string-locale-compare/package.json b/deps/npm/node_modules/@isaacs/string-locale-compare/package.json
new file mode 100644
index 00000000000..58de848a003
--- /dev/null
+++ b/deps/npm/node_modules/@isaacs/string-locale-compare/package.json
@@ -0,0 +1,28 @@
+{
+ "name": "@isaacs/string-locale-compare",
+ "version": "1.1.0",
+ "files": [
+ "index.js"
+ ],
+ "main": "index.js",
+ "description": "Compare strings with Intl.Collator if available, falling back to String.localeCompare otherwise",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/isaacs/string-locale-compare"
+ },
+ "author": "Isaac Z. Schlueter <i@izs.me> (https://izs.me)",
+ "license": "ISC",
+ "scripts": {
+ "test": "tap",
+ "snap": "tap",
+ "preversion": "npm test",
+ "postversion": "npm publish",
+ "prepublishOnly": "git push origin --follow-tags"
+ },
+ "tap": {
+ "check-coverage": true
+ },
+ "devDependencies": {
+ "tap": "^15.0.9"
+ }
+}
diff --git a/deps/npm/node_modules/@npmcli/arborist/bin/dedupe.js b/deps/npm/node_modules/@npmcli/arborist/bin/dedupe.js
deleted file mode 100644
index b0e83459ef7..00000000000
--- a/deps/npm/node_modules/@npmcli/arborist/bin/dedupe.js
+++ /dev/null
@@ -1,49 +0,0 @@
-const Arborist = require('../')
-
-const options = require('./lib/options.js')
-const print = require('./lib/print-tree.js')
-require('./lib/logging.js')
-require('./lib/timers.js')
-
-const printDiff = diff => {
- const {depth} = require('treeverse')
- depth({
- tree: diff,
- visit: d => {
- if (d.location === '') {
- return
- }
- switch (d.action) {
- case 'REMOVE':
- console.error('REMOVE', d.actual.location)
- break
- case 'ADD':
- console.error('ADD', d.ideal.location, d.ideal.resolved)
- break
- case 'CHANGE':
- console.error('CHANGE', d.actual.location, {
- from: d.actual.resolved,
- to: d.ideal.resolved,
- })
- break
- }
- },
- getChildren: d => d.children,
- })
-}
-
-const start = process.hrtime()
-process.emit('time', 'install')
-const arb = new Arborist(options)
-arb.dedupe(options).then(tree => {
- process.emit('timeEnd', 'install')
- const end = process.hrtime(start)
- print(tree)
- if (options.dryRun) {
- printDiff(arb.diff)
- }
- console.error(`resolved ${tree.inventory.size} deps in ${end[0] + end[1] / 1e9}s`)
- if (tree.meta && options.save) {
- tree.meta.save()
- }
-}).catch(er => console.error(require('util').inspect(er, { depth: Infinity })))
diff --git a/deps/npm/node_modules/@npmcli/arborist/lib/add-rm-pkg-deps.js b/deps/npm/node_modules/@npmcli/arborist/lib/add-rm-pkg-deps.js
index c1b64a461af..3c1cbd44abc 100644
--- a/deps/npm/node_modules/@npmcli/arborist/lib/add-rm-pkg-deps.js
+++ b/deps/npm/node_modules/@npmcli/arborist/lib/add-rm-pkg-deps.js
@@ -1,5 +1,7 @@
// add and remove dependency specs to/from pkg manifest
+const localeCompare = require('@isaacs/string-locale-compare')('en')
+
const add = ({pkg, add, saveBundle, saveType, log}) => {
for (const spec of add) {
addSingle({pkg, spec, saveBundle, saveType, log})
@@ -79,7 +81,7 @@ const addSingle = ({pkg, spec, saveBundle, saveType, log}) => {
// keep it sorted, keep it unique
const bd = new Set(pkg.bundleDependencies || [])
bd.add(spec.name)
- pkg.bundleDependencies = [...bd].sort((a, b) => a.localeCompare(b, 'en'))
+ pkg.bundleDependencies = [...bd].sort(localeCompare)
}
}
diff --git a/deps/npm/node_modules/@npmcli/arborist/lib/arborist/audit.js b/deps/npm/node_modules/@npmcli/arborist/lib/arborist/audit.js
index c0cd79bb13e..eb4a3565531 100644
--- a/deps/npm/node_modules/@npmcli/arborist/lib/arborist/audit.js
+++ b/deps/npm/node_modules/@npmcli/arborist/lib/arborist/audit.js
@@ -5,6 +5,7 @@ const AuditReport = require('../audit-report.js')
// shared with reify
const _global = Symbol.for('global')
const _workspaces = Symbol.for('workspaces')
+const _includeWorkspaceRoot = Symbol.for('includeWorkspaceRoot')
module.exports = cls => class Auditor extends cls {
async audit (options = {}) {
@@ -23,7 +24,15 @@ module.exports = cls => class Auditor extends cls {
process.emit('time', 'audit')
const tree = await this.loadVirtual()
if (this[_workspaces] && this[_workspaces].length) {
- options.filterSet = this.workspaceDependencySet(tree, this[_workspaces])
+ options.filterSet = this.workspaceDependencySet(
+ tree,
+ this[_workspaces],
+ this[_includeWorkspaceRoot]
+ )
+ }
+ if (!options.workspacesEnabled) {
+ options.filterSet =
+ this.excludeWorkspacesDependencySet(tree)
}
this.auditReport = await AuditReport.load(tree, options)
const ret = options.fix ? this.reify(options) : this.auditReport
diff --git a/deps/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js b/deps/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js
index c45024d16e8..3e6a9838f8f 100644
--- a/deps/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js
+++ b/deps/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js
@@ -1,4 +1,5 @@
// mixin implementing the buildIdealTree method
+const localeCompare = require('@isaacs/string-locale-compare')('en')
const rpj = require('read-package-json-fast')
const npa = require('npm-package-arg')
const pacote = require('pacote')
@@ -92,6 +93,7 @@ const _checkEngine = Symbol('checkEngine')
const _checkPlatform = Symbol('checkPlatform')
const _virtualRoots = Symbol('virtualRoots')
const _virtualRoot = Symbol('virtualRoot')
+const _includeWorkspaceRoot = Symbol.for('includeWorkspaceRoot')
const _failPeerConflict = Symbol('failPeerConflict')
const _explainPeerConflict = Symbol('explainPeerConflict')
@@ -114,12 +116,13 @@ module.exports = cls => class IdealTreeBuilder extends cls {
options.registry = this.registry = registry.replace(/\/+$/, '') + '/'
const {
- idealTree = null,
- global = false,
follow = false,
+ force = false,
+ global = false,
globalStyle = false,
+ idealTree = null,
+ includeWorkspaceRoot = false,
legacyPeerDeps = false,
- force = false,
packageLock = true,
strictPeerDeps = false,
workspaces = [],
@@ -161,6 +164,8 @@ module.exports = cls => class IdealTreeBuilder extends cls {
// don't hold onto references for nodes that are garbage collected.
this[_peerSetSource] = new WeakMap()
this[_virtualRoots] = new Map()
+
+ this[_includeWorkspaceRoot] = includeWorkspaceRoot
}
get explicitRequests () {
@@ -393,8 +398,14 @@ module.exports = cls => class IdealTreeBuilder extends cls {
if (!this[_workspaces].length) {
await this[_applyUserRequestsToNode](tree, options)
} else {
- await Promise.all(this.workspaceNodes(tree, this[_workspaces])
- .map(node => this[_applyUserRequestsToNode](node, options)))
+ const nodes = this.workspaceNodes(tree, this[_workspaces])
+ if (this[_includeWorkspaceRoot]) {
+ nodes.push(tree)
+ }
+ const appliedRequests = nodes.map(
+ node => this[_applyUserRequestsToNode](node, options)
+ )
+ await Promise.all(appliedRequests)
}
process.emit('timeEnd', 'idealTree:userRequests')
@@ -771,7 +782,7 @@ This is a one-time fix-up, please be patient...
// sort physically shallower deps up to the front of the queue,
// because they'll affect things deeper in, then alphabetical
this[_depsQueue].sort((a, b) =>
- (a.depth - b.depth) || a.path.localeCompare(b.path, 'en'))
+ (a.depth - b.depth) || localeCompare(a.path, b.path))
const node = this[_depsQueue].shift()
const bd = node.package.bundleDependencies
@@ -916,7 +927,7 @@ This is a one-time fix-up, please be patient...
}
const placeDeps = tasks
- .sort((a, b) => a.edge.name.localeCompare(b.edge.name, 'en'))
+ .sort((a, b) => localeCompare(a.edge.name, b.edge.name))
.map(({ edge, dep }) => new PlaceDep({
edge,
dep,
@@ -993,8 +1004,13 @@ This is a one-time fix-up, please be patient...
return
}
- // lastly, also check for the missing deps of the node we placed
+ // lastly, also check for the missing deps of the node we placed,
+ // and any holes created by pruning out conflicted peer sets.
this[_depsQueue].push(placed)
+ for (const dep of pd.needEvaluation) {
+ this[_depsSeen].delete(dep)
+ this[_depsQueue].push(dep)
+ }
// pre-fetch any problem edges, since we'll need these soon
// if it fails at this point, though, dont' worry because it
@@ -1242,7 +1258,7 @@ This is a one-time fix-up, please be patient...
// we typically only install non-optional peers, but we have to
// factor them into the peerSet so that we can avoid conflicts
.filter(e => e.peer && !(e.valid && e.to))
- .sort(({name: a}, {name: b}) => a.localeCompare(b, 'en'))
+ .sort(({name: a}, {name: b}) => localeCompare(a, b))
for (const edge of peerEdges) {
// already placed this one, and we're happy with it.
diff --git a/deps/npm/node_modules/@npmcli/arborist/lib/arborist/index.js b/deps/npm/node_modules/@npmcli/arborist/lib/arborist/index.js
index d8ca67faa60..ccfa7cad9c0 100644
--- a/deps/npm/node_modules/@npmcli/arborist/lib/arborist/index.js
+++ b/deps/npm/node_modules/@npmcli/arborist/lib/arborist/index.js
@@ -58,6 +58,7 @@ class Arborist extends Base {
cache: options.cache || `${homedir()}/.npm/_cacache`,
packumentCache: options.packumentCache || new Map(),
log: options.log || procLog,
+ workspacesEnabled: options.workspacesEnabled !== false,
}
if (options.saveType && !saveTypeMap.get(options.saveType)) {
throw new Error(`Invalid saveType ${options.saveType}`)
@@ -73,8 +74,15 @@ class Arborist extends Base {
}
// returns a set of workspace nodes and all their deps
- workspaceDependencySet (tree, workspaces) {
+ workspaceDependencySet (tree, workspaces, includeWorkspaceRoot) {
const wsNodes = this.workspaceNodes(tree, workspaces)
+ if (includeWorkspaceRoot) {
+ for (const edge of tree.edgesOut.values()) {
+ if (edge.type !== 'workspace' && edge.to) {
+ wsNodes.push(edge.to)
+ }
+ }
+ }
const set = new Set(wsNodes)
const extraneous = new Set()
for (const node of set) {
@@ -96,6 +104,25 @@ class Arborist extends Base {
for (const extra of extraneous) {
set.add(extra)
}
+
+ return set
+ }
+
+ excludeWorkspacesDependencySet (tree) {
+ const set = new Set()
+ for (const edge of tree.edgesOut.values()) {
+ if (edge.type !== 'workspace' && edge.to) {
+ set.add(edge.to)
+ }
+ }
+ for (const node of set) {
+ for (const edge of node.edgesOut.values()) {
+ if (edge.to) {
+ set.add(edge.to)
+ }
+ }
+ }
+
return set
}
}
diff --git a/deps/npm/node_modules/@npmcli/arborist/lib/arborist/load-virtual.js b/deps/npm/node_modules/@npmcli/arborist/lib/arborist/load-virtual.js
index fa0aa0746e1..f1960116737 100644
--- a/deps/npm/node_modules/@npmcli/arborist/lib/arborist/load-virtual.js
+++ b/deps/npm/node_modules/@npmcli/arborist/lib/arborist/load-virtual.js
@@ -1,4 +1,5 @@
// mixin providing the loadVirtual method
+const localeCompare = require('@isaacs/string-locale-compare')('en')
const {resolve} = require('path')
@@ -167,12 +168,12 @@ module.exports = cls => class VirtualLoader extends cls {
...depsToEdges('peerOptional', peerOptional),
...lockWS,
].sort(([atype, aname], [btype, bname]) =>
- atype.localeCompare(btype, 'en') || aname.localeCompare(bname, 'en'))
+ localeCompare(atype, btype) || localeCompare(aname, bname))
const rootEdges = [...root.edgesOut.values()]
.map(e => [e.type, e.name, e.spec])
.sort(([atype, aname], [btype, bname]) =>
- atype.localeCompare(btype, 'en') || aname.localeCompare(bname, 'en'))
+ localeCompare(atype, btype) || localeCompare(aname, bname))
if (rootEdges.length !== lockEdges.length) {
// something added or removed
diff --git a/deps/npm/node_modules/@npmcli/arborist/lib/arborist/rebuild.js b/deps/npm/node_modules/@npmcli/arborist/lib/arborist/rebuild.js
index 743794f4bda..6fa5c00116f 100644
--- a/deps/npm/node_modules/@npmcli/arborist/lib/arborist/rebuild.js
+++ b/deps/npm/node_modules/@npmcli/arborist/lib/arborist/rebuild.js
@@ -1,6 +1,7 @@
// Arborist.rebuild({path = this.path}) will do all the binlinks and
// bundle building needed. Called by reify, and by `npm rebuild`.
+const localeCompare = require('@isaacs/string-locale-compare')('en')
const {depth: dfwalk} = require('treeverse')
const promiseAllRejectLate = require('promise-all-reject-late')
const rpj = require('read-package-json-fast')
@@ -14,7 +15,8 @@ const {
} = require('@npmcli/node-gyp')
const boolEnv = b => b ? '1' : ''
-const sortNodes = (a, b) => (a.depth - b.depth) || a.path.localeCompare(b.path, 'en')
+const sortNodes = (a, b) =>
+ (a.depth - b.depth) || localeCompare(a.path, b.path)
const _workspaces = Symbol.for('workspaces')
const _build = Symbol('build')
@@ -32,6 +34,7 @@ const _addToBuildSet = Symbol('addToBuildSet')
const _checkBins = Symbol.for('checkBins')
const _queues = Symbol('queues')
const _scriptShell = Symbol('scriptShell')
+const _includeWorkspaceRoot = Symbol.for('includeWorkspaceRoot')
const _force = Symbol.for('force')
@@ -75,7 +78,11 @@ module.exports = cls => class Builder extends cls {
if (!nodes) {
const tree = await this.loadActual()
if (this[_workspaces] && this[_workspaces].length) {
- const filterSet = this.workspaceDependencySet(tree, this[_workspaces])
+ const filterSet = this.workspaceDependencySet(
+ tree,
+ this[_workspaces],
+ this[_includeWorkspaceRoot]
+ )
nodes = tree.inventory.filter(node => filterSet.has(node))
} else {
nodes = tree.inventory.values()
diff --git a/deps/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js b/deps/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js
index 3a9c4797488..a279d8956f2 100644
--- a/deps/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js
+++ b/deps/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js
@@ -83,6 +83,7 @@ const _validateNodeModules = Symbol('validateNodeModules')
const _nmValidated = Symbol('nmValidated')
const _validatePath = Symbol('validatePath')
const _reifyPackages = Symbol.for('reifyPackages')
+const _includeWorkspaceRoot = Symbol.for('includeWorkspaceRoot')
const _omitDev = Symbol('omitDev')
const _omitOptional = Symbol('omitOptional')
@@ -340,6 +341,15 @@ module.exports = cls => class Reifier extends cls {
filterNodes.push(actual)
}
}
+ if (this[_includeWorkspaceRoot] && (this[_workspaces].length > 0)) {
+ for (const tree of [this.idealTree, this.actualTree]) {
+ for (const {type, to} of tree.edgesOut.values()) {
+ if (type !== 'workspace' && to) {
+ filterNodes.push(to)
+ }
+ }
+ }
+ }
}
// find all the nodes that need to change between the actual
@@ -901,7 +911,11 @@ module.exports = cls => class Reifier extends cls {
// if we're operating on a workspace, only audit the workspace deps
if (this[_workspaces] && this[_workspaces].length) {
- options.filterSet = this.workspaceDependencySet(tree, this[_workspaces])
+ options.filterSet = this.workspaceDependencySet(
+ tree,
+ this[_workspaces],
+ this[_includeWorkspaceRoot]
+ )
}
this.auditReport = AuditReport.load(tree, options)
diff --git a/deps/npm/node_modules/@npmcli/arborist/lib/audit-report.js b/deps/npm/node_modules/@npmcli/arborist/lib/audit-report.js
index 2e6c207b33e..de97cdc29e3 100644
--- a/deps/npm/node_modules/@npmcli/arborist/lib/audit-report.js
+++ b/deps/npm/node_modules/@npmcli/arborist/lib/audit-report.js
@@ -1,6 +1,7 @@
// an object representing the set of vulnerabilities in a tree
/* eslint camelcase: "off" */
+const localeCompare = require('@isaacs/string-locale-compare')('en')
const npa = require('npm-package-arg')
const pickManifest = require('npm-pick-manifest')
@@ -79,7 +80,7 @@ class AuditReport extends Map {
}
obj.vulnerabilities = vulnerabilities
- .sort(([a], [b]) => a.localeCompare(b, 'en'))
+ .sort(([a], [b]) => localeCompare(a, b))
.reduce((set, [name, vuln]) => {
set[name] = vuln
return set
diff --git a/deps/npm/node_modules/@npmcli/arborist/lib/can-place-dep.js b/deps/npm/node_modules/@npmcli/arborist/lib/can-place-dep.js
index 7e2e1a0e2d2..6be59093c03 100644
--- a/deps/npm/node_modules/@npmcli/arborist/lib/can-place-dep.js
+++ b/deps/npm/node_modules/@npmcli/arborist/lib/can-place-dep.js
@@ -35,6 +35,7 @@
// then we will return REPLACE rather than CONFLICT, and Arborist will queue
// the replaced node for resolution elsewhere.
+const localeCompare = require('@isaacs/string-locale-compare')('en')
const semver = require('semver')
const debug = require('./debug.js')
const peerEntrySets = require('./peer-entry-sets.js')
@@ -79,7 +80,7 @@ class CanPlaceDep {
this._treeSnapshot = JSON.stringify([...target.root.inventory.entries()]
.map(([loc, {packageName, version, resolved}]) => {
return [loc, packageName, version, resolved]
- }).sort(([a], [b]) => a.localeCompare(b, 'en')))
+ }).sort(([a], [b]) => localeCompare(a, b)))
})
// the result of whether we can place it or not
@@ -119,7 +120,7 @@ class CanPlaceDep {
const treeSnapshot = JSON.stringify([...target.root.inventory.entries()]
.map(([loc, {packageName, version, resolved}]) => {
return [loc, packageName, version, resolved]
- }).sort(([a], [b]) => a.localeCompare(b, 'en')))
+ }).sort(([a], [b]) => localeCompare(a, b)))
/* istanbul ignore if */
if (this._treeSnapshot !== treeSnapshot) {
throw Object.assign(new Error('tree changed in CanPlaceDep'), {
diff --git a/deps/npm/node_modules/@npmcli/arborist/lib/place-dep.js b/deps/npm/node_modules/@npmcli/arborist/lib/place-dep.js
index d7cc7d935af..6edd94a38e7 100644
--- a/deps/npm/node_modules/@npmcli/arborist/lib/place-dep.js
+++ b/deps/npm/node_modules/@npmcli/arborist/lib/place-dep.js
@@ -7,6 +7,7 @@
// and saves a set of what was placed and what needs re-evaluation as
// a result.
+const localeCompare = require('@isaacs/string-locale-compare')('en')
const log = require('proc-log')
const deepestNestingTarget = require('./deepest-nesting-target.js')
const CanPlaceDep = require('./can-place-dep.js')
@@ -63,6 +64,8 @@ class PlaceDep {
this.parent = parent
this.peerConflict = null
+ this.needEvaluation = new Set()
+
this.checks = new Map()
this.place()
@@ -365,6 +368,8 @@ class PlaceDep {
}
replaceOldDep () {
+ const target = this.oldDep.parent
+
// XXX handle replacing an entire peer group?
// what about cases where we need to push some other peer groups deeper
// into the tree? all the tree updating should be done here, and track
@@ -383,8 +388,47 @@ class PlaceDep {
oldDeps.push(...gatherDepSet([edge.to], e => e.to !== edge.to))
}
}
+
+ // gather all peer edgesIn which are at this level, and will not be
+ // satisfied by the new dependency. Those are the peer sets that need
+ // to be either warned about (if they cannot go deeper), or removed and
+ // re-placed (if they can).
+ const prunePeerSets = []
+ for (const edge of this.oldDep.edgesIn) {
+ if (this.placed.satisfies(edge) ||
+ !edge.peer ||
+ edge.from.parent !== target ||
+ edge.overridden) {
+ // not a peer dep, not invalid, or not from this level, so it's fine
+ // to just let it re-evaluate as a problemEdge later, or let it be
+ // satisfied by the new dep being placed.
+ continue
+ }
+ for (const entryEdge of peerEntrySets(edge.from).keys()) {
+ // either this one needs to be pruned and re-evaluated, or marked
+ // as overridden and warned about. If the entryEdge comes in from
+ // the root, then we have to leave it alone, and in that case, it
+ // will have already warned or crashed by getting to this point.
+ const entryNode = entryEdge.to
+ const deepestTarget = deepestNestingTarget(entryNode)
+ if (deepestTarget !== target && !entryEdge.from.isRoot) {
+ prunePeerSets.push(...gatherDepSet([entryNode], e => {
+ return e.to !== entryNode && !e.overridden
+ }))
+ } else {
+ this.warnPeerConflict(edge, this.dep)
+ }
+ }
+ }
+
this.placed.replace(this.oldDep)
this.pruneForReplacement(this.placed, oldDeps)
+ for (const dep of prunePeerSets) {
+ for (const edge of dep.edgesIn) {
+ this.needEvaluation.add(edge.from)
+ }
+ dep.root = null
+ }
}
pruneForReplacement (node, oldDeps) {
@@ -430,7 +474,7 @@ class PlaceDep {
// sort these so that they're deterministically ordered
// otherwise, resulting tree shape is dependent on the order
// in which they happened to be resolved.
- const nodeSort = (a, b) => a.location.localeCompare(b.location, 'en')
+ const nodeSort = (a, b) => localeCompare(a.location, b.location)
const children = [...node.children.values()].sort(nodeSort)
for (const child of children) {
@@ -485,19 +529,22 @@ class PlaceDep {
return false
}
- warnPeerConflict () {
- this.edge.overridden = true
- const expl = this.explainPeerConflict()
+ warnPeerConflict (edge, dep) {
+ edge = edge || this.edge
+ dep = dep || this.dep
+ edge.overridden = true
+ const expl = this.explainPeerConflict(edge, dep)
log.warn('ERESOLVE', 'overriding peer dependency', expl)
}
- failPeerConflict () {
- const expl = this.explainPeerConflict()
+ failPeerConflict (edge, dep) {
+ edge = edge || this.top.edge
+ dep = dep || this.top.dep
+ const expl = this.explainPeerConflict(edge, dep)
throw Object.assign(new Error('could not resolve'), expl)
}
- explainPeerConflict () {
- const { edge, dep } = this.top
+ explainPeerConflict (edge, dep) {
const { from: node } = edge
const curNode = node.resolve(edge.name)
diff --git a/deps/npm/node_modules/@npmcli/arborist/lib/printable.js b/deps/npm/node_modules/@npmcli/arborist/lib/printable.js
index af24ccb9592..74925d96d25 100644
--- a/deps/npm/node_modules/@npmcli/arborist/lib/printable.js
+++ b/deps/npm/node_modules/@npmcli/arborist/lib/printable.js
@@ -1,6 +1,7 @@
// helper function to output a clearer visualization
// of the current node and its descendents
+const localeCompare = require('@isaacs/string-locale-compare')('en')
const util = require('util')
const relpath = require('./relpath.js')
@@ -67,14 +68,14 @@ class ArboristNode {
// edgesOut sorted by name
if (tree.edgesOut.size) {
this.edgesOut = new Map([...tree.edgesOut.entries()]
- .sort(([a], [b]) => a.localeCompare(b, 'en'))
+ .sort(([a], [b]) => localeCompare(a, b))
.map(([name, edge]) => [name, new EdgeOut(edge)]))
}
// edgesIn sorted by location
if (tree.edgesIn.size) {
this.edgesIn = new Set([...tree.edgesIn]
- .sort((a, b) => a.from.location.localeCompare(b.from.location, 'en'))
+ .sort((a, b) => localeCompare(a.from.location, b.from.location))
.map(edge => new EdgeIn(edge)))
}
@@ -86,14 +87,14 @@ class ArboristNode {
// fsChildren sorted by path
if (tree.fsChildren.size) {
this.fsChildren = new Set([...tree.fsChildren]
- .sort(({path: a}, {path: b}) => a.localeCompare(b, 'en'))
+ .sort(({path: a}, {path: b}) => localeCompare(a, b))
.map(tree => printableTree(tree, path)))
}
// children sorted by name
if (tree.children.size) {
this.children = new Map([...tree.children.entries()]
- .sort(([a], [b]) => a.localeCompare(b, 'en'))
+ .sort(([a], [b]) => localeCompare(a, b))
.map(([name, tree]) => [name, printableTree(tree, path)]))
}
}
diff --git a/deps/npm/node_modules/@npmcli/arborist/lib/shrinkwrap.js b/deps/npm/node_modules/@npmcli/arborist/lib/shrinkwrap.js
index 6e7e0e31f16..ed28130249e 100644
--- a/deps/npm/node_modules/@npmcli/arborist/lib/shrinkwrap.js
+++ b/deps/npm/node_modules/@npmcli/arborist/lib/shrinkwrap.js
@@ -9,6 +9,7 @@
// We cannot bump to v3 until npm v6 is out of common usage, and
// definitely not before npm v8.
+const localeCompare = require('@isaacs/string-locale-compare')('en')
const lockfileVersion = 2
// for comparing nodes to yarn.lock entries
@@ -911,7 +912,7 @@ class Shrinkwrap {
/* istanbul ignore next - sort calling order is indeterminate */
return aloc.length > bloc.length ? 1
: bloc.length > aloc.length ? -1
- : aloc[aloc.length - 1].localeCompare(bloc[bloc.length - 1], 'en')
+ : localeCompare(aloc[aloc.length - 1], bloc[bloc.length - 1])
})[0]
const res = consistentResolve(node.resolved, this.path, this.path, true)
diff --git a/deps/npm/node_modules/@npmcli/arborist/lib/vuln.js b/deps/npm/node_modules/@npmcli/arborist/lib/vuln.js
index da44e7c34d6..a818cf318eb 100644
--- a/deps/npm/node_modules/@npmcli/arborist/lib/vuln.js
+++ b/deps/npm/node_modules/@npmcli/arborist/lib/vuln.js
@@ -14,6 +14,7 @@
const {satisfies, simplifyRange} = require('semver')
const semverOpt = { loose: true, includePrerelease: true }
+const localeCompare = require('@isaacs/string-locale-compare')('en')
const npa = require('npm-package-arg')
const _range = Symbol('_range')
const _simpleRange = Symbol('_simpleRange')
@@ -81,6 +82,17 @@ class Vuln {
}
}
+ get isDirect () {
+ for (const node of this.nodes.values()) {
+ for (const edge of node.edgesIn) {
+ if (edge.from.isProjectRoot || edge.from.isWorkspace) {
+ return true
+ }
+ }
+ }
+ return false
+ }
+
testSpec (spec) {
const specObj = npa(spec)
if (!specObj.registry) {
@@ -100,10 +112,10 @@ class Vuln {
}
toJSON () {
- // sort so that they're always in a consistent order
return {
name: this.name,
severity: this.severity,
+ isDirect: this.isDirect,
// just loop over the advisories, since via is only Vuln objects,
// and calculated advisories have all the info we need
via: [...this.advisories].map(v => v.type === 'metavuln' ? v.dependency : {
@@ -112,12 +124,10 @@ class Vuln {
vulnerableVersions: undefined,
id: undefined,
}).sort((a, b) =>
- String(a.source || a).localeCompare(String(b.source || b, 'en'))),
- effects: [...this.effects].map(v => v.name)
- .sort(/* istanbul ignore next */(a, b) => a.localeCompare(b, 'en')),
+ localeCompare(String(a.source || a), String(b.source || b))),
+ effects: [...this.effects].map(v => v.name).sort(localeCompare),
range: this.simpleRange,
- nodes: [...this.nodes].map(n => n.location)
- .sort(/* istanbul ignore next */(a, b) => a.localeCompare(b, 'en')),
+ nodes: [...this.nodes].map(n => n.location).sort(localeCompare),
fixAvailable: this[_fixAvailable],
}
}
diff --git a/deps/npm/node_modules/@npmcli/arborist/lib/yarn-lock.js b/deps/npm/node_modules/@npmcli/arborist/lib/yarn-lock.js
index 384ba447d72..1eed0664083 100644
--- a/deps/npm/node_modules/@npmcli/arborist/lib/yarn-lock.js
+++ b/deps/npm/node_modules/@npmcli/arborist/lib/yarn-lock.js
@@ -28,13 +28,14 @@
// is an impenetrable 10kloc of webpack flow output, which is overkill
// for something relatively simple and tailored to Arborist's use case.
+const localeCompare = require('@isaacs/string-locale-compare')('en')
const consistentResolve = require('./consistent-resolve.js')
const {dirname} = require('path')
const {breadth} = require('treeverse')
// sort a key/value object into a string of JSON stringified keys and vals
const sortKV = obj => Object.keys(obj)
- .sort((a, b) => a.localeCompare(b, 'en'))
+ .sort(localeCompare)
.map(k => ` ${JSON.stringify(k)} ${JSON.stringify(obj[k])}`)
.join('\n')
@@ -170,7 +171,7 @@ class YarnLock {
toString () {
return prefix + [...new Set([...this.entries.values()])]
.map(e => e.toString())
- .sort((a, b) => a.localeCompare(b, 'en')).join('\n\n') + '\n'
+ .sort(localeCompare).join('\n\n') + '\n'
}
fromTree (tree) {
@@ -180,7 +181,7 @@ class YarnLock {
tree,
visit: node => this.addEntryFromNode(node),
getChildren: node => [...node.children.values(), ...node.fsChildren]
- .sort((a, b) => a.depth - b.depth || a.name.localeCompare(b.name, 'en')),
+ .sort((a, b) => a.depth - b.depth || localeCompare(a.name, b.name)),
})
return this
}
@@ -188,7 +189,7 @@ class YarnLock {
addEntryFromNode (node) {
const specs = [...node.edgesIn]
.map(e => `${node.name}@${e.spec}`)
- .sort((a, b) => a.localeCompare(b, 'en'))
+ .sort(localeCompare)
// Note:
// yarn will do excessive duplication in a case like this:
@@ -321,7 +322,7 @@ class YarnLockEntry {
toString () {
// sort objects to the bottom, then alphabetical
return ([...this[_specs]]
- .sort((a, b) => a.localeCompare(b, 'en'))
+ .sort(localeCompare)
.map(JSON.stringify).join(', ') +
':\n' +
Object.getOwnPropertyNames(this)
@@ -330,7 +331,7 @@ class YarnLockEntry {
(a, b) =>
/* istanbul ignore next - sort call order is unpredictable */
(typeof this[a] === 'object') === (typeof this[b] === 'object')
- ? a.localeCompare(b, 'en')
+ ? localeCompare(a, b)
: typeof this[a] === 'object' ? 1 : -1)
.map(prop =>
typeof this[prop] !== 'object'
diff --git a/deps/npm/node_modules/@npmcli/arborist/package.json b/deps/npm/node_modules/@npmcli/arborist/package.json
index 5d0e31af975..b9dbbb70722 100644
--- a/deps/npm/node_modules/@npmcli/arborist/package.json
+++ b/deps/npm/node_modules/@npmcli/arborist/package.json
@@ -1,16 +1,17 @@
{
"name": "@npmcli/arborist",
- "version": "2.8.3",
+ "version": "3.0.0",
"description": "Manage node_modules trees",
"dependencies": {
+ "@isaacs/string-locale-compare": "^1.0.1",
"@npmcli/installed-package-contents": "^1.0.7",
"@npmcli/map-workspaces": "^1.0.2",
- "@npmcli/metavuln-calculator": "^1.1.0",
+ "@npmcli/metavuln-calculator": "^2.0.0",
"@npmcli/move-file": "^1.1.0",
"@npmcli/name-from-folder": "^1.0.1",
"@npmcli/node-gyp": "^1.0.1",
"@npmcli/package-json": "^1.0.1",
- "@npmcli/run-script": "^1.8.2",
+ "@npmcli/run-script": "^2.0.0",
"bin-links": "^2.2.1",
"cacache": "^15.0.3",
"common-ancestor-path": "^1.0.1",
@@ -22,7 +23,7 @@
"npm-package-arg": "^8.1.5",
"npm-pick-manifest": "^6.1.0",
"npm-registry-fetch": "^11.0.0",
- "pacote": "^11.3.5",
+ "pacote": "^12.0.0",
"parse-conflict-json": "^1.1.1",
"proc-log": "^1.0.0",
"promise-all-reject-late": "^1.0.0",
@@ -76,6 +77,7 @@
},
"//": "sk test-env locale to catch locale-specific sorting",
"tap": {
+ "color": true,
"after": "test/fixtures/cleanup.js",
"coverage-map": "map.js",
"test-env": [
@@ -89,6 +91,6 @@
"timeout": "240"
},
"engines": {
- "node": ">= 10"
+ "node": "^12.13.0 || ^14.15.0 || >=16"
}
}
diff --git a/deps/npm/node_modules/@npmcli/metavuln-calculator/package.json b/deps/npm/node_modules/@npmcli/metavuln-calculator/package.json
index 4ad6193ae6a..131cff67233 100644
--- a/deps/npm/node_modules/@npmcli/metavuln-calculator/package.json
+++ b/deps/npm/node_modules/@npmcli/metavuln-calculator/package.json
@@ -1,6 +1,6 @@
{
"name": "@npmcli/metavuln-calculator",
- "version": "1.1.1",
+ "version": "2.0.0",
"main": "lib/index.js",
"files": [
"lib"
@@ -36,7 +36,11 @@
},
"dependencies": {
"cacache": "^15.0.5",
- "pacote": "^11.1.11",
+ "json-parse-even-better-errors": "^2.3.1",
+ "pacote": "^12.0.0",
"semver": "^7.3.2"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16"
}
}
diff --git a/deps/npm/node_modules/@npmcli/run-script/package.json b/deps/npm/node_modules/@npmcli/run-script/package.json
index 5a5d1a71d8f..9e744e639eb 100644
--- a/deps/npm/node_modules/@npmcli/run-script/package.json
+++ b/deps/npm/node_modules/@npmcli/run-script/package.json
@@ -1,6 +1,6 @@
{
"name": "@npmcli/run-script",
- "version": "1.8.6",
+ "version": "2.0.0",
"description": "Run a lifecycle script for a package (descendant of npm-lifecycle)",
"author": "Isaac Z. Schlueter <i@izs.me> (https://izs.me)",
"license": "ISC",
@@ -30,7 +30,7 @@
"dependencies": {
"@npmcli/node-gyp": "^1.0.2",
"@npmcli/promise-spawn": "^1.3.2",
- "node-gyp": "^7.1.0",
+ "node-gyp": "^8.2.0",
"read-package-json-fast": "^2.0.1"
},
"files": [
diff --git a/deps/npm/node_modules/ajv/.tonic_example.js b/deps/npm/node_modules/ajv/.tonic_example.js
deleted file mode 100644
index aa11812d87b..00000000000
--- a/deps/npm/node_modules/ajv/.tonic_example.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var Ajv = require('ajv');
-var ajv = new Ajv({allErrors: true});
-
-var schema = {
- "properties": {
- "foo": { "type": "string" },
- "bar": { "type": "number", "maximum": 3 }
- }
-};
-
-var validate = ajv.compile(schema);
-
-test({"foo": "abc", "bar": 2});
-test({"foo": 2, "bar": 4});
-
-function test(data) {
- var valid = validate(data);
- if (valid) console.log('Valid!');
- else console.log('Invalid: ' + ajv.errorsText(validate.errors));
-} \ No newline at end of file
diff --git a/deps/npm/node_modules/ajv/LICENSE b/deps/npm/node_modules/ajv/LICENSE
deleted file mode 100644
index 96ee719987f..00000000000
--- a/deps/npm/node_modules/ajv/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-2017 Evgeny Poberezkin
-
-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/deps/npm/node_modules/ajv/dist/ajv.bundle.js b/deps/npm/node_modules/ajv/dist/ajv.bundle.js
deleted file mode 100644
index e4d9d156ff7..00000000000
--- a/deps/npm/node_modules/ajv/dist/ajv.bundle.js
+++ /dev/null
@@ -1,7189 +0,0 @@
-(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.Ajv = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
-'use strict';
-
-
-var Cache = module.exports = function Cache() {
- this._cache = {};
-};
-
-
-Cache.prototype.put = function Cache_put(key, value) {
- this._cache[key] = value;
-};
-
-
-Cache.prototype.get = function Cache_get(key) {
- return this._cache[key];
-};
-
-
-Cache.prototype.del = function Cache_del(key) {
- delete this._cache[key];
-};
-
-
-Cache.prototype.clear = function Cache_clear() {
- this._cache = {};
-};
-
-},{}],2:[function(require,module,exports){
-'use strict';
-
-var MissingRefError = require('./error_classes').MissingRef;
-
-module.exports = compileAsync;
-
-
-/**
- * Creates validating function for passed schema with asynchronous loading of missing schemas.
- * `loadSchema` option should be a function that accepts schema uri and returns promise that resolves with the schema.
- * @this Ajv
- * @param {Object} schema schema object
- * @param {Boolean} meta optional true to compile meta-schema; this parameter can be skipped
- * @param {Function} callback an optional node-style callback, it is called with 2 parameters: error (or null) and validating function.
- * @return {Promise} promise that resolves with a validating function.
- */
-function compileAsync(schema, meta, callback) {
- /* eslint no-shadow: 0 */
- /* global Promise */
- /* jshint validthis: true */
- var self = this;
- if (typeof this._opts.loadSchema != 'function')
- throw new Error('options.loadSchema should be a function');
-
- if (typeof meta == 'function') {
- callback = meta;
- meta = undefined;
- }
-
- var p = loadMetaSchemaOf(schema).then(function () {
- var schemaObj = self._addSchema(schema, undefined, meta);
- return schemaObj.validate || _compileAsync(schemaObj);
- });
-
- if (callback) {
- p.then(
- function(v) { callback(null, v); },
- callback
- );
- }
-
- return p;
-
-
- function loadMetaSchemaOf(sch) {
- var $schema = sch.$schema;
- return $schema && !self.getSchema($schema)
- ? compileAsync.call(self, { $ref: $schema }, true)
- : Promise.resolve();
- }
-
-
- function _compileAsync(schemaObj) {
- try { return self._compile(schemaObj); }
- catch(e) {
- if (e instanceof MissingRefError) return loadMissingSchema(e);
- throw e;
- }
-
-
- function loadMissingSchema(e) {
- var ref = e.missingSchema;
- if (added(ref)) throw new Error('Schema ' + ref + ' is loaded but ' + e.missingRef + ' cannot be resolved');
-
- var schemaPromise = self._loadingSchemas[ref];
- if (!schemaPromise) {
- schemaPromise = self._loadingSchemas[ref] = self._opts.loadSchema(ref);
- schemaPromise.then(removePromise, removePromise);
- }
-
- return schemaPromise.then(function (sch) {
- if (!added(ref)) {
- return loadMetaSchemaOf(sch).then(function () {
- if (!added(ref)) self.addSchema(sch, ref, undefined, meta);
- });
- }
- }).then(function() {
- return _compileAsync(schemaObj);
- });
-
- function removePromise() {
- delete self._loadingSchemas[ref];
- }
-
- function added(ref) {
- return self._refs[ref] || self._schemas[ref];
- }
- }
- }
-}
-
-},{"./error_classes":3}],3:[function(require,module,exports){
-'use strict';
-
-var resolve = require('./resolve');
-
-module.exports = {
- Validation: errorSubclass(ValidationError),
- MissingRef: errorSubclass(MissingRefError)
-};
-
-
-function ValidationError(errors) {
- this.message = 'validation failed';
- this.errors = errors;
- this.ajv = this.validation = true;
-}
-
-
-MissingRefError.message = function (baseId, ref) {
- return 'can\'t resolve reference ' + ref + ' from id ' + baseId;
-};
-
-
-function MissingRefError(baseId, ref, message) {
- this.message = message || MissingRefError.message(baseId, ref);
- this.missingRef = resolve.url(baseId, ref);
- this.missingSchema = resolve.normalizeId(resolve.fullPath(this.missingRef));
-}
-
-
-function errorSubclass(Subclass) {
- Subclass.prototype = Object.create(Error.prototype);
- Subclass.prototype.constructor = Subclass;
- return Subclass;
-}
-
-},{"./resolve":6}],4:[function(require,module,exports){
-'use strict';
-
-var util = require('./util');
-
-var DATE = /^(\d\d\d\d)-(\d\d)-(\d\d)$/;
-var DAYS = [0,31,28,31,30,31,30,31,31,30,31,30,31];
-var TIME = /^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i;
-var HOSTNAME = /^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-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 URIREF = /^(?:[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;
-// uri-template: https://tools.ietf.org/html/rfc6570
-var URITEMPLATE = /^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i;
-// For the source: https://gist.github.com/dperini/729294
-// For test cases: https://mathiasbynens.be/demo/url-regex
-// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983.
-// var URL = /^(?:(?:https?|ftp):\/\/)(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!127(?:\.\d{1,3}){3})(?!169\.254(?:\.\d{1,3}){2})(?!192\.168(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u{00a1}-\u{ffff}0-9]+-)*[a-z\u{00a1}-\u{ffff}0-9]+)(?:\.(?:[a-z\u{00a1}-\u{ffff}0-9]+-)*[a-z\u{00a1}-\u{ffff}0-9]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu;
-var URL = /^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i;
-var UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;
-var JSON_POINTER = /^(?:\/(?:[^~/]|~0|~1)*)*$/;
-var JSON_POINTER_URI_FRAGMENT = /^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;
-var RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;
-
-
-module.exports = formats;
-
-function formats(mode) {
- mode = mode == 'full' ? 'full' : 'fast';
- return util.copy(formats[mode]);
-}
-
-
-formats.fast = {
- // date: http://tools.ietf.org/html/rfc3339#section-5.6
- date: /^\d\d\d\d-[0-1]\d-[0-3]\d$/,
- // date-time: http://tools.ietf.org/html/rfc3339#section-5.6
- time: /^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\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|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,
- // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js
- uri: /^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,
- 'uri-reference': /^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,
- 'uri-template': URITEMPLATE,
- url: URL,
- // email (sources from jsen validator):
- // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363
- // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')
- 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: HOSTNAME,
- // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html
- ipv4: /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,
- // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses
- 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: regex,
- // uuid: http://tools.ietf.org/html/rfc4122
- uuid: UUID,
- // JSON-pointer: https://tools.ietf.org/html/rfc6901
- // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A
- 'json-pointer': JSON_POINTER,
- 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,
- // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00
- 'relative-json-pointer': RELATIVE_JSON_POINTER
-};
-
-
-formats.full = {
- date: date,
- time: time,
- 'date-time': date_time,
- uri: uri,
- 'uri-reference': URIREF,
- 'uri-template': URITEMPLATE,
- url: URL,
- 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: HOSTNAME,
- 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: regex,
- uuid: UUID,
- 'json-pointer': JSON_POINTER,
- 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,
- 'relative-json-pointer': RELATIVE_JSON_POINTER
-};
-
-
-function isLeapYear(year) {
- // https://tools.ietf.org/html/rfc3339#appendix-C
- return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
-}
-
-
-function date(str) {
- // full-date from http://tools.ietf.org/html/rfc3339#section-5.6
- var matches = str.match(DATE);
- if (!matches) return false;
-
- var year = +matches[1];
- var month = +matches[2];
- var day = +matches[3];
-
- return month >= 1 && month <= 12 && day >= 1 &&
- day <= (month == 2 && isLeapYear(year) ? 29 : DAYS[month]);
-}
-
-
-function time(str, full) {
- var matches = str.match(TIME);
- if (!matches) return false;
-
- var hour = matches[1];
- var minute = matches[2];
- var second = matches[3];
- var timeZone = matches[5];
- return ((hour <= 23 && minute <= 59 && second <= 59) ||
- (hour == 23 && minute == 59 && second == 60)) &&
- (!full || timeZone);
-}
-
-
-var DATE_TIME_SEPARATOR = /t|\s/i;
-function date_time(str) {
- // http://tools.ietf.org/html/rfc3339#section-5.6
- var dateTime = str.split(DATE_TIME_SEPARATOR);
- return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true);
-}
-
-
-var NOT_URI_FRAGMENT = /\/|:/;
-function uri(str) {
- // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required "."
- return NOT_URI_FRAGMENT.test(str) && URI.test(str);
-}
-
-
-var Z_ANCHOR = /[^\\]\\Z/;
-function regex(str) {
- if (Z_ANCHOR.test(str)) return false;
- try {
- new RegExp(str);
- return true;
- } catch(e) {
- return false;
- }
-}
-
-},{"./util":10}],5:[function(require,module,exports){
-'use strict';
-
-var resolve = require('./resolve')
- , util = require('./util')
- , errorClasses = require('./error_classes')
- , stableStringify = require('fast-json-stable-stringify');
-
-var validateGenerator = require('../dotjs/validate');
-
-/**
- * Functions below are used inside compiled validations function
- */
-
-var ucs2length = util.ucs2length;
-var equal = require('fast-deep-equal');
-
-// this error is thrown by async schemas to return validation errors via exception
-var ValidationError = errorClasses.Validation;
-
-module.exports = compile;
-
-
-/**
- * Compiles schema to validation function
- * @this Ajv
- * @param {Object} schema schema object
- * @param {Object} root object with information about the root schema for this schema
- * @param {Object} localRefs the hash of local references inside the schema (created by resolve.id), used for inline resolution
- * @param {String} baseId base ID for IDs in the schema
- * @return {Function} validation function
- */
-function compile(schema, root, localRefs, baseId) {
- /* jshint validthis: true, evil: true */
- /* eslint no-shadow: 0 */
- var self = this
- , opts = this._opts
- , refVal = [ undefined ]
- , refs = {}
- , patterns = []
- , patternsHash = {}
- , defaults = []
- , defaultsHash = {}
- , customRules = [];
-
- root = root || { schema: schema, refVal: refVal, refs: refs };
-
- var c = checkCompiling.call(this, schema, root, baseId);
- var compilation = this._compilations[c.index];
- if (c.compiling) return (compilation.callValidate = callValidate);
-
- var formats = this._formats;
- var RULES = this.RULES;
-
- try {
- var v = localCompile(schema, root, localRefs, baseId);
- compilation.validate = v;
- var cv = compilation.callValidate;
- if (cv) {
- cv.schema = v.schema;
- cv.errors = null;
- cv.refs = v.refs;
- cv.refVal = v.refVal;
- cv.root = v.root;
- cv.$async = v.$async;
- if (opts.sourceCode) cv.source = v.source;
- }
- return v;
- } finally {
- endCompiling.call(this, schema, root, baseId);
- }
-
- /* @this {*} - custom context, see passContext option */
- function callValidate() {
- /* jshint validthis: true */
- var validate = compilation.validate;
- var result = validate.apply(this, arguments);
- callValidate.errors = validate.errors;
- return result;
- }
-
- function localCompile(_schema, _root, localRefs, baseId) {
- var isRoot = !_root || (_root && _root.schema == _schema);
- if (_root.schema != root.schema)
- return compile.call(self, _schema, _root, localRefs, baseId);
-
- var $async = _schema.$async === true;
-
- var sourceCode = validateGenerator({
- isTop: true,
- schema: _schema,
- isRoot: isRoot,
- baseId: baseId,
- root: _root,
- schemaPath: '',
- errSchemaPath: '#',
- errorPath: '""',
- MissingRefError: errorClasses.MissingRef,
- RULES: RULES,
- validate: validateGenerator,
- util: util,
- resolve: resolve,
- resolveRef: resolveRef,
- usePattern: usePattern,
- useDefault: useDefault,
- useCustomRule: useCustomRule,
- opts: opts,
- formats: formats,
- logger: self.logger,
- self: self
- });
-
- sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode)
- + vars(defaults, defaultCode) + vars(customRules, customRuleCode)
- + sourceCode;
-
- if (opts.processCode) sourceCode = opts.processCode(sourceCode, _schema);
- // console.log('\n\n\n *** \n', JSON.stringify(sourceCode));
- var validate;
- try {
- var makeValidate = new Function(
- 'self',
- 'RULES',
- 'formats',
- 'root',
- 'refVal',
- 'defaults',
- 'customRules',
- 'equal',
- 'ucs2length',
- 'ValidationError',
- sourceCode
- );
-
- validate = makeValidate(
- self,
- RULES,
- formats,
- root,
- refVal,
- defaults,
- customRules,
- equal,
- ucs2length,
- ValidationError
- );
-
- refVal[0] = validate;
- } catch(e) {
- self.logger.error('Error compiling schema, function code:', sourceCode);
- throw e;
- }
-
- validate.schema = _schema;
- validate.errors = null;
- validate.refs = refs;
- validate.refVal = refVal;
- validate.root = isRoot ? validate : _root;
- if ($async) validate.$async = true;
- if (opts.sourceCode === true) {
- validate.source = {
- code: sourceCode,
- patterns: patterns,
- defaults: defaults
- };
- }
-
- return validate;
- }
-
- function resolveRef(baseId, ref, isRoot) {
- ref = resolve.url(baseId, ref);
- var refIndex = refs[ref];
- var _refVal, refCode;
- if (refIndex !== undefined) {
- _refVal = refVal[refIndex];
- refCode = 'refVal[' + refIndex + ']';
- return resolvedRef(_refVal, refCode);
- }
- if (!isRoot && root.refs) {
- var rootRefId = root.refs[ref];
- if (rootRefId !== undefined) {
- _refVal = root.refVal[rootRefId];
- refCode = addLocalRef(ref, _refVal);
- return resolvedRef(_refVal, refCode);
- }
- }
-
- refCode = addLocalRef(ref);
- var v = resolve.call(self, localCompile, root, ref);
- if (v === undefined) {
- var localSchema = localRefs && localRefs[ref];
- if (localSchema) {
- v = resolve.inlineRef(localSchema, opts.inlineRefs)
- ? localSchema
- : compile.call(self, localSchema, root, localRefs, baseId);
- }
- }
-
- if (v === undefined) {
- removeLocalRef(ref);
- } else {
- replaceLocalRef(ref, v);
- return resolvedRef(v, refCode);
- }
- }
-
- function addLocalRef(ref, v) {
- var refId = refVal.length;
- refVal[refId] = v;
- refs[ref] = refId;
- return 'refVal' + refId;
- }
-
- function removeLocalRef(ref) {
- delete refs[ref];
- }
-
- function replaceLocalRef(ref, v) {
- var refId = refs[ref];
- refVal[refId] = v;
- }
-
- function resolvedRef(refVal, code) {
- return typeof refVal == 'object' || typeof refVal == 'boolean'
- ? { code: code, schema: refVal, inline: true }
- : { code: code, $async: refVal && !!refVal.$async };
- }
-
- function usePattern(regexStr) {
- var index = patternsHash[regexStr];
- if (index === undefined) {
- index = patternsHash[regexStr] = patterns.length;
- patterns[index] = regexStr;
- }
- return 'pattern' + index;
- }
-
- function useDefault(value) {
- switch (typeof value) {
- case 'boolean':
- case 'number':
- return '' + value;
- case 'string':
- return util.toQuotedString(value);
- case 'object':
- if (value === null) return 'null';
- var valueStr = stableStringify(value);
- var index = defaultsHash[valueStr];
- if (index === undefined) {
- index = defaultsHash[valueStr] = defaults.length;
- defaults[index] = value;
- }
- return 'default' + index;
- }
- }
-
- function useCustomRule(rule, schema, parentSchema, it) {
- if (self._opts.validateSchema !== false) {
- var deps = rule.definition.dependencies;
- if (deps && !deps.every(function(keyword) {
- return Object.prototype.hasOwnProperty.call(parentSchema, keyword);
- }))
- throw new Error('parent schema must have all required keywords: ' + deps.join(','));
-
- var validateSchema = rule.definition.validateSchema;
- if (validateSchema) {
- var valid = validateSchema(schema);
- if (!valid) {
- var message = 'keyword schema is invalid: ' + self.errorsText(validateSchema.errors);
- if (self._opts.validateSchema == 'log') self.logger.error(message);
- else throw new Error(message);
- }
- }
- }
-
- var compile = rule.definition.compile
- , inline = rule.definition.inline
- , macro = rule.definition.macro;
-
- var validate;
- if (compile) {
- validate = compile.call(self, schema, parentSchema, it);
- } else if (macro) {
- validate = macro.call(self, schema, parentSchema, it);
- if (opts.validateSchema !== false) self.validateSchema(validate, true);
- } else if (inline) {
- validate = inline.call(self, it, rule.keyword, schema, parentSchema);
- } else {
- validate = rule.definition.validate;
- if (!validate) return;
- }
-
- if (validate === undefined)
- throw new Error('custom keyword "' + rule.keyword + '"failed to compile');
-
- var index = customRules.length;
- customRules[index] = validate;
-
- return {
- code: 'customRule' + index,
- validate: validate
- };
- }
-}
-
-
-/**
- * Checks if the schema is currently compiled
- * @this Ajv
- * @param {Object} schema schema to compile
- * @param {Object} root root object
- * @param {String} baseId base schema ID
- * @return {Object} object with properties "index" (compilation index) and "compiling" (boolean)
- */
-function checkCompiling(schema, root, baseId) {
- /* jshint validthis: true */
- var index = compIndex.call(this, schema, root, baseId);
- if (index >= 0) return { index: index, compiling: true };
- index = this._compilations.length;
- this._compilations[index] = {
- schema: schema,
- root: root,
- baseId: baseId
- };
- return { index: index, compiling: false };
-}
-
-
-/**
- * Removes the schema from the currently compiled list
- * @this Ajv
- * @param {Object} schema schema to compile
- * @param {Object} root root object
- * @param {String} baseId base schema ID
- */
-function endCompiling(schema, root, baseId) {
- /* jshint validthis: true */
- var i = compIndex.call(this, schema, root, baseId);
- if (i >= 0) this._compilations.splice(i, 1);
-}
-
-
-/**
- * Index of schema compilation in the currently compiled list
- * @this Ajv
- * @param {Object} schema schema to compile
- * @param {Object} root root object
- * @param {String} baseId base schema ID
- * @return {Integer} compilation index
- */
-function compIndex(schema, root, baseId) {
- /* jshint validthis: true */
- for (var i=0; i<this._compilations.length; i++) {
- var c = this._compilations[i];
- if (c.schema == schema && c.root == root && c.baseId == baseId) return i;
- }
- return -1;
-}
-
-
-function patternCode(i, patterns) {
- return 'var pattern' + i + ' = new RegExp(' + util.toQuotedString(patterns[i]) + ');';
-}
-
-
-function defaultCode(i) {
- return 'var default' + i + ' = defaults[' + i + '];';
-}
-
-
-function refValCode(i, refVal) {
- return refVal[i] === undefined ? '' : 'var refVal' + i + ' = refVal[' + i + '];';
-}
-
-
-function customRuleCode(i) {
- return 'var customRule' + i + ' = customRules[' + i + '];';
-}
-
-
-function vars(arr, statement) {
- if (!arr.length) return '';
- var code = '';
- for (var i=0; i<arr.length; i++)
- code += statement(i, arr);
- return code;
-}
-
-},{"../dotjs/validate":38,"./error_classes":3,"./resolve":6,"./util":10,"fast-deep-equal":42,"fast-json-stable-stringify":43}],6:[function(require,module,exports){
-'use strict';
-
-var URI = require('uri-js')
- , equal = require('fast-deep-equal')
- , util = require('./util')
- , SchemaObject = require('./schema_obj')
- , traverse = require('json-schema-traverse');
-
-module.exports = resolve;
-
-resolve.normalizeId = normalizeId;
-resolve.fullPath = getFullPath;
-resolve.url = resolveUrl;
-resolve.ids = resolveIds;
-resolve.inlineRef = inlineRef;
-resolve.schema = resolveSchema;
-
-/**
- * [resolve and compile the references ($ref)]
- * @this Ajv
- * @param {Function} compile reference to schema compilation funciton (localCompile)
- * @param {Object} root object with information about the root schema for the current schema
- * @param {String} ref reference to resolve
- * @return {Object|Function} schema object (if the schema can be inlined) or validation function
- */
-function resolve(compile, root, ref) {
- /* jshint validthis: true */
- var refVal = this._refs[ref];
- if (typeof refVal == 'string') {
- if (this._refs[refVal]) refVal = this._refs[refVal];
- else return resolve.call(this, compile, root, refVal);
- }
-
- refVal = refVal || this._schemas[ref];
- if (refVal instanceof SchemaObject) {
- return inlineRef(refVal.schema, this._opts.inlineRefs)
- ? refVal.schema
- : refVal.validate || this._compile(refVal);
- }
-
- var res = resolveSchema.call(this, root, ref);
- var schema, v, baseId;
- if (res) {
- schema = res.schema;
- root = res.root;
- baseId = res.baseId;
- }
-
- if (schema instanceof SchemaObject) {
- v = schema.validate || compile.call(this, schema.schema, root, undefined, baseId);
- } else if (schema !== undefined) {
- v = inlineRef(schema, this._opts.inlineRefs)
- ? schema
- : compile.call(this, schema, root, undefined, baseId);
- }
-
- return v;
-}
-
-
-/**
- * Resolve schema, its root and baseId
- * @this Ajv
- * @param {Object} root root object with properties schema, refVal, refs
- * @param {String} ref reference to resolve
- * @return {Object} object with properties schema, root, baseId
- */
-function resolveSchema(root, ref) {
- /* jshint validthis: true */
- var p = URI.parse(ref)
- , refPath = _getFullPath(p)
- , baseId = getFullPath(this._getId(root.schema));
- if (Object.keys(root.schema).length === 0 || refPath !== baseId) {
- var id = normalizeId(refPath);
- var refVal = this._refs[id];
- if (typeof refVal == 'string') {
- return resolveRecursive.call(this, root, refVal, p);
- } else if (refVal instanceof SchemaObject) {
- if (!refVal.validate) this._compile(refVal);
- root = refVal;
- } else {
- refVal = this._schemas[id];
- if (refVal instanceof SchemaObject) {
- if (!refVal.validate) this._compile(refVal);
- if (id == normalizeId(ref))
- return { schema: refVal, root: root, baseId: baseId };
- root = refVal;
- } else {
- return;
- }
- }
- if (!root.schema) return;
- baseId = getFullPath(this._getId(root.schema));
- }
- return getJsonPointer.call(this, p, baseId, root.schema, root);
-}
-
-
-/* @this Ajv */
-function resolveRecursive(root, ref, parsedRef) {
- /* jshint validthis: true */
- var res = resolveSchema.call(this, root, ref);
- if (res) {
- var schema = res.schema;
- var baseId = res.baseId;
- root = res.root;
- var id = this._getId(schema);
- if (id) baseId = resolveUrl(baseId, id);
- return getJsonPointer.call(this, parsedRef, baseId, schema, root);
- }
-}
-
-
-var PREVENT_SCOPE_CHANGE = util.toHash(['properties', 'patternProperties', 'enum', 'dependencies', 'definitions']);
-/* @this Ajv */
-function getJsonPointer(parsedRef, baseId, schema, root) {
- /* jshint validthis: true */
- parsedRef.fragment = parsedRef.fragment || '';
- if (parsedRef.fragment.slice(0,1) != '/') return;
- var parts = parsedRef.fragment.split('/');
-
- for (var i = 1; i < parts.length; i++) {
- var part = parts[i];
- if (part) {
- part = util.unescapeFragment(part);
- schema = schema[part];
- if (schema === undefined) break;
- var id;
- if (!PREVENT_SCOPE_CHANGE[part]) {
- id = this._getId(schema);
- if (id) baseId = resolveUrl(baseId, id);
- if (schema.$ref) {
- var $ref = resolveUrl(baseId, schema.$ref);
- var res = resolveSchema.call(this, root, $ref);
- if (res) {
- schema = res.schema;
- root = res.root;
- baseId = res.baseId;
- }
- }
- }
- }
- }
- if (schema !== undefined && schema !== root.schema)
- return { schema: schema, root: root, baseId: baseId };
-}
-
-
-var SIMPLE_INLINED = util.toHash([
- 'type', 'format', 'pattern',
- 'maxLength', 'minLength',
- 'maxProperties', 'minProperties',
- 'maxItems', 'minItems',
- 'maximum', 'minimum',
- 'uniqueItems', 'multipleOf',
- 'required', 'enum'
-]);
-function inlineRef(schema, limit) {
- if (limit === false) return false;
- if (limit === undefined || limit === true) return checkNoRef(schema);
- else if (limit) return countKeys(schema) <= limit;
-}
-
-
-function checkNoRef(schema) {
- var item;
- if (Array.isArray(schema)) {
- for (var i=0; i<schema.length; i++) {
- item = schema[i];
- if (typeof item == 'object' && !checkNoRef(item)) return false;
- }
- } else {
- for (var key in schema) {
- if (key == '$ref') return false;
- item = schema[key];
- if (typeof item == 'object' && !checkNoRef(item)) return false;
- }
- }
- return true;
-}
-
-
-function countKeys(schema) {
- var count = 0, item;
- if (Array.isArray(schema)) {
- for (var i=0; i<schema.length; i++) {
- item = schema[i];
- if (typeof item == 'object') count += countKeys(item);
- if (count == Infinity) return Infinity;
- }
- } else {
- for (var key in schema) {
- if (key == '$ref') return Infinity;
- if (SIMPLE_INLINED[key]) {
- count++;
- } else {
- item = schema[key];
- if (typeof item == 'object') count += countKeys(item) + 1;
- if (count == Infinity) return Infinity;
- }
- }
- }
- return count;
-}
-
-
-function getFullPath(id, normalize) {
- if (normalize !== false) id = normalizeId(id);
- var p = URI.parse(id);
- return _getFullPath(p);
-}
-
-
-function _getFullPath(p) {
- return URI.serialize(p).split('#')[0] + '#';
-}
-
-
-var TRAILING_SLASH_HASH = /#\/?$/;
-function normalizeId(id) {
- return id ? id.replace(TRAILING_SLASH_HASH, '') : '';
-}
-
-
-function resolveUrl(baseId, id) {
- id = normalizeId(id);
- return URI.resolve(baseId, id);
-}
-
-
-/* @this Ajv */
-function resolveIds(schema) {
- var schemaId = normalizeId(this._getId(schema));
- var baseIds = {'': schemaId};
- var fullPaths = {'': getFullPath(schemaId, false)};
- var localRefs = {};
- var self = this;
-
- traverse(schema, {allKeys: true}, function(sch, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {
- if (jsonPtr === '') return;
- var id = self._getId(sch);
- var baseId = baseIds[parentJsonPtr];
- var fullPath = fullPaths[parentJsonPtr] + '/' + parentKeyword;
- if (keyIndex !== undefined)
- fullPath += '/' + (typeof keyIndex == 'number' ? keyIndex : util.escapeFragment(keyIndex));
-
- if (typeof id == 'string') {
- id = baseId = normalizeId(baseId ? URI.resolve(baseId, id) : id);
-
- var refVal = self._refs[id];
- if (typeof refVal == 'string') refVal = self._refs[refVal];
- if (refVal && refVal.schema) {
- if (!equal(sch, refVal.schema))
- throw new Error('id "' + id + '" resolves to more than one schema');
- } else if (id != normalizeId(fullPath)) {
- if (id[0] == '#') {
- if (localRefs[id] && !equal(sch, localRefs[id]))
- throw new Error('id "' + id + '" resolves to more than one schema');
- localRefs[id] = sch;
- } else {
- self._refs[id] = fullPath;
- }
- }
- }
- baseIds[jsonPtr] = baseId;
- fullPaths[jsonPtr] = fullPath;
- });
-
- return localRefs;
-}
-
-},{"./schema_obj":8,"./util":10,"fast-deep-equal":42,"json-schema-traverse":44,"uri-js":45}],7:[function(require,module,exports){
-'use strict';
-
-var ruleModules = require('../dotjs')
- , toHash = require('./util').toHash;
-
-module.exports = function rules() {
- var RULES = [
- { type: 'number',
- rules: [ { 'maximum': ['exclusiveMaximum'] },
- { 'minimum': ['exclusiveMinimum'] }, 'multipleOf', 'format'] },
- { type: 'string',
- rules: [ 'maxLength', 'minLength', 'pattern', 'format' ] },
- { type: 'array',
- rules: [ 'maxItems', 'minItems', 'items', 'contains', 'uniqueItems' ] },
- { type: 'object',
- rules: [ 'maxProperties', 'minProperties', 'required', 'dependencies', 'propertyNames',
- { 'properties': ['additionalProperties', 'patternProperties'] } ] },
- { rules: [ '$ref', 'const', 'enum', 'not', 'anyOf', 'oneOf', 'allOf', 'if' ] }
- ];
-
- var ALL = [ 'type', '$comment' ];
- var KEYWORDS = [
- '$schema', '$id', 'id', '$data', '$async', 'title',
- 'description', 'default', 'definitions',
- 'examples', 'readOnly', 'writeOnly',
- 'contentMediaType', 'contentEncoding',
- 'additionalItems', 'then', 'else'
- ];
- var TYPES = [ 'number', 'integer', 'string', 'array', 'object', 'boolean', 'null' ];
- RULES.all = toHash(ALL);
- RULES.types = toHash(TYPES);
-
- RULES.forEach(function (group) {
- group.rules = group.rules.map(function (keyword) {
- var implKeywords;
- if (typeof keyword == 'object') {
- var key = Object.keys(keyword)[0];
- implKeywords = keyword[key];
- keyword = key;
- implKeywords.forEach(function (k) {
- ALL.push(k);
- RULES.all[k] = true;
- });
- }
- ALL.push(keyword);
- var rule = RULES.all[keyword] = {
- keyword: keyword,
- code: ruleModules[keyword],
- implements: implKeywords
- };
- return rule;
- });
-
- RULES.all.$comment = {
- keyword: '$comment',
- code: ruleModules.$comment
- };
-
- if (group.type) RULES.types[group.type] = group;
- });
-
- RULES.keywords = toHash(ALL.concat(KEYWORDS));
- RULES.custom = {};
-
- return RULES;
-};
-
-},{"../dotjs":27,"./util":10}],8:[function(require,module,exports){
-'use strict';
-
-var util = require('./util');
-
-module.exports = SchemaObject;
-
-function SchemaObject(obj) {
- util.copy(obj, this);
-}
-
-},{"./util":10}],9:[function(require,module,exports){
-'use strict';
-
-// https://mathiasbynens.be/notes/javascript-encoding
-// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode
-module.exports = function ucs2length(str) {
- var length = 0
- , len = str.length
- , pos = 0
- , value;
- while (pos < len) {
- length++;
- value = str.charCodeAt(pos++);
- if (value >= 0xD800 && value <= 0xDBFF && pos < len) {
- // high surrogate, and there is a next character
- value = str.charCodeAt(pos);
- if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate
- }
- }
- return length;
-};
-
-},{}],10:[function(require,module,exports){
-'use strict';
-
-
-module.exports = {
- copy: copy,
- checkDataType: checkDataType,
- checkDataTypes: checkDataTypes,
- coerceToTypes: coerceToTypes,
- toHash: toHash,
- getProperty: getProperty,
- escapeQuotes: escapeQuotes,
- equal: require('fast-deep-equal'),
- ucs2length: require('./ucs2length'),
- varOccurences: varOccurences,
- varReplace: varReplace,
- schemaHasRules: schemaHasRules,
- schemaHasRulesExcept: schemaHasRulesExcept,
- schemaUnknownRules: schemaUnknownRules,
- toQuotedString: toQuotedString,
- getPathExpr: getPathExpr,
- getPath: getPath,
- getData: getData,
- unescapeFragment: unescapeFragment,
- unescapeJsonPointer: unescapeJsonPointer,
- escapeFragment: escapeFragment,
- escapeJsonPointer: escapeJsonPointer
-};
-
-
-function copy(o, to) {
- to = to || {};
- for (var key in o) to[key] = o[key];
- return to;
-}
-
-
-function checkDataType(dataType, data, strictNumbers, negate) {
- var EQUAL = negate ? ' !== ' : ' === '
- , AND = negate ? ' || ' : ' && '
- , OK = negate ? '!' : ''
- , NOT = negate ? '' : '!';
- switch (dataType) {
- case 'null': return data + EQUAL + 'null';
- case 'array': return OK + 'Array.isArray(' + data + ')';
- case 'object': return '(' + OK + data + AND +
- 'typeof ' + data + EQUAL + '"object"' + AND +
- NOT + 'Array.isArray(' + data + '))';
- case 'integer': return '(typeof ' + data + EQUAL + '"number"' + AND +
- NOT + '(' + data + ' % 1)' +
- AND + data + EQUAL + data +
- (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';
- case 'number': return '(typeof ' + data + EQUAL + '"' + dataType + '"' +
- (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';
- default: return 'typeof ' + data + EQUAL + '"' + dataType + '"';
- }
-}
-
-
-function checkDataTypes(dataTypes, data, strictNumbers) {
- switch (dataTypes.length) {
- case 1: return checkDataType(dataTypes[0], data, strictNumbers, true);
- default:
- var code = '';
- var types = toHash(dataTypes);
- if (types.array && types.object) {
- code = types.null ? '(': '(!' + data + ' || ';
- code += 'typeof ' + data + ' !== "object")';
- delete types.null;
- delete types.array;
- delete types.object;
- }
- if (types.number) delete types.integer;
- for (var t in types)
- code += (code ? ' && ' : '' ) + checkDataType(t, data, strictNumbers, true);
-
- return code;
- }
-}
-
-
-var COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]);
-function coerceToTypes(optionCoerceTypes, dataTypes) {
- if (Array.isArray(dataTypes)) {
- var types = [];
- for (var i=0; i<dataTypes.length; i++) {
- var t = dataTypes[i];
- if (COERCE_TO_TYPES[t]) types[types.length] = t;
- else if (optionCoerceTypes === 'array' && t === 'array') types[types.length] = t;
- }
- if (types.length) return types;
- } else if (COERCE_TO_TYPES[dataTypes]) {
- return [dataTypes];
- } else if (optionCoerceTypes === 'array' && dataTypes === 'array') {
- return ['array'];
- }
-}
-
-
-function toHash(arr) {
- var hash = {};
- for (var i=0; i<arr.length; i++) hash[arr[i]] = true;
- return hash;
-}
-
-
-var IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;
-var SINGLE_QUOTE = /'|\\/g;
-function getProperty(key) {
- return typeof key == 'number'
- ? '[' + key + ']'
- : IDENTIFIER.test(key)
- ? '.' + key
- : "['" + escapeQuotes(key) + "']";
-}
-
-
-function escapeQuotes(str) {
- return str.replace(SINGLE_QUOTE, '\\$&')
- .replace(/\n/g, '\\n')
- .replace(/\r/g, '\\r')
- .replace(/\f/g, '\\f')
- .replace(/\t/g, '\\t');
-}
-
-
-function varOccurences(str, dataVar) {
- dataVar += '[^0-9]';
- var matches = str.match(new RegExp(dataVar, 'g'));
- return matches ? matches.length : 0;
-}
-
-
-function varReplace(str, dataVar, expr) {
- dataVar += '([^0-9])';
- expr = expr.replace(/\$/g, '$$$$');
- return str.replace(new RegExp(dataVar, 'g'), expr + '$1');
-}
-
-
-function schemaHasRules(schema, rules) {
- if (typeof schema == 'boolean') return !schema;
- for (var key in schema) if (rules[key]) return true;
-}
-
-
-function schemaHasRulesExcept(schema, rules, exceptKeyword) {
- if (typeof schema == 'boolean') return !schema && exceptKeyword != 'not';
- for (var key in schema) if (key != exceptKeyword && rules[key]) return true;
-}
-
-
-function schemaUnknownRules(schema, rules) {
- if (typeof schema == 'boolean') return;
- for (var key in schema) if (!rules[key]) return key;
-}
-
-
-function toQuotedString(str) {
- return '\'' + escapeQuotes(str) + '\'';
-}
-
-
-function getPathExpr(currentPath, expr, jsonPointers, isNumber) {
- var path = jsonPointers // false by default
- ? '\'/\' + ' + expr + (isNumber ? '' : '.replace(/~/g, \'~0\').replace(/\\//g, \'~1\')')
- : (isNumber ? '\'[\' + ' + expr + ' + \']\'' : '\'[\\\'\' + ' + expr + ' + \'\\\']\'');
- return joinPaths(currentPath, path);
-}
-
-
-function getPath(currentPath, prop, jsonPointers) {
- var path = jsonPointers // false by default
- ? toQuotedString('/' + escapeJsonPointer(prop))
- : toQuotedString(getProperty(prop));
- return joinPaths(currentPath, path);
-}
-
-
-var JSON_POINTER = /^\/(?:[^~]|~0|~1)*$/;
-var RELATIVE_JSON_POINTER = /^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;
-function getData($data, lvl, paths) {
- var up, jsonPointer, data, matches;
- if ($data === '') return 'rootData';
- if ($data[0] == '/') {
- if (!JSON_POINTER.test($data)) throw new Error('Invalid JSON-pointer: ' + $data);
- jsonPointer = $data;
- data = 'rootData';
- } else {
- matches = $data.match(RELATIVE_JSON_POINTER);
- if (!matches) throw new Error('Invalid JSON-pointer: ' + $data);
- up = +matches[1];
- jsonPointer = matches[2];
- if (jsonPointer == '#') {
- if (up >= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl);
- return paths[lvl - up];
- }
-
- if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl);
- data = 'data' + ((lvl - up) || '');
- if (!jsonPointer) return data;
- }
-
- var expr = data;
- var segments = jsonPointer.split('/');
- for (var i=0; i<segments.length; i++) {
- var segment = segments[i];
- if (segment) {
- data += getProperty(unescapeJsonPointer(segment));
- expr += ' && ' + data;
- }
- }
- return expr;
-}
-
-
-function joinPaths (a, b) {
- if (a == '""') return b;
- return (a + ' + ' + b).replace(/([^\\])' \+ '/g, '$1');
-}
-
-
-function unescapeFragment(str) {
- return unescapeJsonPointer(decodeURIComponent(str));
-}
-
-
-function escapeFragment(str) {
- return encodeURIComponent(escapeJsonPointer(str));
-}
-
-
-function escapeJsonPointer(str) {
- return str.replace(/~/g, '~0').replace(/\//g, '~1');
-}
-
-
-function unescapeJsonPointer(str) {
- return str.replace(/~1/g, '/').replace(/~0/g, '~');
-}
-
-},{"./ucs2length":9,"fast-deep-equal":42}],11:[function(require,module,exports){
-'use strict';
-
-var KEYWORDS = [
- 'multipleOf',
- 'maximum',
- 'exclusiveMaximum',
- 'minimum',
- 'exclusiveMinimum',
- 'maxLength',
- 'minLength',
- 'pattern',
- 'additionalItems',
- 'maxItems',
- 'minItems',
- 'uniqueItems',
- 'maxProperties',
- 'minProperties',
- 'required',
- 'additionalProperties',
- 'enum',
- 'format',
- 'const'
-];
-
-module.exports = function (metaSchema, keywordsJsonPointers) {
- for (var i=0; i<keywordsJsonPointers.length; i++) {
- metaSchema = JSON.parse(JSON.stringify(metaSchema));
- var segments = keywordsJsonPointers[i].split('/');
- var keywords = metaSchema;
- var j;
- for (j=1; j<segments.length; j++)
- keywords = keywords[segments[j]];
-
- for (j=0; j<KEYWORDS.length; j++) {
- var key = KEYWORDS[j];
- var schema = keywords[key];
- if (schema) {
- keywords[key] = {
- anyOf: [
- schema,
- { $ref: 'https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#' }
- ]
- };
- }
- }
- }
-
- return metaSchema;
-};
-
-},{}],12:[function(require,module,exports){
-'use strict';
-
-var metaSchema = require('./refs/json-schema-draft-07.json');
-
-module.exports = {
- $id: 'https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js',
- definitions: {
- simpleTypes: metaSchema.definitions.simpleTypes
- },
- type: 'object',
- dependencies: {
- schema: ['validate'],
- $data: ['validate'],
- statements: ['inline'],
- valid: {not: {required: ['macro']}}
- },
- properties: {
- type: metaSchema.properties.type,
- schema: {type: 'boolean'},
- statements: {type: 'boolean'},
- dependencies: {
- type: 'array',
- items: {type: 'string'}
- },
- metaSchema: {type: 'object'},
- modifying: {type: 'boolean'},
- valid: {type: 'boolean'},
- $data: {type: 'boolean'},
- async: {type: 'boolean'},
- errors: {
- anyOf: [
- {type: 'boolean'},
- {const: 'full'}
- ]
- }
- }
-};
-
-},{"./refs/json-schema-draft-07.json":41}],13:[function(require,module,exports){
-'use strict';
-module.exports = function generate__limit(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $errorKeyword;
- var $data = 'data' + ($dataLvl || '');
- var $isData = it.opts.$data && $schema && $schema.$data,
- $schemaValue;
- if ($isData) {
- out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
- $schemaValue = 'schema' + $lvl;
- } else {
- $schemaValue = $schema;
- }
- var $isMax = $keyword == 'maximum',
- $exclusiveKeyword = $isMax ? 'exclusiveMaximum' : 'exclusiveMinimum',
- $schemaExcl = it.schema[$exclusiveKeyword],
- $isDataExcl = it.opts.$data && $schemaExcl && $schemaExcl.$data,
- $op = $isMax ? '<' : '>',
- $notOp = $isMax ? '>' : '<',
- $errorKeyword = undefined;
- if (!($isData || typeof $schema == 'number' || $schema === undefined)) {
- throw new Error($keyword + ' must be number');
- }
- if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) {
- throw new Error($exclusiveKeyword + ' must be number or boolean');
- }
- if ($isDataExcl) {
- var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),
- $exclusive = 'exclusive' + $lvl,
- $exclType = 'exclType' + $lvl,
- $exclIsNumber = 'exclIsNumber' + $lvl,
- $opExpr = 'op' + $lvl,
- $opStr = '\' + ' + $opExpr + ' + \'';
- out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; ';
- $schemaValueExcl = 'schemaExcl' + $lvl;
- out += ' var ' + ($exclusive) + '; var ' + ($exclType) + ' = typeof ' + ($schemaValueExcl) + '; if (' + ($exclType) + ' != \'boolean\' && ' + ($exclType) + ' != \'undefined\' && ' + ($exclType) + ' != \'number\') { ';
- var $errorKeyword = $exclusiveKeyword;
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ($errorKeyword || '_exclusiveLimit') + '\' , 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 += ' } else if ( ';
- if ($isData) {
- out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || ';
- }
- out += ' ' + ($exclType) + ' == \'number\' ? ( (' + ($exclusive) + ' = ' + ($schemaValue) + ' === undefined || ' + ($schemaValueExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ') ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValueExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) : ( (' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \'' + ($op) + '\' : \'' + ($op) + '=\'; ';
- if ($schema === undefined) {
- $errorKeyword = $exclusiveKeyword;
- $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;
- $schemaValue = $schemaValueExcl;
- $isData = $isDataExcl;
- }
- } else {
- var $exclIsNumber = typeof $schemaExcl == 'number',
- $opStr = $op;
- if ($exclIsNumber && $isData) {
- var $opExpr = '\'' + $opStr + '\'';
- out += ' if ( ';
- if ($isData) {
- out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || ';
- }
- out += ' ( ' + ($schemaValue) + ' === undefined || ' + ($schemaExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ' ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { ';
- } else {
- if ($exclIsNumber && $schema === undefined) {
- $exclusive = true;
- $errorKeyword = $exclusiveKeyword;
- $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;
- $schemaValue = $schemaExcl;
- $notOp += '=';
- } else {
- if ($exclIsNumber) $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema);
- if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) {
- $exclusive = true;
- $errorKeyword = $exclusiveKeyword;
- $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;
- $notOp += '=';
- } else {
- $exclusive = false;
- $opStr += '=';
- }
- }
- var $opExpr = '\'' + $opStr + '\'';
- out += ' if ( ';
- if ($isData) {
- out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || ';
- }
- out += ' ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') { ';
- }
- }
- $errorKeyword = $errorKeyword || $keyword;
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ($errorKeyword || '_limit') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should be ' + ($opStr) + ' ';
- if ($isData) {
- out += '\' + ' + ($schemaValue);
- } else {
- out += '' + ($schemaValue) + '\'';
- }
- }
- if (it.opts.verbose) {
- out += ' , schema: ';
- if ($isData) {
- out += 'validate.schema' + ($schemaPath);
- } else {
- out += '' + ($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 += ' } ';
- if ($breakOnError) {
- out += ' else { ';
- }
- return out;
-}
-
-},{}],14:[function(require,module,exports){
-'use strict';
-module.exports = function generate__limitItems(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $errorKeyword;
- var $data = 'data' + ($dataLvl || '');
- var $isData = it.opts.$data && $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 (!($isData || typeof $schema == 'number')) {
- throw new Error($keyword + ' must be number');
- }
- var $op = $keyword == 'maxItems' ? '>' : '<';
- out += 'if ( ';
- if ($isData) {
- out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || ';
- }
- out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { ';
- var $errorKeyword = $keyword;
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ($errorKeyword || '_limitItems') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should NOT have ';
- if ($keyword == 'maxItems') {
- out += 'more';
- } else {
- out += 'fewer';
- }
- out += ' than ';
- if ($isData) {
- out += '\' + ' + ($schemaValue) + ' + \'';
- } else {
- out += '' + ($schema);
- }
- out += ' items\' ';
- }
- if (it.opts.verbose) {
- out += ' , schema: ';
- if ($isData) {
- out += 'validate.schema' + ($schemaPath);
- } else {
- out += '' + ($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 += '} ';
- if ($breakOnError) {
- out += ' else { ';
- }
- return out;
-}
-
-},{}],15:[function(require,module,exports){
-'use strict';
-module.exports = function generate__limitLength(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $errorKeyword;
- var $data = 'data' + ($dataLvl || '');
- var $isData = it.opts.$data && $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 (!($isData || typeof $schema == 'number')) {
- throw new Error($keyword + ' must be number');
- }
- var $op = $keyword == 'maxLength' ? '>' : '<';
- out += 'if ( ';
- if ($isData) {
- out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || ';
- }
- if (it.opts.unicode === false) {
- out += ' ' + ($data) + '.length ';
- } else {
- out += ' ucs2length(' + ($data) + ') ';
- }
- out += ' ' + ($op) + ' ' + ($schemaValue) + ') { ';
- var $errorKeyword = $keyword;
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ($errorKeyword || '_limitLength') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should NOT be ';
- if ($keyword == 'maxLength') {
- out += 'longer';
- } else {
- out += 'shorter';
- }
- out += ' than ';
- if ($isData) {
- out += '\' + ' + ($schemaValue) + ' + \'';
- } else {
- out += '' + ($schema);
- }
- out += ' characters\' ';
- }
- if (it.opts.verbose) {
- out += ' , schema: ';
- if ($isData) {
- out += 'validate.schema' + ($schemaPath);
- } else {
- out += '' + ($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 += '} ';
- if ($breakOnError) {
- out += ' else { ';
- }
- return out;
-}
-
-},{}],16:[function(require,module,exports){
-'use strict';
-module.exports = function generate__limitProperties(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $errorKeyword;
- var $data = 'data' + ($dataLvl || '');
- var $isData = it.opts.$data && $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 (!($isData || typeof $schema == 'number')) {
- throw new Error($keyword + ' must be number');
- }
- var $op = $keyword == 'maxProperties' ? '>' : '<';
- out += 'if ( ';
- if ($isData) {
- out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || ';
- }
- out += ' Object.keys(' + ($data) + ').length ' + ($op) + ' ' + ($schemaValue) + ') { ';
- var $errorKeyword = $keyword;
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ($errorKeyword || '_limitProperties') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should NOT have ';
- if ($keyword == 'maxProperties') {
- out += 'more';
- } else {
- out += 'fewer';
- }
- out += ' than ';
- if ($isData) {
- out += '\' + ' + ($schemaValue) + ' + \'';
- } else {
- out += '' + ($schema);
- }
- out += ' properties\' ';
- }
- if (it.opts.verbose) {
- out += ' , schema: ';
- if ($isData) {
- out += 'validate.schema' + ($schemaPath);
- } else {
- out += '' + ($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 += '} ';
- if ($breakOnError) {
- out += ' else { ';
- }
- return out;
-}
-
-},{}],17:[function(require,module,exports){
-'use strict';
-module.exports = function generate_allOf(it, $keyword, $ruleType) {
- var out = ' ';
- var $schema = it.schema[$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 $nextValid = 'valid' + $it.level;
- var $currentBaseId = $it.baseId,
- $allSchemasEmpty = true;
- var arr1 = $schema;
- if (arr1) {
- var $sch, $i = -1,
- l1 = arr1.length - 1;
- while ($i < l1) {
- $sch = arr1[$i += 1];
- if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : 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 (' + ($nextValid) + ') { ';
- $closingBraces += '}';
- }
- }
- }
- }
- if ($breakOnError) {
- if ($allSchemasEmpty) {
- out += ' if (true) { ';
- } else {
- out += ' ' + ($closingBraces.slice(0, -1)) + ' ';
- }
- }
- return out;
-}
-
-},{}],18:[function(require,module,exports){
-'use strict';
-module.exports = function generate_anyOf(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- 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 $noEmptySchema = $schema.every(function($sch) {
- return (it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all));
- });
- if ($noEmptySchema) {
- var $currentBaseId = $it.baseId;
- out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = false; ';
- var $wasComposite = it.compositeRule;
- it.compositeRule = $it.compositeRule = true;
- var arr1 = $schema;
- if (arr1) {
- var $sch, $i = -1,
- l1 = arr1.length - 1;
- while ($i < l1) {
- $sch = arr1[$i += 1];
- $it.schema = $sch;
- $it.schemaPath = $schemaPath + '[' + $i + ']';
- $it.errSchemaPath = $errSchemaPath + '/' + $i;
- out += ' ' + (it.validate($it)) + ' ';
- $it.baseId = $currentBaseId;
- out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { ';
- $closingBraces += '}';
- }
- }
- it.compositeRule = $it.compositeRule = $wasComposite;
- out += ' ' + ($closingBraces) + ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('anyOf') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should match some schema in anyOf\' ';
- }
- 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 (!it.compositeRule && $breakOnError) {
- /* istanbul ignore if */
- if (it.async) {
- out += ' throw new ValidationError(vErrors); ';
- } else {
- out += ' validate.errors = vErrors; return false; ';
- }
- }
- out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';
- if (it.opts.allErrors) {
- out += ' } ';
- }
- } else {
- if ($breakOnError) {
- out += ' if (true) { ';
- }
- }
- return out;
-}
-
-},{}],19:[function(require,module,exports){
-'use strict';
-module.exports = function generate_comment(it, $keyword, $ruleType) {
- var out = ' ';
- var $schema = it.schema[$keyword];
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $comment = it.util.toQuotedString($schema);
- if (it.opts.$comment === true) {
- out += ' console.log(' + ($comment) + ');';
- } else if (typeof it.opts.$comment == 'function') {
- out += ' self._opts.$comment(' + ($comment) + ', ' + (it.util.toQuotedString($errSchemaPath)) + ', validate.root.schema);';
- }
- return out;
-}
-
-},{}],20:[function(require,module,exports){
-'use strict';
-module.exports = function generate_const(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $data = 'data' + ($dataLvl || '');
- var $valid = 'valid' + $lvl;
- var $isData = it.opts.$data && $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 (!$isData) {
- out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';';
- }
- out += 'var ' + ($valid) + ' = equal(' + ($data) + ', schema' + ($lvl) + '); if (!' + ($valid) + ') { ';
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('const') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValue: schema' + ($lvl) + ' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should be equal to constant\' ';
- }
- 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) {
- out += ' else { ';
- }
- return out;
-}
-
-},{}],21:[function(require,module,exports){
-'use strict';
-module.exports = function generate_contains(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- 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 $idx = 'i' + $lvl,
- $dataNxt = $it.dataLevel = it.dataLevel + 1,
- $nextData = 'data' + $dataNxt,
- $currentBaseId = it.baseId,
- $nonEmptySchema = (it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all));
- out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';
- if ($nonEmptySchema) {
- var $wasComposite = it.compositeRule;
- it.compositeRule = $it.compositeRule = true;
- $it.schema = $schema;
- $it.schemaPath = $schemaPath;
- $it.errSchemaPath = $errSchemaPath;
- out += ' var ' + ($nextValid) + ' = false; 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) {
- out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';
- } else {
- out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
- }
- out += ' if (' + ($nextValid) + ') break; } ';
- it.compositeRule = $it.compositeRule = $wasComposite;
- out += ' ' + ($closingBraces) + ' if (!' + ($nextValid) + ') {';
- } else {
- out += ' if (' + ($data) + '.length == 0) {';
- }
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('contains') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should contain a valid item\' ';
- }
- 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 += ' } else { ';
- if ($nonEmptySchema) {
- out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';
- }
- if (it.opts.allErrors) {
- out += ' } ';
- }
- return out;
-}
-
-},{}],22:[function(require,module,exports){
-'use strict';
-module.exports = function generate_custom(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($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 $isData = it.opts.$data && $schema && $schema.$data,
- $schemaValue;
- if ($isData) {
- out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
- $schemaValue = 'schema' + $lvl;
- } else {
- $schemaValue = $schema;
- }
- var $rule = this,
- $definition = 'definition' + $lvl,
- $rDef = $rule.definition,
- $closingBraces = '';
- var $compile, $inline, $macro, $ruleValidate, $validateCode;
- if ($isData && $rDef.$data) {
- $validateCode = 'keywordValidate' + $lvl;
- var $validateSchema = $rDef.validateSchema;
- out += ' var ' + ($definition) + ' = RULES.custom[\'' + ($keyword) + '\'].definition; var ' + ($validateCode) + ' = ' + ($definition) + '.validate;';
- } else {
- $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it);
- if (!$ruleValidate) return;
- $schemaValue = 'validate.schema' + $schemaPath;
- $validateCode = $ruleValidate.code;
- $compile = $rDef.compile;
- $inline = $rDef.inline;
- $macro = $rDef.macro;
- }
- var $ruleErrs = $validateCode + '.errors',
- $i = 'i' + $lvl,
- $ruleErr = 'ruleErr' + $lvl,
- $asyncKeyword = $rDef.async;
- if ($asyncKeyword && !it.async) throw new Error('async keyword in sync schema');
- if (!($inline || $macro)) {
- out += '' + ($ruleErrs) + ' = null;';
- }
- out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';
- if ($isData && $rDef.$data) {
- $closingBraces += '}';
- out += ' if (' + ($schemaValue) + ' === undefined) { ' + ($valid) + ' = true; } else { ';
- if ($validateSchema) {
- $closingBraces += '}';
- out += ' ' + ($valid) + ' = ' + ($definition) + '.validateSchema(' + ($schemaValue) + '); if (' + ($valid) + ') { ';
- }
- }
- if ($inline) {
- if ($rDef.statements) {
- out += ' ' + ($ruleValidate.validate) + ' ';
- } else {
- out += ' ' + ($valid) + ' = ' + ($ruleValidate.validate) + '; ';
- }
- } else if ($macro) {
- var $it = it.util.copy(it);
- var $closingBraces = '';
- $it.level++;
- var $nextValid = 'valid' + $it.level;
- $it.schema = $ruleValidate.validate;
- $it.schemaPath = '';
- var $wasComposite = it.compositeRule;
- it.compositeRule = $it.compositeRule = true;
- var $code = it.validate($it).replace(/validate\.schema/g, $validateCode);
- it.compositeRule = $it.compositeRule = $wasComposite;
- out += ' ' + ($code);
- } else {
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = '';
- out += ' ' + ($validateCode) + '.call( ';
- if (it.opts.passContext) {
- out += 'this';
- } else {
- out += 'self';
- }
- if ($compile || $rDef.schema === false) {
- out += ' , ' + ($data) + ' ';
- } else {
- out += ' , ' + ($schemaValue) + ' , ' + ($data) + ' , validate.schema' + (it.schemaPath) + ' ';
- }
- out += ' , (dataPath || \'\')';
- if (it.errorPath != '""') {
- out += ' + ' + (it.errorPath);
- }
- var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',
- $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';
- out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ' , rootData ) ';
- var def_callRuleValidate = out;
- out = $$outStack.pop();
- if ($rDef.errors === false) {
- out += ' ' + ($valid) + ' = ';
- if ($asyncKeyword) {
- out += 'await ';
- }
- out += '' + (def_callRuleValidate) + '; ';
- } else {
- if ($asyncKeyword) {
- $ruleErrs = 'customErrors' + $lvl;
- out += ' var ' + ($ruleErrs) + ' = null; try { ' + ($valid) + ' = await ' + (def_callRuleValidate) + '; } catch (e) { ' + ($valid) + ' = false; if (e instanceof ValidationError) ' + ($ruleErrs) + ' = e.errors; else throw e; } ';
- } else {
- out += ' ' + ($ruleErrs) + ' = null; ' + ($valid) + ' = ' + (def_callRuleValidate) + '; ';
- }
- }
- }
- if ($rDef.modifying) {
- out += ' if (' + ($parentData) + ') ' + ($data) + ' = ' + ($parentData) + '[' + ($parentDataProperty) + '];';
- }
- out += '' + ($closingBraces);
- if ($rDef.valid) {
- if ($breakOnError) {
- out += ' if (true) { ';
- }
- } else {
- out += ' if ( ';
- if ($rDef.valid === undefined) {
- out += ' !';
- if ($macro) {
- out += '' + ($nextValid);
- } else {
- out += '' + ($valid);
- }
- } else {
- out += ' ' + (!$rDef.valid) + ' ';
- }
- out += ') { ';
- $errorKeyword = $rule.keyword;
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = '';
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ($errorKeyword || 'custom') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \'' + ($rule.keyword) + '\' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should pass "' + ($rule.keyword) + '" 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++; ';
- }
- var def_customError = out;
- out = $$outStack.pop();
- if ($inline) {
- if ($rDef.errors) {
- if ($rDef.errors != 'full') {
- out += ' for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \'\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = "' + ($errSchemaPath) + '"; } ';
- if (it.opts.verbose) {
- out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';
- }
- out += ' } ';
- }
- } else {
- if ($rDef.errors === false) {
- out += ' ' + (def_customError) + ' ';
- } else {
- out += ' if (' + ($errs) + ' == errors) { ' + (def_customError) + ' } else { for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \'\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = "' + ($errSchemaPath) + '"; } ';
- if (it.opts.verbose) {
- out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';
- }
- out += ' } } ';
- }
- }
- } else if ($macro) {
- out += ' var err = '; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ($errorKeyword || 'custom') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \'' + ($rule.keyword) + '\' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should pass "' + ($rule.keyword) + '" keyword validation\' ';
- }
- 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 (!it.compositeRule && $breakOnError) {
- /* istanbul ignore if */
- if (it.async) {
- out += ' throw new ValidationError(vErrors); ';
- } else {
- out += ' validate.errors = vErrors; return false; ';
- }
- }
- } else {
- if ($rDef.errors === false) {
- out += ' ' + (def_customError) + ' ';
- } else {
- out += ' if (Array.isArray(' + ($ruleErrs) + ')) { if (vErrors === null) vErrors = ' + ($ruleErrs) + '; else vErrors = vErrors.concat(' + ($ruleErrs) + '); errors = vErrors.length; for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \'\') + ' + (it.errorPath) + '; ' + ($ruleErr) + '.schemaPath = "' + ($errSchemaPath) + '"; ';
- if (it.opts.verbose) {
- out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';
- }
- out += ' } } else { ' + (def_customError) + ' } ';
- }
- }
- out += ' } ';
- if ($breakOnError) {
- out += ' else { ';
- }
- }
- return out;
-}
-
-},{}],23:[function(require,module,exports){
-'use strict';
-module.exports = function generate_dependencies(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $data = 'data' + ($dataLvl || '');
- var $errs = 'errs__' + $lvl;
- var $it = it.util.copy(it);
- var $closingBraces = '';
- $it.level++;
- var $nextValid = 'valid' + $it.level;
- var $schemaDeps = {},
- $propertyDeps = {},
- $ownProperties = it.opts.ownProperties;
- for ($property in $schema) {
- if ($property == '__proto__') continue;
- var $sch = $schema[$property];
- var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps;
- $deps[$property] = $sch;
- }
- out += 'var ' + ($errs) + ' = errors;';
- var $currentErrorPath = it.errorPath;
- out += 'var missing' + ($lvl) + ';';
- for (var $property in $propertyDeps) {
- $deps = $propertyDeps[$property];
- if ($deps.length) {
- out += ' if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';
- if ($ownProperties) {
- out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($property)) + '\') ';
- }
- if ($breakOnError) {
- out += ' && ( ';
- var arr1 = $deps;
- if (arr1) {
- var $propertyKey, $i = -1,
- l1 = arr1.length - 1;
- while ($i < l1) {
- $propertyKey = arr1[$i += 1];
- if ($i) {
- out += ' || ';
- }
- var $prop = it.util.getProperty($propertyKey),
- $useData = $data + $prop;
- out += ' ( ( ' + ($useData) + ' === undefined ';
- if ($ownProperties) {
- out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') ';
- }
- out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';
- }
- }
- out += ')) { ';
- var $propertyPath = 'missing' + $lvl,
- $missingProperty = '\' + ' + $propertyPath + ' + \'';
- if (it.opts._errorDataPathProperty) {
- it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;
- }
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('dependencies') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \'' + (it.util.escapeQuotes($property)) + '\', missingProperty: \'' + ($missingProperty) + '\', depsCount: ' + ($deps.length) + ', deps: \'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(", "))) + '\' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should have ';
- if ($deps.length == 1) {
- out += 'property ' + (it.util.escapeQuotes($deps[0]));
- } else {
- out += 'properties ' + (it.util.escapeQuotes($deps.join(", ")));
- }
- out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\' ';
- }
- 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++; ';
- }
- } else {
- out += ' ) { ';
- var arr2 = $deps;
- if (arr2) {
- var $propertyKey, i2 = -1,
- l2 = arr2.length - 1;
- while (i2 < l2) {
- $propertyKey = arr2[i2 += 1];
- var $prop = it.util.getProperty($propertyKey),
- $missingProperty = it.util.escapeQuotes($propertyKey),
- $useData = $data + $prop;
- if (it.opts._errorDataPathProperty) {
- it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);
- }
- out += ' if ( ' + ($useData) + ' === undefined ';
- if ($ownProperties) {
- out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') ';
- }
- out += ') { var err = '; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('dependencies') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \'' + (it.util.escapeQuotes($property)) + '\', missingProperty: \'' + ($missingProperty) + '\', depsCount: ' + ($deps.length) + ', deps: \'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(", "))) + '\' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should have ';
- if ($deps.length == 1) {
- out += 'property ' + (it.util.escapeQuotes($deps[0]));
- } else {
- out += 'properties ' + (it.util.escapeQuotes($deps.join(", ")));
- }
- out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\' ';
- }
- 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++; } ';
- }
- }
- }
- out += ' } ';
- if ($breakOnError) {
- $closingBraces += '}';
- out += ' else { ';
- }
- }
- }
- it.errorPath = $currentErrorPath;
- var $currentBaseId = $it.baseId;
- for (var $property in $schemaDeps) {
- var $sch = $schemaDeps[$property];
- if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {
- out += ' ' + ($nextValid) + ' = true; if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';
- if ($ownProperties) {
- out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($property)) + '\') ';
- }
- out += ') { ';
- $it.schema = $sch;
- $it.schemaPath = $schemaPath + it.util.getProperty($property);
- $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property);
- out += ' ' + (it.validate($it)) + ' ';
- $it.baseId = $currentBaseId;
- out += ' } ';
- if ($breakOnError) {
- out += ' if (' + ($nextValid) + ') { ';
- $closingBraces += '}';
- }
- }
- }
- if ($breakOnError) {
- out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';
- }
- return out;
-}
-
-},{}],24:[function(require,module,exports){
-'use strict';
-module.exports = function generate_enum(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $data = 'data' + ($dataLvl || '');
- var $valid = 'valid' + $lvl;
- var $isData = it.opts.$data && $schema && $schema.$data,
- $schemaValue;
- if ($isData) {
- out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
- $schemaValue = 'schema' + $lvl;
- } else {
- $schemaValue = $schema;
- }
- var $i = 'i' + $lvl,
- $vSchema = 'schema' + $lvl;
- if (!$isData) {
- 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) + '<' + ($vSchema) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }';
- if ($isData) {
- out += ' } ';
- }
- out += ' if (!' + ($valid) + ') { ';
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('enum') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValues: schema' + ($lvl) + ' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should be equal to one of the allowed values\' ';
- }
- 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) {
- out += ' else { ';
- }
- return out;
-}
-
-},{}],25:[function(require,module,exports){
-'use strict';
-module.exports = function generate_format(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $data = 'data' + ($dataLvl || '');
- if (it.opts.format === false) {
- if ($breakOnError) {
- out += ' if (true) { ';
- }
- return out;
- }
- var $isData = it.opts.$data && $schema && $schema.$data,
- $schemaValue;
- if ($isData) {
- out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
- $schemaValue = 'schema' + $lvl;
- } else {
- $schemaValue = $schema;
- }
- var $unknownFormats = it.opts.unknownFormats,
- $allowUnknown = Array.isArray($unknownFormats);
- if ($isData) {
- var $format = 'format' + $lvl,
- $isObject = 'isObject' + $lvl,
- $formatType = 'formatType' + $lvl;
- out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var ' + ($isObject) + ' = typeof ' + ($format) + ' == \'object\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; var ' + ($formatType) + ' = ' + ($isObject) + ' && ' + ($format) + '.type || \'string\'; if (' + ($isObject) + ') { ';
- 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 != 'ignore') {
- out += ' (' + ($schemaValue) + ' && !' + ($format) + ' ';
- if ($allowUnknown) {
- out += ' && self._opts.unknownFormats.indexOf(' + ($schemaValue) + ') == -1 ';
- }
- out += ') || ';
- }
- out += ' (' + ($format) + ' && ' + ($formatType) + ' == \'' + ($ruleType) + '\' && !(typeof ' + ($format) + ' == \'function\' ? ';
- if (it.async) {
- out += ' (async' + ($lvl) + ' ? await ' + ($format) + '(' + ($data) + ') : ' + ($format) + '(' + ($data) + ')) ';
- } else {
- out += ' ' + ($format) + '(' + ($data) + ') ';
- }
- out += ' : ' + ($format) + '.test(' + ($data) + '))))) {';
- } else {
- var $format = it.formats[$schema];
- if (!$format) {
- if ($unknownFormats == 'ignore') {
- it.logger.warn('unknown format "' + $schema + '" ignored in schema at path "' + it.errSchemaPath + '"');
- if ($breakOnError) {
- out += ' if (true) { ';
- }
- return out;
- } else if ($allowUnknown && $unknownFormats.indexOf($schema) >= 0) {
- if ($breakOnError) {
- out += ' if (true) { ';
- }
- return out;
- } else {
- throw new Error('unknown format "' + $schema + '" is used in schema at path "' + it.errSchemaPath + '"');
- }
- }
- var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate;
- var $formatType = $isObject && $format.type || 'string';
- if ($isObject) {
- var $async = $format.async === true;
- $format = $format.validate;
- }
- if ($formatType != $ruleType) {
- if ($breakOnError) {
- out += ' if (true) { ';
- }
- return out;
- }
- if ($async) {
- if (!it.async) throw new Error('async format in sync schema');
- var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate';
- out += ' if (!(await ' + ($formatRef) + '(' + ($data) + '))) { ';
- } else {
- out += ' if (! ';
- var $formatRef = 'formats' + it.util.getProperty($schema);
- if ($isObject) $formatRef += '.validate';
- if (typeof $format == 'function') {
- out += ' ' + ($formatRef) + '(' + ($data) + ') ';
- } else {
- out += ' ' + ($formatRef) + '.test(' + ($data) + ') ';
- }
- out += ') { ';
- }
- }
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('format') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { format: ';
- if ($isData) {
- out += '' + ($schemaValue);
- } else {
- out += '' + (it.util.toQuotedString($schema));
- }
- out += ' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should match format "';
- 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 += ' } ';
- if ($breakOnError) {
- out += ' else { ';
- }
- return out;
-}
-
-},{}],26:[function(require,module,exports){
-'use strict';
-module.exports = function generate_if(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $data = 'data' + ($dataLvl || '');
- var $valid = 'valid' + $lvl;
- var $errs = 'errs__' + $lvl;
- var $it = it.util.copy(it);
- $it.level++;
- var $nextValid = 'valid' + $it.level;
- var $thenSch = it.schema['then'],
- $elseSch = it.schema['else'],
- $thenPresent = $thenSch !== undefined && (it.opts.strictKeywords ? (typeof $thenSch == 'object' && Object.keys($thenSch).length > 0) || $thenSch === false : it.util.schemaHasRules($thenSch, it.RULES.all)),
- $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? (typeof $elseSch == 'object' && Object.keys($elseSch).length > 0) || $elseSch === false : it.util.schemaHasRules($elseSch, it.RULES.all)),
- $currentBaseId = $it.baseId;
- if ($thenPresent || $elsePresent) {
- var $ifClause;
- $it.createErrors = false;
- $it.schema = $schema;
- $it.schemaPath = $schemaPath;
- $it.errSchemaPath = $errSchemaPath;
- out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = true; ';
- var $wasComposite = it.compositeRule;
- it.compositeRule = $it.compositeRule = true;
- out += ' ' + (it.validate($it)) + ' ';
- $it.baseId = $currentBaseId;
- $it.createErrors = true;
- out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';
- it.compositeRule = $it.compositeRule = $wasComposite;
- if ($thenPresent) {
- out += ' if (' + ($nextValid) + ') { ';
- $it.schema = it.schema['then'];
- $it.schemaPath = it.schemaPath + '.then';
- $it.errSchemaPath = it.errSchemaPath + '/then';
- out += ' ' + (it.validate($it)) + ' ';
- $it.baseId = $currentBaseId;
- out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';
- if ($thenPresent && $elsePresent) {
- $ifClause = 'ifClause' + $lvl;
- out += ' var ' + ($ifClause) + ' = \'then\'; ';
- } else {
- $ifClause = '\'then\'';
- }
- out += ' } ';
- if ($elsePresent) {
- out += ' else { ';
- }
- } else {
- out += ' if (!' + ($nextValid) + ') { ';
- }
- if ($elsePresent) {
- $it.schema = it.schema['else'];
- $it.schemaPath = it.schemaPath + '.else';
- $it.errSchemaPath = it.errSchemaPath + '/else';
- out += ' ' + (it.validate($it)) + ' ';
- $it.baseId = $currentBaseId;
- out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';
- if ($thenPresent && $elsePresent) {
- $ifClause = 'ifClause' + $lvl;
- out += ' var ' + ($ifClause) + ' = \'else\'; ';
- } else {
- $ifClause = '\'else\'';
- }
- out += ' } ';
- }
- out += ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('if') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { failingKeyword: ' + ($ifClause) + ' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should match "\' + ' + ($ifClause) + ' + \'" schema\' ';
- }
- 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 (!it.compositeRule && $breakOnError) {
- /* istanbul ignore if */
- if (it.async) {
- out += ' throw new ValidationError(vErrors); ';
- } else {
- out += ' validate.errors = vErrors; return false; ';
- }
- }
- out += ' } ';
- if ($breakOnError) {
- out += ' else { ';
- }
- } else {
- if ($breakOnError) {
- out += ' if (true) { ';
- }
- }
- return out;
-}
-
-},{}],27:[function(require,module,exports){
-'use strict';
-
-//all requires must be explicit because browserify won't work with dynamic requires
-module.exports = {
- '$ref': require('./ref'),
- allOf: require('./allOf'),
- anyOf: require('./anyOf'),
- '$comment': require('./comment'),
- const: require('./const'),
- contains: require('./contains'),
- dependencies: require('./dependencies'),
- 'enum': require('./enum'),
- format: require('./format'),
- 'if': require('./if'),
- items: require('./items'),
- maximum: require('./_limit'),
- minimum: require('./_limit'),
- maxItems: require('./_limitItems'),
- minItems: require('./_limitItems'),
- maxLength: require('./_limitLength'),
- minLength: require('./_limitLength'),
- maxProperties: require('./_limitProperties'),
- minProperties: require('./_limitProperties'),
- multipleOf: require('./multipleOf'),
- not: require('./not'),
- oneOf: require('./oneOf'),
- pattern: require('./pattern'),
- properties: require('./properties'),
- propertyNames: require('./propertyNames'),
- required: require('./required'),
- uniqueItems: require('./uniqueItems'),
- validate: require('./validate')
-};
-
-},{"./_limit":13,"./_limitItems":14,"./_limitLength":15,"./_limitProperties":16,"./allOf":17,"./anyOf":18,"./comment":19,"./const":20,"./contains":21,"./dependencies":23,"./enum":24,"./format":25,"./if":26,"./items":28,"./multipleOf":29,"./not":30,"./oneOf":31,"./pattern":32,"./properties":33,"./propertyNames":34,"./ref":35,"./required":36,"./uniqueItems":37,"./validate":38}],28:[function(require,module,exports){
-'use strict';
-module.exports = function generate_items(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- 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 $idx = 'i' + $lvl,
- $dataNxt = $it.dataLevel = it.dataLevel + 1,
- $nextData = 'data' + $dataNxt,
- $currentBaseId = it.baseId;
- out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';
- if (Array.isArray($schema)) {
- var $additionalItems = it.schema.additionalItems;
- if ($additionalItems === false) {
- out += ' ' + ($valid) + ' = ' + ($data) + '.length <= ' + ($schema.length) + '; ';
- var $currErrSchemaPath = $errSchemaPath;
- $errSchemaPath = it.errSchemaPath + '/additionalItems';
- out += ' if (!' + ($valid) + ') { ';
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('additionalItems') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schema.length) + ' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should NOT have more than ' + ($schema.length) + ' items\' ';
- }
- if (it.opts.verbose) {
- out += ' , schema: false , 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 += ' } ';
- $errSchemaPath = $currErrSchemaPath;
- if ($breakOnError) {
- $closingBraces += '}';
- out += ' else { ';
- }
- }
- var arr1 = $schema;
- if (arr1) {
- var $sch, $i = -1,
- l1 = arr1.length - 1;
- while ($i < l1) {
- $sch = arr1[$i += 1];
- if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {
- out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { ';
- var $passData = $data + '[' + $i + ']';
- $it.schema = $sch;
- $it.schemaPath = $schemaPath + '[' + $i + ']';
- $it.errSchemaPath = $errSchemaPath + '/' + $i;
- $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true);
- $it.dataPathArr[$dataNxt] = $i;
- var $code = it.validate($it);
- $it.baseId = $currentBaseId;
- if (it.util.varOccurences($code, $nextData) < 2) {
- out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';
- } else {
- out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
- }
- out += ' } ';
- if ($breakOnError) {
- out += ' if (' + ($nextValid) + ') { ';
- $closingBraces += '}';
- }
- }
- }
- }
- if (typeof $additionalItems == 'object' && (it.opts.strictKeywords ? (typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0) || $additionalItems === false : it.util.schemaHasRules($additionalItems, it.RULES.all))) {
- $it.schema = $additionalItems;
- $it.schemaPath = it.schemaPath + '.additionalItems';
- $it.errSchemaPath = it.errSchemaPath + '/additionalItems';
- 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) {
- out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';
- } else {
- out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
- }
- if ($breakOnError) {
- out += ' if (!' + ($nextValid) + ') break; ';
- }
- out += ' } } ';
- if ($breakOnError) {
- out += ' if (' + ($nextValid) + ') { ';
- $closingBraces += '}';
- }
- }
- } else if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {
- $it.schema = $schema;
- $it.schemaPath = $schemaPath;
- $it.errSchemaPath = $errSchemaPath;
- 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) {
- out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';
- } else {
- out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
- }
- if ($breakOnError) {
- out += ' if (!' + ($nextValid) + ') break; ';
- }
- out += ' }';
- }
- if ($breakOnError) {
- out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';
- }
- return out;
-}
-
-},{}],29:[function(require,module,exports){
-'use strict';
-module.exports = function generate_multipleOf(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $data = 'data' + ($dataLvl || '');
- var $isData = it.opts.$data && $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 (!($isData || typeof $schema == 'number')) {
- throw new Error($keyword + ' must be number');
- }
- out += 'var division' + ($lvl) + ';if (';
- if ($isData) {
- out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \'number\' || ';
- }
- out += ' (division' + ($lvl) + ' = ' + ($data) + ' / ' + ($schemaValue) + ', ';
- if (it.opts.multipleOfPrecision) {
- out += ' Math.abs(Math.round(division' + ($lvl) + ') - division' + ($lvl) + ') > 1e-' + (it.opts.multipleOfPrecision) + ' ';
- } else {
- out += ' division' + ($lvl) + ' !== parseInt(division' + ($lvl) + ') ';
- }
- out += ' ) ';
- if ($isData) {
- out += ' ) ';
- }
- out += ' ) { ';
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('multipleOf') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { multipleOf: ' + ($schemaValue) + ' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should be multiple of ';
- if ($isData) {
- out += '\' + ' + ($schemaValue);
- } else {
- out += '' + ($schemaValue) + '\'';
- }
- }
- if (it.opts.verbose) {
- out += ' , schema: ';
- if ($isData) {
- out += 'validate.schema' + ($schemaPath);
- } else {
- out += '' + ($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 += '} ';
- if ($breakOnError) {
- out += ' else { ';
- }
- return out;
-}
-
-},{}],30:[function(require,module,exports){
-'use strict';
-module.exports = function generate_not(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $data = 'data' + ($dataLvl || '');
- var $errs = 'errs__' + $lvl;
- var $it = it.util.copy(it);
- $it.level++;
- var $nextValid = 'valid' + $it.level;
- if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {
- $it.schema = $schema;
- $it.schemaPath = $schemaPath;
- $it.errSchemaPath = $errSchemaPath;
- out += ' var ' + ($errs) + ' = errors; ';
- var $wasComposite = it.compositeRule;
- it.compositeRule = $it.compositeRule = true;
- $it.createErrors = false;
- var $allErrorsOption;
- if ($it.opts.allErrors) {
- $allErrorsOption = $it.opts.allErrors;
- $it.opts.allErrors = false;
- }
- out += ' ' + (it.validate($it)) + ' ';
- $it.createErrors = true;
- if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;
- it.compositeRule = $it.compositeRule = $wasComposite;
- out += ' if (' + ($nextValid) + ') { ';
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('not') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should NOT be valid\' ';
- }
- 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 += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';
- if (it.opts.allErrors) {
- out += ' } ';
- }
- } else {
- out += ' var err = '; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('not') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should NOT be valid\' ';
- }
- 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) {
- out += ' if (false) { ';
- }
- }
- return out;
-}
-
-},{}],31:[function(require,module,exports){
-'use strict';
-module.exports = function generate_oneOf(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- 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 $currentBaseId = $it.baseId,
- $prevValid = 'prevValid' + $lvl,
- $passingSchemas = 'passingSchemas' + $lvl;
- out += 'var ' + ($errs) + ' = errors , ' + ($prevValid) + ' = false , ' + ($valid) + ' = false , ' + ($passingSchemas) + ' = null; ';
- var $wasComposite = it.compositeRule;
- it.compositeRule = $it.compositeRule = true;
- var arr1 = $schema;
- if (arr1) {
- var $sch, $i = -1,
- l1 = arr1.length - 1;
- while ($i < l1) {
- $sch = arr1[$i += 1];
- if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {
- $it.schema = $sch;
- $it.schemaPath = $schemaPath + '[' + $i + ']';
- $it.errSchemaPath = $errSchemaPath + '/' + $i;
- out += ' ' + (it.validate($it)) + ' ';
- $it.baseId = $currentBaseId;
- } else {
- out += ' var ' + ($nextValid) + ' = true; ';
- }
- if ($i) {
- out += ' if (' + ($nextValid) + ' && ' + ($prevValid) + ') { ' + ($valid) + ' = false; ' + ($passingSchemas) + ' = [' + ($passingSchemas) + ', ' + ($i) + ']; } else { ';
- $closingBraces += '}';
- }
- out += ' if (' + ($nextValid) + ') { ' + ($valid) + ' = ' + ($prevValid) + ' = true; ' + ($passingSchemas) + ' = ' + ($i) + '; }';
- }
- }
- it.compositeRule = $it.compositeRule = $wasComposite;
- out += '' + ($closingBraces) + 'if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('oneOf') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { passingSchemas: ' + ($passingSchemas) + ' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should match exactly one schema in oneOf\' ';
- }
- 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 (!it.compositeRule && $breakOnError) {
- /* istanbul ignore if */
- if (it.async) {
- out += ' throw new ValidationError(vErrors); ';
- } else {
- out += ' validate.errors = vErrors; return false; ';
- }
- }
- out += '} else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; }';
- if (it.opts.allErrors) {
- out += ' } ';
- }
- return out;
-}
-
-},{}],32:[function(require,module,exports){
-'use strict';
-module.exports = function generate_pattern(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $data = 'data' + ($dataLvl || '');
- var $isData = it.opts.$data && $schema && $schema.$data,
- $schemaValue;
- if ($isData) {
- out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
- $schemaValue = 'schema' + $lvl;
- } else {
- $schemaValue = $schema;
- }
- var $regexp = $isData ? '(new RegExp(' + $schemaValue + '))' : it.usePattern($schema);
- out += 'if ( ';
- if ($isData) {
- out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'string\') || ';
- }
- out += ' !' + ($regexp) + '.test(' + ($data) + ') ) { ';
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('pattern') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { pattern: ';
- if ($isData) {
- out += '' + ($schemaValue);
- } else {
- out += '' + (it.util.toQuotedString($schema));
- }
- out += ' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should match pattern "';
- 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 += '} ';
- if ($breakOnError) {
- out += ' else { ';
- }
- return out;
-}
-
-},{}],33:[function(require,module,exports){
-'use strict';
-module.exports = function generate_properties(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $data = 'data' + ($dataLvl || '');
- var $errs = 'errs__' + $lvl;
- var $it = it.util.copy(it);
- var $closingBraces = '';
- $it.level++;
- var $nextValid = 'valid' + $it.level;
- var $key = 'key' + $lvl,
- $idx = 'idx' + $lvl,
- $dataNxt = $it.dataLevel = it.dataLevel + 1,
- $nextData = 'data' + $dataNxt,
- $dataProperties = 'dataProperties' + $lvl;
- var $schemaKeys = Object.keys($schema || {}).filter(notProto),
- $pProperties = it.schema.patternProperties || {},
- $pPropertyKeys = Object.keys($pProperties).filter(notProto),
- $aProperties = it.schema.additionalProperties,
- $someProperties = $schemaKeys.length || $pPropertyKeys.length,
- $noAdditional = $aProperties === false,
- $additionalIsSchema = typeof $aProperties == 'object' && Object.keys($aProperties).length,
- $removeAdditional = it.opts.removeAdditional,
- $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional,
- $ownProperties = it.opts.ownProperties,
- $currentBaseId = it.baseId;
- var $required = it.schema.required;
- if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) {
- var $requiredHash = it.util.toHash($required);
- }
-
- function notProto(p) {
- return p !== '__proto__';
- }
- out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;';
- if ($ownProperties) {
- out += ' var ' + ($dataProperties) + ' = undefined;';
- }
- if ($checkAdditional) {
- if ($ownProperties) {
- out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';
- } else {
- out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';
- }
- if ($someProperties) {
- out += ' var isAdditional' + ($lvl) + ' = !(false ';
- if ($schemaKeys.length) {
- if ($schemaKeys.length > 8) {
- out += ' || validate.schema' + ($schemaPath) + '.hasOwnProperty(' + ($key) + ') ';
- } else {
- var arr1 = $schemaKeys;
- if (arr1) {
- var $propertyKey, i1 = -1,
- l1 = arr1.length - 1;
- while (i1 < l1) {
- $propertyKey = arr1[i1 += 1];
- out += ' || ' + ($key) + ' == ' + (it.util.toQuotedString($propertyKey)) + ' ';
- }
- }
- }
- }
- if ($pPropertyKeys.length) {
- var arr2 = $pPropertyKeys;
- if (arr2) {
- var $pProperty, $i = -1,
- l2 = arr2.length - 1;
- while ($i < l2) {
- $pProperty = arr2[$i += 1];
- out += ' || ' + (it.usePattern($pProperty)) + '.test(' + ($key) + ') ';
- }
- }
- }
- out += ' ); if (isAdditional' + ($lvl) + ') { ';
- }
- if ($removeAdditional == 'all') {
- out += ' delete ' + ($data) + '[' + ($key) + ']; ';
- } else {
- var $currentErrorPath = it.errorPath;
- var $additionalProperty = '\' + ' + $key + ' + \'';
- if (it.opts._errorDataPathProperty) {
- it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
- }
- if ($noAdditional) {
- if ($removeAdditional) {
- out += ' delete ' + ($data) + '[' + ($key) + ']; ';
- } else {
- out += ' ' + ($nextValid) + ' = false; ';
- var $currErrSchemaPath = $errSchemaPath;
- $errSchemaPath = it.errSchemaPath + '/additionalProperties';
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('additionalProperties') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { additionalProperty: \'' + ($additionalProperty) + '\' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'';
- if (it.opts._errorDataPathProperty) {
- out += 'is an invalid additional property';
- } else {
- out += 'should NOT have additional properties';
- }
- out += '\' ';
- }
- if (it.opts.verbose) {
- out += ' , schema: false , 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++; ';
- }
- $errSchemaPath = $currErrSchemaPath;
- if ($breakOnError) {
- out += ' break; ';
- }
- }
- } else if ($additionalIsSchema) {
- if ($removeAdditional == 'failing') {
- out += ' var ' + ($errs) + ' = errors; ';
- var $wasComposite = it.compositeRule;
- it.compositeRule = $it.compositeRule = true;
- $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, 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) {
- out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';
- } else {
- out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
- }
- 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, 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) {
- out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';
- } else {
- out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
- }
- if ($breakOnError) {
- out += ' if (!' + ($nextValid) + ') break; ';
- }
- }
- }
- it.errorPath = $currentErrorPath;
- }
- if ($someProperties) {
- out += ' } ';
- }
- out += ' } ';
- if ($breakOnError) {
- out += ' if (' + ($nextValid) + ') { ';
- $closingBraces += '}';
- }
- }
- var $useDefaults = it.opts.useDefaults && !it.compositeRule;
- if ($schemaKeys.length) {
- var arr3 = $schemaKeys;
- if (arr3) {
- var $propertyKey, i3 = -1,
- l3 = arr3.length - 1;
- while (i3 < l3) {
- $propertyKey = arr3[i3 += 1];
- var $sch = $schema[$propertyKey];
- if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {
- var $prop = it.util.getProperty($propertyKey),
- $passData = $data + $prop,
- $hasDefault = $useDefaults && $sch.default !== undefined;
- $it.schema = $sch;
- $it.schemaPath = $schemaPath + $prop;
- $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey);
- $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers);
- $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey);
- var $code = it.validate($it);
- $it.baseId = $currentBaseId;
- if (it.util.varOccurences($code, $nextData) < 2) {
- $code = it.util.varReplace($code, $nextData, $passData);
- var $useData = $passData;
- } else {
- var $useData = $nextData;
- out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ';
- }
- if ($hasDefault) {
- out += ' ' + ($code) + ' ';
- } else {
- if ($requiredHash && $requiredHash[$propertyKey]) {
- out += ' if ( ' + ($useData) + ' === undefined ';
- if ($ownProperties) {
- out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') ';
- }
- out += ') { ' + ($nextValid) + ' = false; ';
- var $currentErrorPath = it.errorPath,
- $currErrSchemaPath = $errSchemaPath,
- $missingProperty = it.util.escapeQuotes($propertyKey);
- if (it.opts._errorDataPathProperty) {
- it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);
- }
- $errSchemaPath = it.errSchemaPath + '/required';
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'';
- if (it.opts._errorDataPathProperty) {
- out += 'is a required property';
- } else {
- out += 'should have required property \\\'' + ($missingProperty) + '\\\'';
- }
- out += '\' ';
- }
- 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++; ';
- }
- $errSchemaPath = $currErrSchemaPath;
- it.errorPath = $currentErrorPath;
- out += ' } else { ';
- } else {
- if ($breakOnError) {
- out += ' if ( ' + ($useData) + ' === undefined ';
- if ($ownProperties) {
- out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') ';
- }
- out += ') { ' + ($nextValid) + ' = true; } else { ';
- } else {
- out += ' if (' + ($useData) + ' !== undefined ';
- if ($ownProperties) {
- out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') ';
- }
- out += ' ) { ';
- }
- }
- out += ' ' + ($code) + ' } ';
- }
- }
- if ($breakOnError) {
- out += ' if (' + ($nextValid) + ') { ';
- $closingBraces += '}';
- }
- }
- }
- }
- if ($pPropertyKeys.length) {
- var arr4 = $pPropertyKeys;
- if (arr4) {
- var $pProperty, i4 = -1,
- l4 = arr4.length - 1;
- while (i4 < l4) {
- $pProperty = arr4[i4 += 1];
- var $sch = $pProperties[$pProperty];
- if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {
- $it.schema = $sch;
- $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty);
- $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty);
- if ($ownProperties) {
- out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';
- } else {
- out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';
- }
- out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { ';
- $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) {
- out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';
- } else {
- out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
- }
- if ($breakOnError) {
- out += ' if (!' + ($nextValid) + ') break; ';
- }
- out += ' } ';
- if ($breakOnError) {
- out += ' else ' + ($nextValid) + ' = true; ';
- }
- out += ' } ';
- if ($breakOnError) {
- out += ' if (' + ($nextValid) + ') { ';
- $closingBraces += '}';
- }
- }
- }
- }
- }
- if ($breakOnError) {
- out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';
- }
- return out;
-}
-
-},{}],34:[function(require,module,exports){
-'use strict';
-module.exports = function generate_propertyNames(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $data = 'data' + ($dataLvl || '');
- var $errs = 'errs__' + $lvl;
- var $it = it.util.copy(it);
- var $closingBraces = '';
- $it.level++;
- var $nextValid = 'valid' + $it.level;
- out += 'var ' + ($errs) + ' = errors;';
- if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {
- $it.schema = $schema;
- $it.schemaPath = $schemaPath;
- $it.errSchemaPath = $errSchemaPath;
- var $key = 'key' + $lvl,
- $idx = 'idx' + $lvl,
- $i = 'i' + $lvl,
- $invalidName = '\' + ' + $key + ' + \'',
- $dataNxt = $it.dataLevel = it.dataLevel + 1,
- $nextData = 'data' + $dataNxt,
- $dataProperties = 'dataProperties' + $lvl,
- $ownProperties = it.opts.ownProperties,
- $currentBaseId = it.baseId;
- if ($ownProperties) {
- out += ' var ' + ($dataProperties) + ' = undefined; ';
- }
- if ($ownProperties) {
- out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';
- } else {
- out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';
- }
- out += ' var startErrs' + ($lvl) + ' = errors; ';
- var $passData = $key;
- var $wasComposite = it.compositeRule;
- it.compositeRule = $it.compositeRule = true;
- var $code = it.validate($it);
- $it.baseId = $currentBaseId;
- if (it.util.varOccurences($code, $nextData) < 2) {
- out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';
- } else {
- out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
- }
- it.compositeRule = $it.compositeRule = $wasComposite;
- out += ' if (!' + ($nextValid) + ') { for (var ' + ($i) + '=startErrs' + ($lvl) + '; ' + ($i) + '<errors; ' + ($i) + '++) { vErrors[' + ($i) + '].propertyName = ' + ($key) + '; } var err = '; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('propertyNames') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { propertyName: \'' + ($invalidName) + '\' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'property name \\\'' + ($invalidName) + '\\\' is invalid\' ';
- }
- 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 (!it.compositeRule && $breakOnError) {
- /* istanbul ignore if */
- if (it.async) {
- out += ' throw new ValidationError(vErrors); ';
- } else {
- out += ' validate.errors = vErrors; return false; ';
- }
- }
- if ($breakOnError) {
- out += ' break; ';
- }
- out += ' } }';
- }
- if ($breakOnError) {
- out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';
- }
- return out;
-}
-
-},{}],35:[function(require,module,exports){
-'use strict';
-module.exports = function generate_ref(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $data = 'data' + ($dataLvl || '');
- var $valid = 'valid' + $lvl;
- var $async, $refCode;
- if ($schema == '#' || $schema == '#/') {
- if (it.isRoot) {
- $async = it.async;
- $refCode = 'validate';
- } else {
- $async = it.root.schema.$async === true;
- $refCode = 'root.refVal[0]';
- }
- } else {
- var $refVal = it.resolveRef(it.baseId, $schema, it.isRoot);
- if ($refVal === undefined) {
- var $message = it.MissingRefError.message(it.baseId, $schema);
- if (it.opts.missingRefs == 'fail') {
- it.logger.error($message);
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('$ref') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { ref: \'' + (it.util.escapeQuotes($schema)) + '\' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'can\\\'t resolve reference ' + (it.util.escapeQuotes($schema)) + '\' ';
- }
- if (it.opts.verbose) {
- out += ' , schema: ' + (it.util.toQuotedString($schema)) + ' , 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++; ';
- }
- if ($breakOnError) {
- out += ' if (false) { ';
- }
- } else if (it.opts.missingRefs == 'ignore') {
- it.logger.warn($message);
- if ($breakOnError) {
- out += ' if (true) { ';
- }
- } else {
- throw new it.MissingRefError(it.baseId, $schema, $message);
- }
- } 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 (' + ($nextValid) + ') { ';
- }
- } else {
- $async = $refVal.$async === true || (it.async && $refVal.$async !== false);
- $refCode = $refVal.code;
- }
- }
- if ($refCode) {
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = '';
- if (it.opts.passContext) {
- out += ' ' + ($refCode) + '.call(this, ';
- } else {
- out += ' ' + ($refCode) + '( ';
- }
- out += ' ' + ($data) + ', (dataPath || \'\')';
- if (it.errorPath != '""') {
- out += ' + ' + (it.errorPath);
- }
- var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',
- $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';
- out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ', rootData) ';
- var __callValidate = out;
- out = $$outStack.pop();
- if ($async) {
- if (!it.async) throw new Error('async schema referenced by sync schema');
- if ($breakOnError) {
- out += ' var ' + ($valid) + '; ';
- }
- out += ' try { await ' + (__callValidate) + '; ';
- if ($breakOnError) {
- out += ' ' + ($valid) + ' = true; ';
- }
- out += ' } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ';
- if ($breakOnError) {
- out += ' ' + ($valid) + ' = false; ';
- }
- out += ' } ';
- if ($breakOnError) {
- out += ' if (' + ($valid) + ') { ';
- }
- } else {
- out += ' if (!' + (__callValidate) + ') { if (vErrors === null) vErrors = ' + ($refCode) + '.errors; else vErrors = vErrors.concat(' + ($refCode) + '.errors); errors = vErrors.length; } ';
- if ($breakOnError) {
- out += ' else { ';
- }
- }
- }
- return out;
-}
-
-},{}],36:[function(require,module,exports){
-'use strict';
-module.exports = function generate_required(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $data = 'data' + ($dataLvl || '');
- var $valid = 'valid' + $lvl;
- var $isData = it.opts.$data && $schema && $schema.$data,
- $schemaValue;
- if ($isData) {
- out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
- $schemaValue = 'schema' + $lvl;
- } 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 = [];
- var arr1 = $schema;
- if (arr1) {
- var $property, i1 = -1,
- l1 = arr1.length - 1;
- while (i1 < l1) {
- $property = arr1[i1 += 1];
- var $propertySch = it.schema.properties[$property];
- if (!($propertySch && (it.opts.strictKeywords ? (typeof $propertySch == 'object' && Object.keys($propertySch).length > 0) || $propertySch === false : it.util.schemaHasRules($propertySch, it.RULES.all)))) {
- $required[$required.length] = $property;
- }
- }
- }
- } else {
- var $required = $schema;
- }
- }
- if ($isData || $required.length) {
- var $currentErrorPath = it.errorPath,
- $loopRequired = $isData || $required.length >= it.opts.loopRequired,
- $ownProperties = it.opts.ownProperties;
- if ($breakOnError) {
- out += ' var missing' + ($lvl) + '; ';
- if ($loopRequired) {
- if (!$isData) {
- out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';
- }
- var $i = 'i' + $lvl,
- $propertyPath = 'schema' + $lvl + '[' + $i + ']',
- $missingProperty = '\' + ' + $propertyPath + ' + \'';
- if (it.opts._errorDataPathProperty) {
- it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);
- }
- out += ' var ' + ($valid) + ' = true; ';
- if ($isData) {
- out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';
- }
- out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined ';
- if ($ownProperties) {
- out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';
- }
- out += '; if (!' + ($valid) + ') break; } ';
- if ($isData) {
- out += ' } ';
- }
- out += ' if (!' + ($valid) + ') { ';
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'';
- if (it.opts._errorDataPathProperty) {
- out += 'is a required property';
- } else {
- out += 'should have required property \\\'' + ($missingProperty) + '\\\'';
- }
- out += '\' ';
- }
- 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 += ' } else { ';
- } else {
- out += ' if ( ';
- var arr2 = $required;
- if (arr2) {
- var $propertyKey, $i = -1,
- l2 = arr2.length - 1;
- while ($i < l2) {
- $propertyKey = arr2[$i += 1];
- if ($i) {
- out += ' || ';
- }
- var $prop = it.util.getProperty($propertyKey),
- $useData = $data + $prop;
- out += ' ( ( ' + ($useData) + ' === undefined ';
- if ($ownProperties) {
- out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') ';
- }
- out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';
- }
- }
- out += ') { ';
- var $propertyPath = 'missing' + $lvl,
- $missingProperty = '\' + ' + $propertyPath + ' + \'';
- if (it.opts._errorDataPathProperty) {
- it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;
- }
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'';
- if (it.opts._errorDataPathProperty) {
- out += 'is a required property';
- } else {
- out += 'should have required property \\\'' + ($missingProperty) + '\\\'';
- }
- out += '\' ';
- }
- 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 += ' } else { ';
- }
- } else {
- if ($loopRequired) {
- if (!$isData) {
- out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';
- }
- var $i = 'i' + $lvl,
- $propertyPath = 'schema' + $lvl + '[' + $i + ']',
- $missingProperty = '\' + ' + $propertyPath + ' + \'';
- if (it.opts._errorDataPathProperty) {
- it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);
- }
- if ($isData) {
- out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) { var err = '; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'';
- if (it.opts._errorDataPathProperty) {
- out += 'is a required property';
- } else {
- out += 'should have required property \\\'' + ($missingProperty) + '\\\'';
- }
- out += '\' ';
- }
- 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++; } else if (' + ($vSchema) + ' !== undefined) { ';
- }
- out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined ';
- if ($ownProperties) {
- out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';
- }
- out += ') { var err = '; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'';
- if (it.opts._errorDataPathProperty) {
- out += 'is a required property';
- } else {
- out += 'should have required property \\\'' + ($missingProperty) + '\\\'';
- }
- out += '\' ';
- }
- 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 ($isData) {
- out += ' } ';
- }
- } else {
- var arr3 = $required;
- if (arr3) {
- var $propertyKey, i3 = -1,
- l3 = arr3.length - 1;
- while (i3 < l3) {
- $propertyKey = arr3[i3 += 1];
- var $prop = it.util.getProperty($propertyKey),
- $missingProperty = it.util.escapeQuotes($propertyKey),
- $useData = $data + $prop;
- if (it.opts._errorDataPathProperty) {
- it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);
- }
- out += ' if ( ' + ($useData) + ' === undefined ';
- if ($ownProperties) {
- out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') ';
- }
- out += ') { var err = '; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'';
- if (it.opts._errorDataPathProperty) {
- out += 'is a required property';
- } else {
- out += 'should have required property \\\'' + ($missingProperty) + '\\\'';
- }
- out += '\' ';
- }
- 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++; } ';
- }
- }
- }
- }
- it.errorPath = $currentErrorPath;
- } else if ($breakOnError) {
- out += ' if (true) {';
- }
- return out;
-}
-
-},{}],37:[function(require,module,exports){
-'use strict';
-module.exports = function generate_uniqueItems(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $data = 'data' + ($dataLvl || '');
- var $valid = 'valid' + $lvl;
- var $isData = it.opts.$data && $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 (($schema || $isData) && it.opts.uniqueItems !== false) {
- if ($isData) {
- out += ' var ' + ($valid) + '; if (' + ($schemaValue) + ' === false || ' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \'boolean\') ' + ($valid) + ' = false; else { ';
- }
- out += ' var i = ' + ($data) + '.length , ' + ($valid) + ' = true , j; if (i > 1) { ';
- var $itemType = it.schema.items && it.schema.items.type,
- $typeIsArray = Array.isArray($itemType);
- if (!$itemType || $itemType == 'object' || $itemType == 'array' || ($typeIsArray && ($itemType.indexOf('object') >= 0 || $itemType.indexOf('array') >= 0))) {
- out += ' outer: for (;i--;) { for (j = i; j--;) { if (equal(' + ($data) + '[i], ' + ($data) + '[j])) { ' + ($valid) + ' = false; break outer; } } } ';
- } else {
- out += ' var itemIndices = {}, item; for (;i--;) { var item = ' + ($data) + '[i]; ';
- var $method = 'checkDataType' + ($typeIsArray ? 's' : '');
- out += ' if (' + (it.util[$method]($itemType, 'item', it.opts.strictNumbers, true)) + ') continue; ';
- if ($typeIsArray) {
- out += ' if (typeof item == \'string\') item = \'"\' + item; ';
- }
- out += ' if (typeof itemIndices[item] == \'number\') { ' + ($valid) + ' = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ';
- }
- out += ' } ';
- if ($isData) {
- out += ' } ';
- }
- out += ' if (!' + ($valid) + ') { ';
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('uniqueItems') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { i: i, j: j } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should NOT have duplicate items (items ## \' + j + \' and \' + i + \' are identical)\' ';
- }
- if (it.opts.verbose) {
- out += ' , schema: ';
- if ($isData) {
- out += 'validate.schema' + ($schemaPath);
- } else {
- out += '' + ($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 += ' } ';
- if ($breakOnError) {
- out += ' else { ';
- }
- } else {
- if ($breakOnError) {
- out += ' if (true) { ';
- }
- }
- return out;
-}
-
-},{}],38:[function(require,module,exports){
-'use strict';
-module.exports = function generate_validate(it, $keyword, $ruleType) {
- var out = '';
- var $async = it.schema.$async === true,
- $refKeywords = it.util.schemaHasRulesExcept(it.schema, it.RULES.all, '$ref'),
- $id = it.self._getId(it.schema);
- if (it.opts.strictKeywords) {
- var $unknownKwd = it.util.schemaUnknownRules(it.schema, it.RULES.keywords);
- if ($unknownKwd) {
- var $keywordsMsg = 'unknown keyword: ' + $unknownKwd;
- if (it.opts.strictKeywords === 'log') it.logger.warn($keywordsMsg);
- else throw new Error($keywordsMsg);
- }
- }
- if (it.isTop) {
- out += ' var validate = ';
- if ($async) {
- it.async = true;
- out += 'async ';
- }
- out += 'function(data, dataPath, parentData, parentDataProperty, rootData) { \'use strict\'; ';
- if ($id && (it.opts.sourceCode || it.opts.processCode)) {
- out += ' ' + ('/\*# sourceURL=' + $id + ' */') + ' ';
- }
- }
- if (typeof it.schema == 'boolean' || !($refKeywords || it.schema.$ref)) {
- var $keyword = 'false schema';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $errorKeyword;
- var $data = 'data' + ($dataLvl || '');
- var $valid = 'valid' + $lvl;
- if (it.schema === false) {
- if (it.isTop) {
- $breakOnError = true;
- } else {
- out += ' var ' + ($valid) + ' = false; ';
- }
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ($errorKeyword || 'false schema') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';
- if (it.opts.messages !== false) {
- out += ' , message: \'boolean schema is false\' ';
- }
- if (it.opts.verbose) {
- out += ' , schema: false , 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++; ';
- }
- } else {
- if (it.isTop) {
- if ($async) {
- out += ' return data; ';
- } else {
- out += ' validate.errors = null; return true; ';
- }
- } else {
- out += ' var ' + ($valid) + ' = true; ';
- }
- }
- if (it.isTop) {
- out += ' }; return validate; ';
- }
- return out;
- }
- if (it.isTop) {
- var $top = it.isTop,
- $lvl = it.level = 0,
- $dataLvl = it.dataLevel = 0,
- $data = 'data';
- it.rootId = it.resolve.fullPath(it.self._getId(it.root.schema));
- it.baseId = it.baseId || it.rootId;
- delete it.isTop;
- it.dataPathArr = [""];
- if (it.schema.default !== undefined && it.opts.useDefaults && it.opts.strictDefaults) {
- var $defaultMsg = 'default is ignored in the schema root';
- if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);
- else throw new Error($defaultMsg);
- }
- out += ' var vErrors = null; ';
- out += ' var errors = 0; ';
- out += ' if (rootData === undefined) rootData = data; ';
- } else {
- var $lvl = it.level,
- $dataLvl = it.dataLevel,
- $data = 'data' + ($dataLvl || '');
- if ($id) it.baseId = it.resolve.url(it.baseId, $id);
- if ($async && !it.async) throw new Error('async schema in sync schema');
- out += ' var errs_' + ($lvl) + ' = errors;';
- }
- var $valid = 'valid' + $lvl,
- $breakOnError = !it.opts.allErrors,
- $closingBraces1 = '',
- $closingBraces2 = '';
- var $errorKeyword;
- var $typeSchema = it.schema.type,
- $typeIsArray = Array.isArray($typeSchema);
- if ($typeSchema && it.opts.nullable && it.schema.nullable === true) {
- if ($typeIsArray) {
- if ($typeSchema.indexOf('null') == -1) $typeSchema = $typeSchema.concat('null');
- } else if ($typeSchema != 'null') {
- $typeSchema = [$typeSchema, 'null'];
- $typeIsArray = true;
- }
- }
- if ($typeIsArray && $typeSchema.length == 1) {
- $typeSchema = $typeSchema[0];
- $typeIsArray = false;
- }
- if (it.schema.$ref && $refKeywords) {
- if (it.opts.extendRefs == 'fail') {
- throw new Error('$ref: validation keywords used in schema at path "' + it.errSchemaPath + '" (see option extendRefs)');
- } else if (it.opts.extendRefs !== true) {
- $refKeywords = false;
- it.logger.warn('$ref: keywords ignored in schema at path "' + it.errSchemaPath + '"');
- }
- }
- if (it.schema.$comment && it.opts.$comment) {
- out += ' ' + (it.RULES.all.$comment.code(it, '$comment'));
- }
- if ($typeSchema) {
- if (it.opts.coerceTypes) {
- var $coerceToTypes = it.util.coerceToTypes(it.opts.coerceTypes, $typeSchema);
- }
- var $rulesGroup = it.RULES.types[$typeSchema];
- if ($coerceToTypes || $typeIsArray || $rulesGroup === true || ($rulesGroup && !$shouldUseGroup($rulesGroup))) {
- var $schemaPath = it.schemaPath + '.type',
- $errSchemaPath = it.errSchemaPath + '/type';
- var $schemaPath = it.schemaPath + '.type',
- $errSchemaPath = it.errSchemaPath + '/type',
- $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType';
- out += ' if (' + (it.util[$method]($typeSchema, $data, it.opts.strictNumbers, true)) + ') { ';
- if ($coerceToTypes) {
- var $dataType = 'dataType' + $lvl,
- $coerced = 'coerced' + $lvl;
- out += ' var ' + ($dataType) + ' = typeof ' + ($data) + '; var ' + ($coerced) + ' = undefined; ';
- if (it.opts.coerceTypes == 'array') {
- out += ' if (' + ($dataType) + ' == \'object\' && Array.isArray(' + ($data) + ') && ' + ($data) + '.length == 1) { ' + ($data) + ' = ' + ($data) + '[0]; ' + ($dataType) + ' = typeof ' + ($data) + '; if (' + (it.util.checkDataType(it.schema.type, $data, it.opts.strictNumbers)) + ') ' + ($coerced) + ' = ' + ($data) + '; } ';
- }
- out += ' if (' + ($coerced) + ' !== undefined) ; ';
- var arr1 = $coerceToTypes;
- if (arr1) {
- var $type, $i = -1,
- l1 = arr1.length - 1;
- while ($i < l1) {
- $type = arr1[$i += 1];
- if ($type == 'string') {
- out += ' else if (' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\') ' + ($coerced) + ' = \'\' + ' + ($data) + '; else if (' + ($data) + ' === null) ' + ($coerced) + ' = \'\'; ';
- } else if ($type == 'number' || $type == 'integer') {
- out += ' else if (' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' === null || (' + ($dataType) + ' == \'string\' && ' + ($data) + ' && ' + ($data) + ' == +' + ($data) + ' ';
- if ($type == 'integer') {
- out += ' && !(' + ($data) + ' % 1)';
- }
- out += ')) ' + ($coerced) + ' = +' + ($data) + '; ';
- } else if ($type == 'boolean') {
- out += ' else if (' + ($data) + ' === \'false\' || ' + ($data) + ' === 0 || ' + ($data) + ' === null) ' + ($coerced) + ' = false; else if (' + ($data) + ' === \'true\' || ' + ($data) + ' === 1) ' + ($coerced) + ' = true; ';
- } else if ($type == 'null') {
- out += ' else if (' + ($data) + ' === \'\' || ' + ($data) + ' === 0 || ' + ($data) + ' === false) ' + ($coerced) + ' = null; ';
- } else if (it.opts.coerceTypes == 'array' && $type == 'array') {
- out += ' else if (' + ($dataType) + ' == \'string\' || ' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' == null) ' + ($coerced) + ' = [' + ($data) + ']; ';
- }
- }
- }
- out += ' else { ';
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ($errorKeyword || 'type') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \'';
- if ($typeIsArray) {
- out += '' + ($typeSchema.join(","));
- } else {
- out += '' + ($typeSchema);
- }
- out += '\' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should be ';
- if ($typeIsArray) {
- out += '' + ($typeSchema.join(","));
- } else {
- out += '' + ($typeSchema);
- }
- out += '\' ';
- }
- 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 (' + ($coerced) + ' !== undefined) { ';
- var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',
- $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';
- out += ' ' + ($data) + ' = ' + ($coerced) + '; ';
- if (!$dataLvl) {
- out += 'if (' + ($parentData) + ' !== undefined)';
- }
- out += ' ' + ($parentData) + '[' + ($parentDataProperty) + '] = ' + ($coerced) + '; } ';
- } else {
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ($errorKeyword || 'type') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \'';
- if ($typeIsArray) {
- out += '' + ($typeSchema.join(","));
- } else {
- out += '' + ($typeSchema);
- }
- out += '\' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should be ';
- if ($typeIsArray) {
- out += '' + ($typeSchema.join(","));
- } else {
- out += '' + ($typeSchema);
- }
- out += '\' ';
- }
- 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 (it.schema.$ref && !$refKeywords) {
- out += ' ' + (it.RULES.all.$ref.code(it, '$ref')) + ' ';
- if ($breakOnError) {
- out += ' } if (errors === ';
- if ($top) {
- out += '0';
- } else {
- out += 'errs_' + ($lvl);
- }
- out += ') { ';
- $closingBraces2 += '}';
- }
- } else {
- var arr2 = it.RULES;
- if (arr2) {
- var $rulesGroup, i2 = -1,
- l2 = arr2.length - 1;
- while (i2 < l2) {
- $rulesGroup = arr2[i2 += 1];
- if ($shouldUseGroup($rulesGroup)) {
- if ($rulesGroup.type) {
- out += ' if (' + (it.util.checkDataType($rulesGroup.type, $data, it.opts.strictNumbers)) + ') { ';
- }
- if (it.opts.useDefaults) {
- if ($rulesGroup.type == 'object' && it.schema.properties) {
- var $schema = it.schema.properties,
- $schemaKeys = Object.keys($schema);
- var arr3 = $schemaKeys;
- if (arr3) {
- var $propertyKey, i3 = -1,
- l3 = arr3.length - 1;
- while (i3 < l3) {
- $propertyKey = arr3[i3 += 1];
- var $sch = $schema[$propertyKey];
- if ($sch.default !== undefined) {
- var $passData = $data + it.util.getProperty($propertyKey);
- if (it.compositeRule) {
- if (it.opts.strictDefaults) {
- var $defaultMsg = 'default is ignored for: ' + $passData;
- if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);
- else throw new Error($defaultMsg);
- }
- } else {
- out += ' if (' + ($passData) + ' === undefined ';
- if (it.opts.useDefaults == 'empty') {
- out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \'\' ';
- }
- out += ' ) ' + ($passData) + ' = ';
- if (it.opts.useDefaults == 'shared') {
- out += ' ' + (it.useDefault($sch.default)) + ' ';
- } else {
- out += ' ' + (JSON.stringify($sch.default)) + ' ';
- }
- out += '; ';
- }
- }
- }
- }
- } else if ($rulesGroup.type == 'array' && Array.isArray(it.schema.items)) {
- var arr4 = it.schema.items;
- if (arr4) {
- var $sch, $i = -1,
- l4 = arr4.length - 1;
- while ($i < l4) {
- $sch = arr4[$i += 1];
- if ($sch.default !== undefined) {
- var $passData = $data + '[' + $i + ']';
- if (it.compositeRule) {
- if (it.opts.strictDefaults) {
- var $defaultMsg = 'default is ignored for: ' + $passData;
- if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);
- else throw new Error($defaultMsg);
- }
- } else {
- out += ' if (' + ($passData) + ' === undefined ';
- if (it.opts.useDefaults == 'empty') {
- out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \'\' ';
- }
- out += ' ) ' + ($passData) + ' = ';
- if (it.opts.useDefaults == 'shared') {
- out += ' ' + (it.useDefault($sch.default)) + ' ';
- } else {
- out += ' ' + (JSON.stringify($sch.default)) + ' ';
- }
- out += '; ';
- }
- }
- }
- }
- }
- }
- var arr5 = $rulesGroup.rules;
- if (arr5) {
- var $rule, i5 = -1,
- l5 = arr5.length - 1;
- while (i5 < l5) {
- $rule = arr5[i5 += 1];
- if ($shouldUseRule($rule)) {
- var $code = $rule.code(it, $rule.keyword, $rulesGroup.type);
- if ($code) {
- out += ' ' + ($code) + ' ';
- if ($breakOnError) {
- $closingBraces1 += '}';
- }
- }
- }
- }
- }
- if ($breakOnError) {
- out += ' ' + ($closingBraces1) + ' ';
- $closingBraces1 = '';
- }
- if ($rulesGroup.type) {
- out += ' } ';
- if ($typeSchema && $typeSchema === $rulesGroup.type && !$coerceToTypes) {
- out += ' else { ';
- var $schemaPath = it.schemaPath + '.type',
- $errSchemaPath = it.errSchemaPath + '/type';
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ($errorKeyword || 'type') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \'';
- if ($typeIsArray) {
- out += '' + ($typeSchema.join(","));
- } else {
- out += '' + ($typeSchema);
- }
- out += '\' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should be ';
- if ($typeIsArray) {
- out += '' + ($typeSchema.join(","));
- } else {
- out += '' + ($typeSchema);
- }
- out += '\' ';
- }
- 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) {
- out += ' if (errors === ';
- if ($top) {
- out += '0';
- } else {
- out += 'errs_' + ($lvl);
- }
- out += ') { ';
- $closingBraces2 += '}';
- }
- }
- }
- }
- }
- if ($breakOnError) {
- out += ' ' + ($closingBraces2) + ' ';
- }
- if ($top) {
- if ($async) {
- out += ' if (errors === 0) return data; ';
- out += ' else throw new ValidationError(vErrors); ';
- } else {
- out += ' validate.errors = vErrors; ';
- out += ' return errors === 0; ';
- }
- out += ' }; return validate;';
- } else {
- out += ' var ' + ($valid) + ' = errors === errs_' + ($lvl) + ';';
- }
-
- function $shouldUseGroup($rulesGroup) {
- var rules = $rulesGroup.rules;
- for (var i = 0; i < rules.length; i++)
- if ($shouldUseRule(rules[i])) return true;
- }
-
- function $shouldUseRule($rule) {
- return it.schema[$rule.keyword] !== undefined || ($rule.implements && $ruleImplementsSomeKeyword($rule));
- }
-
- function $ruleImplementsSomeKeyword($rule) {
- var impl = $rule.implements;
- for (var i = 0; i < impl.length; i++)
- if (it.schema[impl[i]] !== undefined) return true;
- }
- return out;
-}
-
-},{}],39:[function(require,module,exports){
-'use strict';
-
-var IDENTIFIER = /^[a-z_$][a-z0-9_$-]*$/i;
-var customRuleCode = require('./dotjs/custom');
-var definitionSchema = require('./definition_schema');
-
-module.exports = {
- add: addKeyword,
- get: getKeyword,
- remove: removeKeyword,
- validate: validateKeyword
-};
-
-
-/**
- * Define custom keyword
- * @this Ajv
- * @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`.
- * @return {Ajv} this for method chaining
- */
-function addKeyword(keyword, definition) {
- /* jshint validthis: true */
- /* eslint no-shadow: 0 */
- var RULES = this.RULES;
- if (RULES.keywords[keyword])
- throw new Error('Keyword ' + keyword + ' is already defined');
-
- if (!IDENTIFIER.test(keyword))
- throw new Error('Keyword ' + keyword + ' is not a valid identifier');
-
- if (definition) {
- this.validateKeyword(definition, true);
-
- var dataType = definition.type;
- if (Array.isArray(dataType)) {
- for (var i=0; i<dataType.length; i++)
- _addRule(keyword, dataType[i], definition);
- } else {
- _addRule(keyword, dataType, definition);
- }
-
- var metaSchema = definition.metaSchema;
- if (metaSchema) {
- if (definition.$data && this._opts.$data) {
- metaSchema = {
- anyOf: [
- metaSchema,
- { '$ref': 'https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#' }
- ]
- };
- }
- definition.validateSchema = this.compile(metaSchema, true);
- }
- }
-
- RULES.keywords[keyword] = RULES.all[keyword] = true;
-
-
- function _addRule(keyword, dataType, definition) {
- var ruleGroup;
- for (var i=0; i<RULES.length; i++) {
- var rg = RULES[i];
- if (rg.type == dataType) {
- ruleGroup = rg;
- break;
- }
- }
-
- if (!ruleGroup) {
- ruleGroup = { type: dataType, rules: [] };
- RULES.push(ruleGroup);
- }
-
- var rule = {
- keyword: keyword,
- definition: definition,
- custom: true,
- code: customRuleCode,
- implements: definition.implements
- };
- ruleGroup.rules.push(rule);
- RULES.custom[keyword] = rule;
- }
-
- return this;
-}
-
-
-/**
- * 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.
- * @return {Ajv} this for method chaining
- */
-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;
- }
- }
- }
- return this;
-}
-
-
-/**
- * Validate keyword definition
- * @this Ajv
- * @param {Object} definition keyword definition object.
- * @param {Boolean} throwError true to throw exception if definition is invalid
- * @return {boolean} validation result
- */
-function validateKeyword(definition, throwError) {
- validateKeyword.errors = null;
- var v = this._validateKeyword = this._validateKeyword
- || this.compile(definitionSchema, true);
-
- if (v(definition)) return true;
- validateKeyword.errors = v.errors;
- if (throwError)
- throw new Error('custom keyword definition is invalid: ' + this.errorsText(v.errors));
- else
- return false;
-}
-
-},{"./definition_schema":12,"./dotjs/custom":22}],40:[function(require,module,exports){
-module.exports={
- "$schema": "http://json-schema.org/draft-07/schema#",
- "$id": "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",
- "description": "Meta-schema for $data reference (JSON Schema extension proposal)",
- "type": "object",
- "required": [ "$data" ],
- "properties": {
- "$data": {
- "type": "string",
- "anyOf": [
- { "format": "relative-json-pointer" },
- { "format": "json-pointer" }
- ]
- }
- },
- "additionalProperties": false
-}
-
-},{}],41:[function(require,module,exports){
-module.exports={
- "$schema": "http://json-schema.org/draft-07/schema#",
- "$id": "http://json-schema.org/draft-07/schema#",
- "title": "Core schema meta-schema",
- "definitions": {
- "schemaArray": {
- "type": "array",
- "minItems": 1,
- "items": { "$ref": "#" }
- },
- "nonNegativeInteger": {
- "type": "integer",
- "minimum": 0
- },
- "nonNegativeIntegerDefault0": {
- "allOf": [
- { "$ref": "#/definitions/nonNegativeInteger" },
- { "default": 0 }
- ]
- },
- "simpleTypes": {
- "enum": [
- "array",
- "boolean",
- "integer",
- "null",
- "number",
- "object",
- "string"
- ]
- },
- "stringArray": {
- "type": "array",
- "items": { "type": "string" },
- "uniqueItems": true,
- "default": []
- }
- },
- "type": ["object", "boolean"],
- "properties": {
- "$id": {
- "type": "string",
- "format": "uri-reference"
- },
- "$schema": {
- "type": "string",
- "format": "uri"
- },
- "$ref": {
- "type": "string",
- "format": "uri-reference"
- },
- "$comment": {
- "type": "string"
- },
- "title": {
- "type": "string"
- },
- "description": {
- "type": "string"
- },
- "default": true,
- "readOnly": {
- "type": "boolean",
- "default": false
- },
- "examples": {
- "type": "array",
- "items": true
- },
- "multipleOf": {
- "type": "number",
- "exclusiveMinimum": 0
- },
- "maximum": {
- "type": "number"
- },
- "exclusiveMaximum": {
- "type": "number"
- },
- "minimum": {
- "type": "number"
- },
- "exclusiveMinimum": {
- "type": "number"
- },
- "maxLength": { "$ref": "#/definitions/nonNegativeInteger" },
- "minLength": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },
- "pattern": {
- "type": "string",
- "format": "regex"
- },
- "additionalItems": { "$ref": "#" },
- "items": {
- "anyOf": [
- { "$ref": "#" },
- { "$ref": "#/definitions/schemaArray" }
- ],
- "default": true
- },
- "maxItems": { "$ref": "#/definitions/nonNegativeInteger" },
- "minItems": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },
- "uniqueItems": {
- "type": "boolean",
- "default": false
- },
- "contains": { "$ref": "#" },
- "maxProperties": { "$ref": "#/definitions/nonNegativeInteger" },
- "minProperties": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },
- "required": { "$ref": "#/definitions/stringArray" },
- "additionalProperties": { "$ref": "#" },
- "definitions": {
- "type": "object",
- "additionalProperties": { "$ref": "#" },
- "default": {}
- },
- "properties": {
- "type": "object",
- "additionalProperties": { "$ref": "#" },
- "default": {}
- },
- "patternProperties": {
- "type": "object",
- "additionalProperties": { "$ref": "#" },
- "propertyNames": { "format": "regex" },
- "default": {}
- },
- "dependencies": {
- "type": "object",
- "additionalProperties": {
- "anyOf": [
- { "$ref": "#" },
- { "$ref": "#/definitions/stringArray" }
- ]
- }
- },
- "propertyNames": { "$ref": "#" },
- "const": true,
- "enum": {
- "type": "array",
- "items": true,
- "minItems": 1,
- "uniqueItems": true
- },
- "type": {
- "anyOf": [
- { "$ref": "#/definitions/simpleTypes" },
- {
- "type": "array",
- "items": { "$ref": "#/definitions/simpleTypes" },
- "minItems": 1,
- "uniqueItems": true
- }
- ]
- },
- "format": { "type": "string" },
- "contentMediaType": { "type": "string" },
- "contentEncoding": { "type": "string" },
- "if": {"$ref": "#"},
- "then": {"$ref": "#"},
- "else": {"$ref": "#"},
- "allOf": { "$ref": "#/definitions/schemaArray" },
- "anyOf": { "$ref": "#/definitions/schemaArray" },
- "oneOf": { "$ref": "#/definitions/schemaArray" },
- "not": { "$ref": "#" }
- },
- "default": true
-}
-
-},{}],42:[function(require,module,exports){
-'use strict';
-
-// do not edit .js files directly - edit src/index.jst
-
-
-
-module.exports = function equal(a, b) {
- if (a === b) return true;
-
- if (a && b && typeof a == 'object' && typeof b == 'object') {
- if (a.constructor !== b.constructor) return false;
-
- var length, i, keys;
- if (Array.isArray(a)) {
- length = a.length;
- if (length != b.length) return false;
- for (i = length; i-- !== 0;)
- if (!equal(a[i], b[i])) return false;
- return true;
- }
-
-
-
- if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;
- if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();
- if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();
-
- keys = Object.keys(a);
- length = keys.length;
- if (length !== Object.keys(b).length) return false;
-
- for (i = length; i-- !== 0;)
- if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;
-
- for (i = length; i-- !== 0;) {
- var key = keys[i];
-
- if (!equal(a[key], b[key])) return false;
- }
-
- return true;
- }
-
- // true if both NaN, false otherwise
- return a!==a && b!==b;
-};
-
-},{}],43:[function(require,module,exports){
-'use strict';
-
-module.exports = function (data, opts) {
- if (!opts) opts = {};
- if (typeof opts === 'function') opts = { cmp: opts };
- var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false;
-
- var cmp = opts.cmp && (function (f) {
- return function (node) {
- return function (a, b) {
- var aobj = { key: a, value: node[a] };
- var bobj = { key: b, value: node[b] };
- return f(aobj, bobj);
- };
- };
- })(opts.cmp);
-
- var seen = [];
- return (function stringify (node) {
- if (node && node.toJSON && typeof node.toJSON === 'function') {
- node = node.toJSON();
- }
-
- if (node === undefined) return;
- if (typeof node == 'number') return isFinite(node) ? '' + node : 'null';
- if (typeof node !== 'object') return JSON.stringify(node);
-
- var i, out;
- if (Array.isArray(node)) {
- out = '[';
- for (i = 0; i < node.length; i++) {
- if (i) out += ',';
- out += stringify(node[i]) || 'null';
- }
- return out + ']';
- }
-
- if (node === null) return 'null';
-
- if (seen.indexOf(node) !== -1) {
- if (cycles) return JSON.stringify('__cycle__');
- throw new TypeError('Converting circular structure to JSON');
- }
-
- var seenIndex = seen.push(node) - 1;
- var keys = Object.keys(node).sort(cmp && cmp(node));
- out = '';
- for (i = 0; i < keys.length; i++) {
- var key = keys[i];
- var value = stringify(node[key]);
-
- if (!value) continue;
- if (out) out += ',';
- out += JSON.stringify(key) + ':' + value;
- }
- seen.splice(seenIndex, 1);
- return '{' + out + '}';
- })(data);
-};
-
-},{}],44:[function(require,module,exports){
-'use strict';
-
-var traverse = module.exports = function (schema, opts, cb) {
- // Legacy support for v0.3.1 and earlier.
- if (typeof opts == 'function') {
- cb = opts;
- opts = {};
- }
-
- cb = opts.cb || cb;
- var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};
- var post = cb.post || function() {};
-
- _traverse(opts, pre, post, schema, '', schema);
-};
-
-
-traverse.keywords = {
- additionalItems: true,
- items: true,
- contains: true,
- additionalProperties: true,
- propertyNames: true,
- not: true
-};
-
-traverse.arrayKeywords = {
- items: true,
- allOf: true,
- anyOf: true,
- oneOf: true
-};
-
-traverse.propsKeywords = {
- definitions: true,
- properties: true,
- patternProperties: true,
- dependencies: true
-};
-
-traverse.skipKeywords = {
- default: true,
- enum: true,
- const: true,
- required: true,
- maximum: true,
- minimum: true,
- exclusiveMaximum: true,
- exclusiveMinimum: true,
- multipleOf: true,
- maxLength: true,
- minLength: true,
- pattern: true,
- format: true,
- maxItems: true,
- minItems: true,
- uniqueItems: true,
- maxProperties: true,
- minProperties: true
-};
-
-
-function _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {
- if (schema && typeof schema == 'object' && !Array.isArray(schema)) {
- pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);
- for (var key in schema) {
- var sch = schema[key];
- if (Array.isArray(sch)) {
- if (key in traverse.arrayKeywords) {
- for (var i=0; i<sch.length; i++)
- _traverse(opts, pre, post, sch[i], jsonPtr + '/' + key + '/' + i, rootSchema, jsonPtr, key, schema, i);
- }
- } else if (key in traverse.propsKeywords) {
- if (sch && typeof sch == 'object') {
- for (var prop in sch)
- _traverse(opts, pre, post, sch[prop], jsonPtr + '/' + key + '/' + escapeJsonPtr(prop), rootSchema, jsonPtr, key, schema, prop);
- }
- } else if (key in traverse.keywords || (opts.allKeys && !(key in traverse.skipKeywords))) {
- _traverse(opts, pre, post, sch, jsonPtr + '/' + key, rootSchema, jsonPtr, key, schema);
- }
- }
- post(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);
- }
-}
-
-
-function escapeJsonPtr(str) {
- return str.replace(/~/g, '~0').replace(/\//g, '~1');
-}
-
-},{}],45:[function(require,module,exports){
-/** @license URI.js v4.4.0 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
- typeof define === 'function' && define.amd ? define(['exports'], factory) :
- (factory((global.URI = global.URI || {})));
-}(this, (function (exports) { 'use strict';
-
-function merge() {
- for (var _len = arguments.length, sets = Array(_len), _key = 0; _key < _len; _key++) {
- sets[_key] = arguments[_key];
- }
-
- if (sets.length > 1) {
- sets[0] = sets[0].slice(0, -1);
- var xl = sets.length - 1;
- for (var x = 1; x < xl; ++x) {
- sets[x] = sets[x].slice(1, -1);
- }
- sets[xl] = sets[xl].slice(1);
- return sets.join('');
- } else {
- return sets[0];
- }
-}
-function subexp(str) {
- return "(?:" + str + ")";
-}
-function typeOf(o) {
- return o === undefined ? "undefined" : o === null ? "null" : Object.prototype.toString.call(o).split(" ").pop().split("]").shift().toLowerCase();
-}
-function toUpperCase(str) {
- return str.toUpperCase();
-}
-function toArray(obj) {
- return obj !== undefined && obj !== null ? obj instanceof Array ? obj : typeof obj.length !== "number" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj) : [];
-}
-function assign(target, source) {
- var obj = target;
- if (source) {
- for (var key in source) {
- obj[key] = source[key];
- }
- }
- return obj;
-}
-
-function buildExps(isIRI) {
- var ALPHA$$ = "[A-Za-z]",
- CR$ = "[\\x0D]",
- DIGIT$$ = "[0-9]",
- DQUOTE$$ = "[\\x22]",
- HEXDIG$$ = merge(DIGIT$$, "[A-Fa-f]"),
- //case-insensitive
- LF$$ = "[\\x0A]",
- SP$$ = "[\\x20]",
- PCT_ENCODED$ = subexp(subexp("%[EFef]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%[89A-Fa-f]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%" + HEXDIG$$ + HEXDIG$$)),
- //expanded
- GEN_DELIMS$$ = "[\\:\\/\\?\\#\\[\\]\\@]",
- SUB_DELIMS$$ = "[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]",
- RESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),
- UCSCHAR$$ = isIRI ? "[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]" : "[]",
- //subset, excludes bidi control characters
- IPRIVATE$$ = isIRI ? "[\\uE000-\\uF8FF]" : "[]",
- //subset
- UNRESERVED$$ = merge(ALPHA$$, DIGIT$$, "[\\-\\.\\_\\~]", UCSCHAR$$),
- SCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, "[\\+\\-\\.]") + "*"),
- USERINFO$ = subexp(subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\:]")) + "*"),
- DEC_OCTET$ = subexp(subexp("25[0-5]") + "|" + subexp("2[0-4]" + DIGIT$$) + "|" + subexp("1" + DIGIT$$ + DIGIT$$) + "|" + subexp("[1-9]" + DIGIT$$) + "|" + DIGIT$$),
- DEC_OCTET_RELAXED$ = subexp(subexp("25[0-5]") + "|" + subexp("2[0-4]" + DIGIT$$) + "|" + subexp("1" + DIGIT$$ + DIGIT$$) + "|" + subexp("0?[1-9]" + DIGIT$$) + "|0?0?" + DIGIT$$),
- //relaxed parsing rules
- IPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$),
- H16$ = subexp(HEXDIG$$ + "{1,4}"),
- LS32$ = subexp(subexp(H16$ + "\\:" + H16$) + "|" + IPV4ADDRESS$),
- IPV6ADDRESS1$ = subexp(subexp(H16$ + "\\:") + "{6}" + LS32$),
- // 6( h16 ":" ) ls32
- IPV6ADDRESS2$ = subexp("\\:\\:" + subexp(H16$ + "\\:") + "{5}" + LS32$),
- // "::" 5( h16 ":" ) ls32
- IPV6ADDRESS3$ = subexp(subexp(H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{4}" + LS32$),
- //[ h16 ] "::" 4( h16 ":" ) ls32
- IPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,1}" + H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{3}" + LS32$),
- //[ *1( h16 ":" ) h16 ] "::" 3( h16 ":" ) ls32
- IPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,2}" + H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{2}" + LS32$),
- //[ *2( h16 ":" ) h16 ] "::" 2( h16 ":" ) ls32
- IPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,3}" + H16$) + "?\\:\\:" + H16$ + "\\:" + LS32$),
- //[ *3( h16 ":" ) h16 ] "::" h16 ":" ls32
- IPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,4}" + H16$) + "?\\:\\:" + LS32$),
- //[ *4( h16 ":" ) h16 ] "::" ls32
- IPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,5}" + H16$) + "?\\:\\:" + H16$),
- //[ *5( h16 ":" ) h16 ] "::" h16
- IPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,6}" + H16$) + "?\\:\\:"),
- //[ *6( h16 ":" ) h16 ] "::"
- IPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join("|")),
- ZONEID$ = subexp(subexp(UNRESERVED$$ + "|" + PCT_ENCODED$) + "+"),
- //RFC 6874
- IPV6ADDRZ$ = subexp(IPV6ADDRESS$ + "\\%25" + ZONEID$),
- //RFC 6874
- IPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp("\\%25|\\%(?!" + HEXDIG$$ + "{2})") + ZONEID$),
- //RFC 6874, with relaxed parsing rules
- IPVFUTURE$ = subexp("[vV]" + HEXDIG$$ + "+\\." + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\:]") + "+"),
- IP_LITERAL$ = subexp("\\[" + subexp(IPV6ADDRZ_RELAXED$ + "|" + IPV6ADDRESS$ + "|" + IPVFUTURE$) + "\\]"),
- //RFC 6874
- REG_NAME$ = subexp(subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$)) + "*"),
- HOST$ = subexp(IP_LITERAL$ + "|" + IPV4ADDRESS$ + "(?!" + REG_NAME$ + ")" + "|" + REG_NAME$),
- PORT$ = subexp(DIGIT$$ + "*"),
- AUTHORITY$ = subexp(subexp(USERINFO$ + "@") + "?" + HOST$ + subexp("\\:" + PORT$) + "?"),
- PCHAR$ = subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\:\\@]")),
- SEGMENT$ = subexp(PCHAR$ + "*"),
- SEGMENT_NZ$ = subexp(PCHAR$ + "+"),
- SEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\@]")) + "+"),
- PATH_ABEMPTY$ = subexp(subexp("\\/" + SEGMENT$) + "*"),
- PATH_ABSOLUTE$ = subexp("\\/" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + "?"),
- //simplified
- PATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$),
- //simplified
- PATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$),
- //simplified
- PATH_EMPTY$ = "(?!" + PCHAR$ + ")",
- PATH$ = subexp(PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$),
- QUERY$ = subexp(subexp(PCHAR$ + "|" + merge("[\\/\\?]", IPRIVATE$$)) + "*"),
- FRAGMENT$ = subexp(subexp(PCHAR$ + "|[\\/\\?]") + "*"),
- HIER_PART$ = subexp(subexp("\\/\\/" + AUTHORITY$ + PATH_ABEMPTY$) + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$),
- URI$ = subexp(SCHEME$ + "\\:" + HIER_PART$ + subexp("\\?" + QUERY$) + "?" + subexp("\\#" + FRAGMENT$) + "?"),
- RELATIVE_PART$ = subexp(subexp("\\/\\/" + AUTHORITY$ + PATH_ABEMPTY$) + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_EMPTY$),
- RELATIVE$ = subexp(RELATIVE_PART$ + subexp("\\?" + QUERY$) + "?" + subexp("\\#" + FRAGMENT$) + "?"),
- URI_REFERENCE$ = subexp(URI$ + "|" + RELATIVE$),
- ABSOLUTE_URI$ = subexp(SCHEME$ + "\\:" + HIER_PART$ + subexp("\\?" + QUERY$) + "?"),
- GENERIC_REF$ = "^(" + SCHEME$ + ")\\:" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?" + subexp("\\#(" + FRAGMENT$ + ")") + "?$",
- RELATIVE_REF$ = "^(){0}" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?" + subexp("\\#(" + FRAGMENT$ + ")") + "?$",
- ABSOLUTE_REF$ = "^(" + SCHEME$ + ")\\:" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?$",
- SAMEDOC_REF$ = "^" + subexp("\\#(" + FRAGMENT$ + ")") + "?$",
- AUTHORITY_REF$ = "^" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?$";
- return {
- NOT_SCHEME: new RegExp(merge("[^]", ALPHA$$, DIGIT$$, "[\\+\\-\\.]"), "g"),
- NOT_USERINFO: new RegExp(merge("[^\\%\\:]", UNRESERVED$$, SUB_DELIMS$$), "g"),
- NOT_HOST: new RegExp(merge("[^\\%\\[\\]\\:]", UNRESERVED$$, SUB_DELIMS$$), "g"),
- NOT_PATH: new RegExp(merge("[^\\%\\/\\:\\@]", UNRESERVED$$, SUB_DELIMS$$), "g"),
- NOT_PATH_NOSCHEME: new RegExp(merge("[^\\%\\/\\@]", UNRESERVED$$, SUB_DELIMS$$), "g"),
- NOT_QUERY: new RegExp(merge("[^\\%]", UNRESERVED$$, SUB_DELIMS$$, "[\\:\\@\\/\\?]", IPRIVATE$$), "g"),
- NOT_FRAGMENT: new RegExp(merge("[^\\%]", UNRESERVED$$, SUB_DELIMS$$, "[\\:\\@\\/\\?]"), "g"),
- ESCAPE: new RegExp(merge("[^]", UNRESERVED$$, SUB_DELIMS$$), "g"),
- UNRESERVED: new RegExp(UNRESERVED$$, "g"),
- OTHER_CHARS: new RegExp(merge("[^\\%]", UNRESERVED$$, RESERVED$$), "g"),
- PCT_ENCODED: new RegExp(PCT_ENCODED$, "g"),
- IPV4ADDRESS: new RegExp("^(" + IPV4ADDRESS$ + ")$"),
- IPV6ADDRESS: new RegExp("^\\[?(" + IPV6ADDRESS$ + ")" + subexp(subexp("\\%25|\\%(?!" + HEXDIG$$ + "{2})") + "(" + ZONEID$ + ")") + "?\\]?$") //RFC 6874, with relaxed parsing rules
- };
-}
-var URI_PROTOCOL = buildExps(false);
-
-var IRI_PROTOCOL = buildExps(true);
-
-var slicedToArray = function () {
- function sliceIterator(arr, i) {
- var _arr = [];
- var _n = true;
- var _d = false;
- var _e = undefined;
-
- try {
- for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
- _arr.push(_s.value);
-
- if (i && _arr.length === i) break;
- }
- } catch (err) {
- _d = true;
- _e = err;
- } finally {
- try {
- if (!_n && _i["return"]) _i["return"]();
- } finally {
- if (_d) throw _e;
- }
- }
-
- return _arr;
- }
-
- return function (arr, i) {
- if (Array.isArray(arr)) {
- return arr;
- } else if (Symbol.iterator in Object(arr)) {
- return sliceIterator(arr, i);
- } else {
- throw new TypeError("Invalid attempt to destructure non-iterable instance");
- }
- };
-}();
-
-
-
-
-
-
-
-
-
-
-
-
-
-var toConsumableArray = function (arr) {
- if (Array.isArray(arr)) {
- for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];
-
- return arr2;
- } else {
- return Array.from(arr);
- }
-};
-
-/** Highest positive signed 32-bit float value */
-
-var maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1
-
-/** Bootstring parameters */
-var base = 36;
-var tMin = 1;
-var tMax = 26;
-var skew = 38;
-var damp = 700;
-var initialBias = 72;
-var initialN = 128; // 0x80
-var delimiter = '-'; // '\x2D'
-
-/** Regular expressions */
-var regexPunycode = /^xn--/;
-var regexNonASCII = /[^\0-\x7E]/; // non-ASCII chars
-var regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g; // RFC 3490 separators
-
-/** Error messages */
-var errors = {
- 'overflow': 'Overflow: input needs wider integers to process',
- 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',
- 'invalid-input': 'Invalid input'
-};
-
-/** Convenience shortcuts */
-var baseMinusTMin = base - tMin;
-var floor = Math.floor;
-var stringFromCharCode = String.fromCharCode;
-
-/*--------------------------------------------------------------------------*/
-
-/**
- * A generic error utility function.
- * @private
- * @param {String} type The error type.
- * @returns {Error} Throws a `RangeError` with the applicable error message.
- */
-function error$1(type) {
- throw new RangeError(errors[type]);
-}
-
-/**
- * A generic `Array#map` utility function.
- * @private
- * @param {Array} array The array to iterate over.
- * @param {Function} callback The function that gets called for every array
- * item.
- * @returns {Array} A new array of values returned by the callback function.
- */
-function map(array, fn) {
- var result = [];
- var length = array.length;
- while (length--) {
- result[length] = fn(array[length]);
- }
- return result;
-}
-
-/**
- * A simple `Array#map`-like wrapper to work with domain name strings or email
- * addresses.
- * @private
- * @param {String} domain The domain name or email address.
- * @param {Function} callback The function that gets called for every
- * character.
- * @returns {Array} A new string of characters returned by the callback
- * function.
- */
-function mapDomain(string, fn) {
- var parts = string.split('@');
- var result = '';
- if (parts.length > 1) {
- // In email addresses, only the domain name should be punycoded. Leave
- // the local part (i.e. everything up to `@`) intact.
- result = parts[0] + '@';
- string = parts[1];
- }
- // Avoid `split(regex)` for IE8 compatibility. See #17.
- string = string.replace(regexSeparators, '\x2E');
- var labels = string.split('.');
- var encoded = map(labels, fn).join('.');
- return result + encoded;
-}
-
-/**
- * Creates an array containing the numeric code points of each Unicode
- * character in the string. While JavaScript uses UCS-2 internally,
- * this function will convert a pair of surrogate halves (each of which
- * UCS-2 exposes as separate characters) into a single code point,
- * matching UTF-16.
- * @see `punycode.ucs2.encode`
- * @see <https://mathiasbynens.be/notes/javascript-encoding>
- * @memberOf punycode.ucs2
- * @name decode
- * @param {String} string The Unicode input string (UCS-2).
- * @returns {Array} The new array of code points.
- */
-function ucs2decode(string) {
- var output = [];
- var counter = 0;
- var length = string.length;
- while (counter < length) {
- var value = string.charCodeAt(counter++);
- if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
- // It's a high surrogate, and there is a next character.
- var extra = string.charCodeAt(counter++);
- if ((extra & 0xFC00) == 0xDC00) {
- // Low surrogate.
- output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
- } else {
- // It's an unmatched surrogate; only append this code unit, in case the
- // next code unit is the high surrogate of a surrogate pair.
- output.push(value);
- counter--;
- }
- } else {
- output.push(value);
- }
- }
- return output;
-}
-
-/**
- * Creates a string based on an array of numeric code points.
- * @see `punycode.ucs2.decode`
- * @memberOf punycode.ucs2
- * @name encode
- * @param {Array} codePoints The array of numeric code points.
- * @returns {String} The new Unicode string (UCS-2).
- */
-var ucs2encode = function ucs2encode(array) {
- return String.fromCodePoint.apply(String, toConsumableArray(array));
-};
-
-/**
- * Converts a basic code point into a digit/integer.
- * @see `digitToBasic()`
- * @private
- * @param {Number} codePoint The basic numeric code point value.
- * @returns {Number} The numeric value of a basic code point (for use in
- * representing integers) in the range `0` to `base - 1`, or `base` if
- * the code point does not represent a value.
- */
-var basicToDigit = function basicToDigit(codePoint) {
- if (codePoint - 0x30 < 0x0A) {
- return codePoint - 0x16;
- }
- if (codePoint - 0x41 < 0x1A) {
- return codePoint - 0x41;
- }
- if (codePoint - 0x61 < 0x1A) {
- return codePoint - 0x61;
- }
- return base;
-};
-
-/**
- * Converts a digit/integer into a basic code point.
- * @see `basicToDigit()`
- * @private
- * @param {Number} digit The numeric value of a basic code point.
- * @returns {Number} The basic code point whose value (when used for
- * representing integers) is `digit`, which needs to be in the range
- * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is
- * used; else, the lowercase form is used. The behavior is undefined
- * if `flag` is non-zero and `digit` has no uppercase form.
- */
-var digitToBasic = function digitToBasic(digit, flag) {
- // 0..25 map to ASCII a..z or A..Z
- // 26..35 map to ASCII 0..9
- return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
-};
-
-/**
- * Bias adaptation function as per section 3.4 of RFC 3492.
- * https://tools.ietf.org/html/rfc3492#section-3.4
- * @private
- */
-var adapt = function adapt(delta, numPoints, firstTime) {
- var k = 0;
- delta = firstTime ? floor(delta / damp) : delta >> 1;
- delta += floor(delta / numPoints);
- for (; /* no initialization */delta > baseMinusTMin * tMax >> 1; k += base) {
- delta = floor(delta / baseMinusTMin);
- }
- return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
-};
-
-/**
- * Converts a Punycode string of ASCII-only symbols to a string of Unicode
- * symbols.
- * @memberOf punycode
- * @param {String} input The Punycode string of ASCII-only symbols.
- * @returns {String} The resulting string of Unicode symbols.
- */
-var decode = function decode(input) {
- // Don't use UCS-2.
- var output = [];
- var inputLength = input.length;
- var i = 0;
- var n = initialN;
- var bias = initialBias;
-
- // Handle the basic code points: let `basic` be the number of input code
- // points before the last delimiter, or `0` if there is none, then copy
- // the first basic code points to the output.
-
- var basic = input.lastIndexOf(delimiter);
- if (basic < 0) {
- basic = 0;
- }
-
- for (var j = 0; j < basic; ++j) {
- // if it's not a basic code point
- if (input.charCodeAt(j) >= 0x80) {
- error$1('not-basic');
- }
- output.push(input.charCodeAt(j));
- }
-
- // Main decoding loop: start just after the last delimiter if any basic code
- // points were copied; start at the beginning otherwise.
-
- for (var index = basic > 0 ? basic + 1 : 0; index < inputLength;) /* no final expression */{
-
- // `index` is the index of the next character to be consumed.
- // Decode a generalized variable-length integer into `delta`,
- // which gets added to `i`. The overflow checking is easier
- // if we increase `i` as we go, then subtract off its starting
- // value at the end to obtain `delta`.
- var oldi = i;
- for (var w = 1, k = base;; /* no condition */k += base) {
-
- if (index >= inputLength) {
- error$1('invalid-input');
- }
-
- var digit = basicToDigit(input.charCodeAt(index++));
-
- if (digit >= base || digit > floor((maxInt - i) / w)) {
- error$1('overflow');
- }
-
- i += digit * w;
- var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;
-
- if (digit < t) {
- break;
- }
-
- var baseMinusT = base - t;
- if (w > floor(maxInt / baseMinusT)) {
- error$1('overflow');
- }
-
- w *= baseMinusT;
- }
-
- var out = output.length + 1;
- bias = adapt(i - oldi, out, oldi == 0);
-
- // `i` was supposed to wrap around from `out` to `0`,
- // incrementing `n` each time, so we'll fix that now:
- if (floor(i / out) > maxInt - n) {
- error$1('overflow');
- }
-
- n += floor(i / out);
- i %= out;
-
- // Insert `n` at position `i` of the output.
- output.splice(i++, 0, n);
- }
-
- return String.fromCodePoint.apply(String, output);
-};
-
-/**
- * Converts a string of Unicode symbols (e.g. a domain name label) to a
- * Punycode string of ASCII-only symbols.
- * @memberOf punycode
- * @param {String} input The string of Unicode symbols.
- * @returns {String} The resulting Punycode string of ASCII-only symbols.
- */
-var encode = function encode(input) {
- var output = [];
-
- // Convert the input in UCS-2 to an array of Unicode code points.
- input = ucs2decode(input);
-
- // Cache the length.
- var inputLength = input.length;
-
- // Initialize the state.
- var n = initialN;
- var delta = 0;
- var bias = initialBias;
-
- // Handle the basic code points.
- var _iteratorNormalCompletion = true;
- var _didIteratorError = false;
- var _iteratorError = undefined;
-
- try {
- for (var _iterator = input[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
- var _currentValue2 = _step.value;
-
- if (_currentValue2 < 0x80) {
- output.push(stringFromCharCode(_currentValue2));
- }
- }
- } catch (err) {
- _didIteratorError = true;
- _iteratorError = err;
- } finally {
- try {
- if (!_iteratorNormalCompletion && _iterator.return) {
- _iterator.return();
- }
- } finally {
- if (_didIteratorError) {
- throw _iteratorError;
- }
- }
- }
-
- var basicLength = output.length;
- var handledCPCount = basicLength;
-
- // `handledCPCount` is the number of code points that have been handled;
- // `basicLength` is the number of basic code points.
-
- // Finish the basic string with a delimiter unless it's empty.
- if (basicLength) {
- output.push(delimiter);
- }
-
- // Main encoding loop:
- while (handledCPCount < inputLength) {
-
- // All non-basic code points < n have been handled already. Find the next
- // larger one:
- var m = maxInt;
- var _iteratorNormalCompletion2 = true;
- var _didIteratorError2 = false;
- var _iteratorError2 = undefined;
-
- try {
- for (var _iterator2 = input[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
- var currentValue = _step2.value;
-
- if (currentValue >= n && currentValue < m) {
- m = currentValue;
- }
- }
-
- // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,
- // but guard against overflow.
- } catch (err) {
- _didIteratorError2 = true;
- _iteratorError2 = err;
- } finally {
- try {
- if (!_iteratorNormalCompletion2 && _iterator2.return) {
- _iterator2.return();
- }
- } finally {
- if (_didIteratorError2) {
- throw _iteratorError2;
- }
- }
- }
-
- var handledCPCountPlusOne = handledCPCount + 1;
- if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
- error$1('overflow');
- }
-
- delta += (m - n) * handledCPCountPlusOne;
- n = m;
-
- var _iteratorNormalCompletion3 = true;
- var _didIteratorError3 = false;
- var _iteratorError3 = undefined;
-
- try {
- for (var _iterator3 = input[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
- var _currentValue = _step3.value;
-
- if (_currentValue < n && ++delta > maxInt) {
- error$1('overflow');
- }
- if (_currentValue == n) {
- // Represent delta as a generalized variable-length integer.
- var q = delta;
- for (var k = base;; /* no condition */k += base) {
- var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;
- if (q < t) {
- break;
- }
- var qMinusT = q - t;
- var baseMinusT = base - t;
- output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)));
- q = floor(qMinusT / baseMinusT);
- }
-
- output.push(stringFromCharCode(digitToBasic(q, 0)));
- bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
- delta = 0;
- ++handledCPCount;
- }
- }
- } catch (err) {
- _didIteratorError3 = true;
- _iteratorError3 = err;
- } finally {
- try {
- if (!_iteratorNormalCompletion3 && _iterator3.return) {
- _iterator3.return();
- }
- } finally {
- if (_didIteratorError3) {
- throw _iteratorError3;
- }
- }
- }
-
- ++delta;
- ++n;
- }
- return output.join('');
-};
-
-/**
- * Converts a Punycode string representing a domain name or an email address
- * to Unicode. Only the Punycoded parts of the input will be converted, i.e.
- * it doesn't matter if you call it on a string that has already been
- * converted to Unicode.
- * @memberOf punycode
- * @param {String} input The Punycoded domain name or email address to
- * convert to Unicode.
- * @returns {String} The Unicode representation of the given Punycode
- * string.
- */
-var toUnicode = function toUnicode(input) {
- return mapDomain(input, function (string) {
- return regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;
- });
-};
-
-/**
- * Converts a Unicode string representing a domain name or an email address to
- * Punycode. Only the non-ASCII parts of the domain name will be converted,
- * i.e. it doesn't matter if you call it with a domain that's already in
- * ASCII.
- * @memberOf punycode
- * @param {String} input The domain name or email address to convert, as a
- * Unicode string.
- * @returns {String} The Punycode representation of the given domain name or
- * email address.
- */
-var toASCII = function toASCII(input) {
- return mapDomain(input, function (string) {
- return regexNonASCII.test(string) ? 'xn--' + encode(string) : string;
- });
-};
-
-/*--------------------------------------------------------------------------*/
-
-/** Define the public API */
-var punycode = {
- /**
- * A string representing the current Punycode.js version number.
- * @memberOf punycode
- * @type String
- */
- 'version': '2.1.0',
- /**
- * An object of methods to convert from JavaScript's internal character
- * representation (UCS-2) to Unicode code points, and back.
- * @see <https://mathiasbynens.be/notes/javascript-encoding>
- * @memberOf punycode
- * @type Object
- */
- 'ucs2': {
- 'decode': ucs2decode,
- 'encode': ucs2encode
- },
- 'decode': decode,
- 'encode': encode,
- 'toASCII': toASCII,
- 'toUnicode': toUnicode
-};
-
-/**
- * URI.js
- *
- * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.
- * @author <a href="mailto:gary.court@gmail.com">Gary Court</a>
- * @see http://github.com/garycourt/uri-js
- */
-/**
- * Copyright 2011 Gary Court. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this list of
- * conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice, this list
- * of conditions and the following disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * The views and conclusions contained in the software and documentation are those of the
- * authors and should not be interpreted as representing official policies, either expressed
- * or implied, of Gary Court.
- */
-var SCHEMES = {};
-function pctEncChar(chr) {
- var c = chr.charCodeAt(0);
- var e = void 0;
- if (c < 16) e = "%0" + c.toString(16).toUpperCase();else if (c < 128) e = "%" + c.toString(16).toUpperCase();else if (c < 2048) e = "%" + (c >> 6 | 192).toString(16).toUpperCase() + "%" + (c & 63 | 128).toString(16).toUpperCase();else e = "%" + (c >> 12 | 224).toString(16).toUpperCase() + "%" + (c >> 6 & 63 | 128).toString(16).toUpperCase() + "%" + (c & 63 | 128).toString(16).toUpperCase();
- return e;
-}
-function pctDecChars(str) {
- var newStr = "";
- var i = 0;
- var il = str.length;
- while (i < il) {
- var c = parseInt(str.substr(i + 1, 2), 16);
- if (c < 128) {
- newStr += String.fromCharCode(c);
- i += 3;
- } else if (c >= 194 && c < 224) {
- if (il - i >= 6) {
- var c2 = parseInt(str.substr(i + 4, 2), 16);
- newStr += String.fromCharCode((c & 31) << 6 | c2 & 63);
- } else {
- newStr += str.substr(i, 6);
- }
- i += 6;
- } else if (c >= 224) {
- if (il - i >= 9) {
- var _c = parseInt(str.substr(i + 4, 2), 16);
- var c3 = parseInt(str.substr(i + 7, 2), 16);
- newStr += String.fromCharCode((c & 15) << 12 | (_c & 63) << 6 | c3 & 63);
- } else {
- newStr += str.substr(i, 9);
- }
- i += 9;
- } else {
- newStr += str.substr(i, 3);
- i += 3;
- }
- }
- return newStr;
-}
-function _normalizeComponentEncoding(components, protocol) {
- function decodeUnreserved(str) {
- var decStr = pctDecChars(str);
- return !decStr.match(protocol.UNRESERVED) ? str : decStr;
- }
- if (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, "");
- if (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);
- if (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);
- if (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);
- if (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);
- if (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);
- return components;
-}
-
-function _stripLeadingZeros(str) {
- return str.replace(/^0*(.*)/, "$1") || "0";
-}
-function _normalizeIPv4(host, protocol) {
- var matches = host.match(protocol.IPV4ADDRESS) || [];
-
- var _matches = slicedToArray(matches, 2),
- address = _matches[1];
-
- if (address) {
- return address.split(".").map(_stripLeadingZeros).join(".");
- } else {
- return host;
- }
-}
-function _normalizeIPv6(host, protocol) {
- var matches = host.match(protocol.IPV6ADDRESS) || [];
-
- var _matches2 = slicedToArray(matches, 3),
- address = _matches2[1],
- zone = _matches2[2];
-
- if (address) {
- var _address$toLowerCase$ = address.toLowerCase().split('::').reverse(),
- _address$toLowerCase$2 = slicedToArray(_address$toLowerCase$, 2),
- last = _address$toLowerCase$2[0],
- first = _address$toLowerCase$2[1];
-
- var firstFields = first ? first.split(":").map(_stripLeadingZeros) : [];
- var lastFields = last.split(":").map(_stripLeadingZeros);
- var isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);
- var fieldCount = isLastFieldIPv4Address ? 7 : 8;
- var lastFieldsStart = lastFields.length - fieldCount;
- var fields = Array(fieldCount);
- for (var x = 0; x < fieldCount; ++x) {
- fields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';
- }
- if (isLastFieldIPv4Address) {
- fields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);
- }
- var allZeroFields = fields.reduce(function (acc, field, index) {
- if (!field || field === "0") {
- var lastLongest = acc[acc.length - 1];
- if (lastLongest && lastLongest.index + lastLongest.length === index) {
- lastLongest.length++;
- } else {
- acc.push({ index: index, length: 1 });
- }
- }
- return acc;
- }, []);
- var longestZeroFields = allZeroFields.sort(function (a, b) {
- return b.length - a.length;
- })[0];
- var newHost = void 0;
- if (longestZeroFields && longestZeroFields.length > 1) {
- var newFirst = fields.slice(0, longestZeroFields.index);
- var newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);
- newHost = newFirst.join(":") + "::" + newLast.join(":");
- } else {
- newHost = fields.join(":");
- }
- if (zone) {
- newHost += "%" + zone;
- }
- return newHost;
- } else {
- return host;
- }
-}
-var URI_PARSE = /^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i;
-var NO_MATCH_IS_UNDEFINED = "".match(/(){0}/)[1] === undefined;
-function parse(uriString) {
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
- var components = {};
- var protocol = options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL;
- if (options.reference === "suffix") uriString = (options.scheme ? options.scheme + ":" : "") + "//" + uriString;
- var matches = uriString.match(URI_PARSE);
- if (matches) {
- if (NO_MATCH_IS_UNDEFINED) {
- //store each component
- components.scheme = matches[1];
- components.userinfo = matches[3];
- components.host = matches[4];
- components.port = parseInt(matches[5], 10);
- components.path = matches[6] || "";
- components.query = matches[7];
- components.fragment = matches[8];
- //fix port number
- if (isNaN(components.port)) {
- components.port = matches[5];
- }
- } else {
- //IE FIX for improper RegExp matching
- //store each component
- components.scheme = matches[1] || undefined;
- components.userinfo = uriString.indexOf("@") !== -1 ? matches[3] : undefined;
- components.host = uriString.indexOf("//") !== -1 ? matches[4] : undefined;
- components.port = parseInt(matches[5], 10);
- components.path = matches[6] || "";
- components.query = uriString.indexOf("?") !== -1 ? matches[7] : undefined;
- components.fragment = uriString.indexOf("#") !== -1 ? matches[8] : undefined;
- //fix port number
- if (isNaN(components.port)) {
- components.port = uriString.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/) ? matches[4] : undefined;
- }
- }
- if (components.host) {
- //normalize IP hosts
- components.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);
- }
- //determine reference type
- if (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {
- components.reference = "same-document";
- } else if (components.scheme === undefined) {
- components.reference = "relative";
- } else if (components.fragment === undefined) {
- components.reference = "absolute";
- } else {
- components.reference = "uri";
- }
- //check for reference errors
- if (options.reference && options.reference !== "suffix" && options.reference !== components.reference) {
- components.error = components.error || "URI is not a " + options.reference + " reference.";
- }
- //find scheme handler
- var schemeHandler = SCHEMES[(options.scheme || components.scheme || "").toLowerCase()];
- //check if scheme can't handle IRIs
- if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {
- //if host component is a domain name
- if (components.host && (options.domainHost || schemeHandler && schemeHandler.domainHost)) {
- //convert Unicode IDN -> ASCII IDN
- try {
- components.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());
- } catch (e) {
- components.error = components.error || "Host's domain name can not be converted to ASCII via punycode: " + e;
- }
- }
- //convert IRI -> URI
- _normalizeComponentEncoding(components, URI_PROTOCOL);
- } else {
- //normalize encodings
- _normalizeComponentEncoding(components, protocol);
- }
- //perform scheme specific parsing
- if (schemeHandler && schemeHandler.parse) {
- schemeHandler.parse(components, options);
- }
- } else {
- components.error = components.error || "URI can not be parsed.";
- }
- return components;
-}
-
-function _recomposeAuthority(components, options) {
- var protocol = options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL;
- var uriTokens = [];
- if (components.userinfo !== undefined) {
- uriTokens.push(components.userinfo);
- uriTokens.push("@");
- }
- if (components.host !== undefined) {
- //normalize IP hosts, add brackets and escape zone separator for IPv6
- uriTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, function (_, $1, $2) {
- return "[" + $1 + ($2 ? "%25" + $2 : "") + "]";
- }));
- }
- if (typeof components.port === "number" || typeof components.port === "string") {
- uriTokens.push(":");
- uriTokens.push(String(components.port));
- }
- return uriTokens.length ? uriTokens.join("") : undefined;
-}
-
-var RDS1 = /^\.\.?\//;
-var RDS2 = /^\/\.(\/|$)/;
-var RDS3 = /^\/\.\.(\/|$)/;
-var RDS5 = /^\/?(?:.|\n)*?(?=\/|$)/;
-function removeDotSegments(input) {
- var output = [];
- while (input.length) {
- if (input.match(RDS1)) {
- input = input.replace(RDS1, "");
- } else if (input.match(RDS2)) {
- input = input.replace(RDS2, "/");
- } else if (input.match(RDS3)) {
- input = input.replace(RDS3, "/");
- output.pop();
- } else if (input === "." || input === "..") {
- input = "";
- } else {
- var im = input.match(RDS5);
- if (im) {
- var s = im[0];
- input = input.slice(s.length);
- output.push(s);
- } else {
- throw new Error("Unexpected dot segment condition");
- }
- }
- }
- return output.join("");
-}
-
-function serialize(components) {
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
- var protocol = options.iri ? IRI_PROTOCOL : URI_PROTOCOL;
- var uriTokens = [];
- //find scheme handler
- var schemeHandler = SCHEMES[(options.scheme || components.scheme || "").toLowerCase()];
- //perform scheme specific serialization
- if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);
- if (components.host) {
- //if host component is an IPv6 address
- if (protocol.IPV6ADDRESS.test(components.host)) {}
- //TODO: normalize IPv6 address as per RFC 5952
-
- //if host component is a domain name
- else if (options.domainHost || schemeHandler && schemeHandler.domainHost) {
- //convert IDN via punycode
- try {
- components.host = !options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host);
- } catch (e) {
- components.error = components.error || "Host's domain name can not be converted to " + (!options.iri ? "ASCII" : "Unicode") + " via punycode: " + e;
- }
- }
- }
- //normalize encoding
- _normalizeComponentEncoding(components, protocol);
- if (options.reference !== "suffix" && components.scheme) {
- uriTokens.push(components.scheme);
- uriTokens.push(":");
- }
- var authority = _recomposeAuthority(components, options);
- if (authority !== undefined) {
- if (options.reference !== "suffix") {
- uriTokens.push("//");
- }
- uriTokens.push(authority);
- if (components.path && components.path.charAt(0) !== "/") {
- uriTokens.push("/");
- }
- }
- if (components.path !== undefined) {
- var s = components.path;
- if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {
- s = removeDotSegments(s);
- }
- if (authority === undefined) {
- s = s.replace(/^\/\//, "/%2F"); //don't allow the path to start with "//"
- }
- uriTokens.push(s);
- }
- if (components.query !== undefined) {
- uriTokens.push("?");
- uriTokens.push(components.query);
- }
- if (components.fragment !== undefined) {
- uriTokens.push("#");
- uriTokens.push(components.fragment);
- }
- return uriTokens.join(""); //merge tokens into a string
-}
-
-function resolveComponents(base, relative) {
- var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
- var skipNormalization = arguments[3];
-
- var target = {};
- if (!skipNormalization) {
- base = parse(serialize(base, options), options); //normalize base components
- relative = parse(serialize(relative, options), options); //normalize relative components
- }
- options = options || {};
- if (!options.tolerant && relative.scheme) {
- target.scheme = relative.scheme;
- //target.authority = relative.authority;
- target.userinfo = relative.userinfo;
- target.host = relative.host;
- target.port = relative.port;
- target.path = removeDotSegments(relative.path || "");
- target.query = relative.query;
- } else {
- if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {
- //target.authority = relative.authority;
- target.userinfo = relative.userinfo;
- target.host = relative.host;
- target.port = relative.port;
- target.path = removeDotSegments(relative.path || "");
- target.query = relative.query;
- } else {
- if (!relative.path) {
- target.path = base.path;
- if (relative.query !== undefined) {
- target.query = relative.query;
- } else {
- target.query = base.query;
- }
- } else {
- if (relative.path.charAt(0) === "/") {
- target.path = removeDotSegments(relative.path);
- } else {
- if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {
- target.path = "/" + relative.path;
- } else if (!base.path) {
- target.path = relative.path;
- } else {
- target.path = base.path.slice(0, base.path.lastIndexOf("/") + 1) + relative.path;
- }
- target.path = removeDotSegments(target.path);
- }
- target.query = relative.query;
- }
- //target.authority = base.authority;
- target.userinfo = base.userinfo;
- target.host = base.host;
- target.port = base.port;
- }
- target.scheme = base.scheme;
- }
- target.fragment = relative.fragment;
- return target;
-}
-
-function resolve(baseURI, relativeURI, options) {
- var schemelessOptions = assign({ scheme: 'null' }, options);
- return serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);
-}
-
-function normalize(uri, options) {
- if (typeof uri === "string") {
- uri = serialize(parse(uri, options), options);
- } else if (typeOf(uri) === "object") {
- uri = parse(serialize(uri, options), options);
- }
- return uri;
-}
-
-function equal(uriA, uriB, options) {
- if (typeof uriA === "string") {
- uriA = serialize(parse(uriA, options), options);
- } else if (typeOf(uriA) === "object") {
- uriA = serialize(uriA, options);
- }
- if (typeof uriB === "string") {
- uriB = serialize(parse(uriB, options), options);
- } else if (typeOf(uriB) === "object") {
- uriB = serialize(uriB, options);
- }
- return uriA === uriB;
-}
-
-function escapeComponent(str, options) {
- return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE, pctEncChar);
-}
-
-function unescapeComponent(str, options) {
- return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED, pctDecChars);
-}
-
-var handler = {
- scheme: "http",
- domainHost: true,
- parse: function parse(components, options) {
- //report missing host
- if (!components.host) {
- components.error = components.error || "HTTP URIs must have a host.";
- }
- return components;
- },
- serialize: function serialize(components, options) {
- var secure = String(components.scheme).toLowerCase() === "https";
- //normalize the default port
- if (components.port === (secure ? 443 : 80) || components.port === "") {
- components.port = undefined;
- }
- //normalize the empty path
- if (!components.path) {
- components.path = "/";
- }
- //NOTE: We do not parse query strings for HTTP URIs
- //as WWW Form Url Encoded query strings are part of the HTML4+ spec,
- //and not the HTTP spec.
- return components;
- }
-};
-
-var handler$1 = {
- scheme: "https",
- domainHost: handler.domainHost,
- parse: handler.parse,
- serialize: handler.serialize
-};
-
-function isSecure(wsComponents) {
- return typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === "wss";
-}
-//RFC 6455
-var handler$2 = {
- scheme: "ws",
- domainHost: true,
- parse: function parse(components, options) {
- var wsComponents = components;
- //indicate if the secure flag is set
- wsComponents.secure = isSecure(wsComponents);
- //construct resouce name
- wsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');
- wsComponents.path = undefined;
- wsComponents.query = undefined;
- return wsComponents;
- },
- serialize: function serialize(wsComponents, options) {
- //normalize the default port
- if (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === "") {
- wsComponents.port = undefined;
- }
- //ensure scheme matches secure flag
- if (typeof wsComponents.secure === 'boolean') {
- wsComponents.scheme = wsComponents.secure ? 'wss' : 'ws';
- wsComponents.secure = undefined;
- }
- //reconstruct path from resource name
- if (wsComponents.resourceName) {
- var _wsComponents$resourc = wsComponents.resourceName.split('?'),
- _wsComponents$resourc2 = slicedToArray(_wsComponents$resourc, 2),
- path = _wsComponents$resourc2[0],
- query = _wsComponents$resourc2[1];
-
- wsComponents.path = path && path !== '/' ? path : undefined;
- wsComponents.query = query;
- wsComponents.resourceName = undefined;
- }
- //forbid fragment component
- wsComponents.fragment = undefined;
- return wsComponents;
- }
-};
-
-var handler$3 = {
- scheme: "wss",
- domainHost: handler$2.domainHost,
- parse: handler$2.parse,
- serialize: handler$2.serialize
-};
-
-var O = {};
-var isIRI = true;
-//RFC 3986
-var UNRESERVED$$ = "[A-Za-z0-9\\-\\.\\_\\~" + (isIRI ? "\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF" : "") + "]";
-var HEXDIG$$ = "[0-9A-Fa-f]"; //case-insensitive
-var PCT_ENCODED$ = subexp(subexp("%[EFef]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%[89A-Fa-f]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%" + HEXDIG$$ + HEXDIG$$)); //expanded
-//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =
-//const ATEXT$$ = "[A-Za-z0-9\\!\\#\\$\\%\\&\\'\\*\\+\\-\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~]";
-//const WSP$$ = "[\\x20\\x09]";
-//const OBS_QTEXT$$ = "[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F]"; //(%d1-8 / %d11-12 / %d14-31 / %d127)
-//const QTEXT$$ = merge("[\\x21\\x23-\\x5B\\x5D-\\x7E]", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext
-//const VCHAR$$ = "[\\x21-\\x7E]";
-//const WSP$$ = "[\\x20\\x09]";
-//const OBS_QP$ = subexp("\\\\" + merge("[\\x00\\x0D\\x0A]", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext
-//const FWS$ = subexp(subexp(WSP$$ + "*" + "\\x0D\\x0A") + "?" + WSP$$ + "+");
-//const QUOTED_PAIR$ = subexp(subexp("\\\\" + subexp(VCHAR$$ + "|" + WSP$$)) + "|" + OBS_QP$);
-//const QUOTED_STRING$ = subexp('\\"' + subexp(FWS$ + "?" + QCONTENT$) + "*" + FWS$ + "?" + '\\"');
-var ATEXT$$ = "[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]";
-var QTEXT$$ = "[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]";
-var VCHAR$$ = merge(QTEXT$$, "[\\\"\\\\]");
-var SOME_DELIMS$$ = "[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]";
-var UNRESERVED = new RegExp(UNRESERVED$$, "g");
-var PCT_ENCODED = new RegExp(PCT_ENCODED$, "g");
-var NOT_LOCAL_PART = new RegExp(merge("[^]", ATEXT$$, "[\\.]", '[\\"]', VCHAR$$), "g");
-var NOT_HFNAME = new RegExp(merge("[^]", UNRESERVED$$, SOME_DELIMS$$), "g");
-var NOT_HFVALUE = NOT_HFNAME;
-function decodeUnreserved(str) {
- var decStr = pctDecChars(str);
- return !decStr.match(UNRESERVED) ? str : decStr;
-}
-var handler$4 = {
- scheme: "mailto",
- parse: function parse$$1(components, options) {
- var mailtoComponents = components;
- var to = mailtoComponents.to = mailtoComponents.path ? mailtoComponents.path.split(",") : [];
- mailtoComponents.path = undefined;
- if (mailtoComponents.query) {
- var unknownHeaders = false;
- var headers = {};
- var hfields = mailtoComponents.query.split("&");
- for (var x = 0, xl = hfields.length; x < xl; ++x) {
- var hfield = hfields[x].split("=");
- switch (hfield[0]) {
- case "to":
- var toAddrs = hfield[1].split(",");
- for (var _x = 0, _xl = toAddrs.length; _x < _xl; ++_x) {
- to.push(toAddrs[_x]);
- }
- break;
- case "subject":
- mailtoComponents.subject = unescapeComponent(hfield[1], options);
- break;
- case "body":
- mailtoComponents.body = unescapeComponent(hfield[1], options);
- break;
- default:
- unknownHeaders = true;
- headers[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);
- break;
- }
- }
- if (unknownHeaders) mailtoComponents.headers = headers;
- }
- mailtoComponents.query = undefined;
- for (var _x2 = 0, _xl2 = to.length; _x2 < _xl2; ++_x2) {
- var addr = to[_x2].split("@");
- addr[0] = unescapeComponent(addr[0]);
- if (!options.unicodeSupport) {
- //convert Unicode IDN -> ASCII IDN
- try {
- addr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());
- } catch (e) {
- mailtoComponents.error = mailtoComponents.error || "Email address's domain name can not be converted to ASCII via punycode: " + e;
- }
- } else {
- addr[1] = unescapeComponent(addr[1], options).toLowerCase();
- }
- to[_x2] = addr.join("@");
- }
- return mailtoComponents;
- },
- serialize: function serialize$$1(mailtoComponents, options) {
- var components = mailtoComponents;
- var to = toArray(mailtoComponents.to);
- if (to) {
- for (var x = 0, xl = to.length; x < xl; ++x) {
- var toAddr = String(to[x]);
- var atIdx = toAddr.lastIndexOf("@");
- var localPart = toAddr.slice(0, atIdx).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);
- var domain = toAddr.slice(atIdx + 1);
- //convert IDN via punycode
- try {
- domain = !options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain);
- } catch (e) {
- components.error = components.error || "Email address's domain name can not be converted to " + (!options.iri ? "ASCII" : "Unicode") + " via punycode: " + e;
- }
- to[x] = localPart + "@" + domain;
- }
- components.path = to.join(",");
- }
- var headers = mailtoComponents.headers = mailtoComponents.headers || {};
- if (mailtoComponents.subject) headers["subject"] = mailtoComponents.subject;
- if (mailtoComponents.body) headers["body"] = mailtoComponents.body;
- var fields = [];
- for (var name in headers) {
- if (headers[name] !== O[name]) {
- fields.push(name.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) + "=" + headers[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar));
- }
- }
- if (fields.length) {
- components.query = fields.join("&");
- }
- return components;
- }
-};
-
-var URN_PARSE = /^([^\:]+)\:(.*)/;
-//RFC 2141
-var handler$5 = {
- scheme: "urn",
- parse: function parse$$1(components, options) {
- var matches = components.path && components.path.match(URN_PARSE);
- var urnComponents = components;
- if (matches) {
- var scheme = options.scheme || urnComponents.scheme || "urn";
- var nid = matches[1].toLowerCase();
- var nss = matches[2];
- var urnScheme = scheme + ":" + (options.nid || nid);
- var schemeHandler = SCHEMES[urnScheme];
- urnComponents.nid = nid;
- urnComponents.nss = nss;
- urnComponents.path = undefined;
- if (schemeHandler) {
- urnComponents = schemeHandler.parse(urnComponents, options);
- }
- } else {
- urnComponents.error = urnComponents.error || "URN can not be parsed.";
- }
- return urnComponents;
- },
- serialize: function serialize$$1(urnComponents, options) {
- var scheme = options.scheme || urnComponents.scheme || "urn";
- var nid = urnComponents.nid;
- var urnScheme = scheme + ":" + (options.nid || nid);
- var schemeHandler = SCHEMES[urnScheme];
- if (schemeHandler) {
- urnComponents = schemeHandler.serialize(urnComponents, options);
- }
- var uriComponents = urnComponents;
- var nss = urnComponents.nss;
- uriComponents.path = (nid || options.nid) + ":" + nss;
- return uriComponents;
- }
-};
-
-var UUID = /^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/;
-//RFC 4122
-var handler$6 = {
- scheme: "urn:uuid",
- parse: function parse(urnComponents, options) {
- var uuidComponents = urnComponents;
- uuidComponents.uuid = uuidComponents.nss;
- uuidComponents.nss = undefined;
- if (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {
- uuidComponents.error = uuidComponents.error || "UUID is not valid.";
- }
- return uuidComponents;
- },
- serialize: function serialize(uuidComponents, options) {
- var urnComponents = uuidComponents;
- //normalize UUID
- urnComponents.nss = (uuidComponents.uuid || "").toLowerCase();
- return urnComponents;
- }
-};
-
-SCHEMES[handler.scheme] = handler;
-SCHEMES[handler$1.scheme] = handler$1;
-SCHEMES[handler$2.scheme] = handler$2;
-SCHEMES[handler$3.scheme] = handler$3;
-SCHEMES[handler$4.scheme] = handler$4;
-SCHEMES[handler$5.scheme] = handler$5;
-SCHEMES[handler$6.scheme] = handler$6;
-
-exports.SCHEMES = SCHEMES;
-exports.pctEncChar = pctEncChar;
-exports.pctDecChars = pctDecChars;
-exports.parse = parse;
-exports.removeDotSegments = removeDotSegments;
-exports.serialize = serialize;
-exports.resolveComponents = resolveComponents;
-exports.resolve = resolve;
-exports.normalize = normalize;
-exports.equal = equal;
-exports.escapeComponent = escapeComponent;
-exports.unescapeComponent = unescapeComponent;
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-})));
-
-
-},{}],"ajv":[function(require,module,exports){
-'use strict';
-
-var compileSchema = require('./compile')
- , resolve = require('./compile/resolve')
- , Cache = require('./cache')
- , SchemaObject = require('./compile/schema_obj')
- , stableStringify = require('fast-json-stable-stringify')
- , formats = require('./compile/formats')
- , rules = require('./compile/rules')
- , $dataMetaSchema = require('./data')
- , util = require('./compile/util');
-
-module.exports = Ajv;
-
-Ajv.prototype.validate = validate;
-Ajv.prototype.compile = compile;
-Ajv.prototype.addSchema = addSchema;
-Ajv.prototype.addMetaSchema = addMetaSchema;
-Ajv.prototype.validateSchema = validateSchema;
-Ajv.prototype.getSchema = getSchema;
-Ajv.prototype.removeSchema = removeSchema;
-Ajv.prototype.addFormat = addFormat;
-Ajv.prototype.errorsText = errorsText;
-
-Ajv.prototype._addSchema = _addSchema;
-Ajv.prototype._compile = _compile;
-
-Ajv.prototype.compileAsync = require('./compile/async');
-var customKeyword = require('./keyword');
-Ajv.prototype.addKeyword = customKeyword.add;
-Ajv.prototype.getKeyword = customKeyword.get;
-Ajv.prototype.removeKeyword = customKeyword.remove;
-Ajv.prototype.validateKeyword = customKeyword.validate;
-
-var errorClasses = require('./compile/error_classes');
-Ajv.ValidationError = errorClasses.Validation;
-Ajv.MissingRefError = errorClasses.MissingRef;
-Ajv.$dataMetaSchema = $dataMetaSchema;
-
-var META_SCHEMA_ID = 'http://json-schema.org/draft-07/schema';
-
-var META_IGNORE_OPTIONS = [ 'removeAdditional', 'useDefaults', 'coerceTypes', 'strictDefaults' ];
-var META_SUPPORT_DATA = ['/properties'];
-
-/**
- * Creates validator instance.
- * Usage: `Ajv(opts)`
- * @param {Object} opts optional options
- * @return {Object} ajv instance
- */
-function Ajv(opts) {
- if (!(this instanceof Ajv)) return new Ajv(opts);
- opts = this._opts = util.copy(opts) || {};
- setLogger(this);
- this._schemas = {};
- this._refs = {};
- this._fragments = {};
- this._formats = formats(opts.format);
-
- this._cache = opts.cache || new Cache;
- this._loadingSchemas = {};
- this._compilations = [];
- this.RULES = rules();
- this._getId = chooseGetId(opts);
-
- opts.loopRequired = opts.loopRequired || Infinity;
- if (opts.errorDataPath == 'property') opts._errorDataPathProperty = true;
- if (opts.serialize === undefined) opts.serialize = stableStringify;
- this._metaOpts = getMetaSchemaOptions(this);
-
- if (opts.formats) addInitialFormats(this);
- if (opts.keywords) addInitialKeywords(this);
- addDefaultMetaSchema(this);
- if (typeof opts.meta == 'object') this.addMetaSchema(opts.meta);
- if (opts.nullable) this.addKeyword('nullable', {metaSchema: {type: 'boolean'}});
- addInitialSchemas(this);
-}
-
-
-
-/**
- * Validate data using schema
- * Schema will be compiled and cached (using serialized JSON as key. [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used to serialize.
- * @this Ajv
- * @param {String|Object} schemaKeyRef key, ref or schema object
- * @param {Any} data to be validated
- * @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`).
- */
-function validate(schemaKeyRef, data) {
- var v;
- if (typeof schemaKeyRef == 'string') {
- v = this.getSchema(schemaKeyRef);
- if (!v) throw new Error('no schema with key or ref "' + schemaKeyRef + '"');
- } else {
- var schemaObj = this._addSchema(schemaKeyRef);
- v = schemaObj.validate || this._compile(schemaObj);
- }
-
- var valid = v(data);
- if (v.$async !== true) this.errors = v.errors;
- return valid;
-}
-
-
-/**
- * Create validating function for passed schema.
- * @this Ajv
- * @param {Object} schema schema object
- * @param {Boolean} _meta true if schema is a meta-schema. Used internally to compile meta schemas of custom keywords.
- * @return {Function} validating function
- */
-function compile(schema, _meta) {
- var schemaObj = this._addSchema(schema, undefined, _meta);
- return schemaObj.validate || this._compile(schemaObj);
-}
-
-
-/**
- * Adds schema to the instance.
- * @this Ajv
- * @param {Object|Array} schema schema or array of schemas. If array is passed, `key` and other parameters will be ignored.
- * @param {String} key Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.
- * @param {Boolean} _skipValidation true to skip schema validation. Used internally, option validateSchema should be used instead.
- * @param {Boolean} _meta true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.
- * @return {Ajv} this for method chaining
- */
-function addSchema(schema, key, _skipValidation, _meta) {
- if (Array.isArray(schema)){
- for (var i=0; i<schema.length; i++) this.addSchema(schema[i], undefined, _skipValidation, _meta);
- return this;
- }
- var id = this._getId(schema);
- if (id !== undefined && typeof id != 'string')
- throw new Error('schema id must be string');
- key = resolve.normalizeId(key || id);
- checkUnique(this, key);
- this._schemas[key] = this._addSchema(schema, _skipValidation, _meta, true);
- return this;
-}
-
-
-/**
- * Add schema that will be used to validate other schemas
- * options in META_IGNORE_OPTIONS are alway set to false
- * @this Ajv
- * @param {Object} schema schema object
- * @param {String} key optional schema key
- * @param {Boolean} skipValidation true to skip schema validation, can be used to override validateSchema option for meta-schema
- * @return {Ajv} this for method chaining
- */
-function addMetaSchema(schema, key, skipValidation) {
- this.addSchema(schema, key, skipValidation, true);
- return this;
-}
-
-
-/**
- * Validate schema
- * @this Ajv
- * @param {Object} schema schema to validate
- * @param {Boolean} throwOrLogError pass true to throw (or log) an error if invalid
- * @return {Boolean} true if schema is valid
- */
-function validateSchema(schema, throwOrLogError) {
- var $schema = schema.$schema;
- if ($schema !== undefined && typeof $schema != 'string')
- throw new Error('$schema must be a string');
- $schema = $schema || this._opts.defaultMeta || defaultMeta(this);
- if (!$schema) {
- this.logger.warn('meta-schema not available');
- this.errors = null;
- return true;
- }
- var valid = this.validate($schema, schema);
- if (!valid && throwOrLogError) {
- var message = 'schema is invalid: ' + this.errorsText();
- if (this._opts.validateSchema == 'log') this.logger.error(message);
- else throw new Error(message);
- }
- return valid;
-}
-
-
-function defaultMeta(self) {
- var meta = self._opts.meta;
- self._opts.defaultMeta = typeof meta == 'object'
- ? self._getId(meta) || meta
- : self.getSchema(META_SCHEMA_ID)
- ? META_SCHEMA_ID
- : undefined;
- return self._opts.defaultMeta;
-}
-
-
-/**
- * Get compiled schema from the instance by `key` or `ref`.
- * @this Ajv
- * @param {String} keyRef `key` that was passed to `addSchema` or full schema reference (`schema.id` or resolved id).
- * @return {Function} schema validating function (with property `schema`).
- */
-function getSchema(keyRef) {
- var schemaObj = _getSchemaObj(this, keyRef);
- switch (typeof schemaObj) {
- case 'object': return schemaObj.validate || this._compile(schemaObj);
- case 'string': return this.getSchema(schemaObj);
- case 'undefined': return _getSchemaFragment(this, keyRef);
- }
-}
-
-
-function _getSchemaFragment(self, ref) {
- var res = resolve.schema.call(self, { schema: {} }, ref);
- if (res) {
- var schema = res.schema
- , root = res.root
- , baseId = res.baseId;
- var v = compileSchema.call(self, schema, root, undefined, baseId);
- self._fragments[ref] = new SchemaObject({
- ref: ref,
- fragment: true,
- schema: schema,
- root: root,
- baseId: baseId,
- validate: v
- });
- return v;
- }
-}
-
-
-function _getSchemaObj(self, keyRef) {
- keyRef = resolve.normalizeId(keyRef);
- return self._schemas[keyRef] || self._refs[keyRef] || self._fragments[keyRef];
-}
-
-
-/**
- * Remove cached schema(s).
- * If no parameter is passed all schemas but meta-schemas are removed.
- * If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.
- * Even if schema is referenced by other schemas it still can be removed as other schemas have local references.
- * @this Ajv
- * @param {String|Object|RegExp} schemaKeyRef key, ref, pattern to match key/ref or schema object
- * @return {Ajv} this for method chaining
- */
-function removeSchema(schemaKeyRef) {
- if (schemaKeyRef instanceof RegExp) {
- _removeAllSchemas(this, this._schemas, schemaKeyRef);
- _removeAllSchemas(this, this._refs, schemaKeyRef);
- return this;
- }
- switch (typeof schemaKeyRef) {
- case 'undefined':
- _removeAllSchemas(this, this._schemas);
- _removeAllSchemas(this, this._refs);
- this._cache.clear();
- return this;
- case 'string':
- var schemaObj = _getSchemaObj(this, schemaKeyRef);
- if (schemaObj) this._cache.del(schemaObj.cacheKey);
- delete this._schemas[schemaKeyRef];
- delete this._refs[schemaKeyRef];
- return this;
- case 'object':
- var serialize = this._opts.serialize;
- var cacheKey = serialize ? serialize(schemaKeyRef) : schemaKeyRef;
- this._cache.del(cacheKey);
- var id = this._getId(schemaKeyRef);
- if (id) {
- id = resolve.normalizeId(id);
- delete this._schemas[id];
- delete this._refs[id];
- }
- }
- return this;
-}
-
-
-function _removeAllSchemas(self, schemas, regex) {
- for (var keyRef in schemas) {
- var schemaObj = schemas[keyRef];
- if (!schemaObj.meta && (!regex || regex.test(keyRef))) {
- self._cache.del(schemaObj.cacheKey);
- delete schemas[keyRef];
- }
- }
-}
-
-
-/* @this Ajv */
-function _addSchema(schema, skipValidation, meta, shouldAddSchema) {
- if (typeof schema != 'object' && typeof schema != 'boolean')
- throw new Error('schema should be object or boolean');
- var serialize = this._opts.serialize;
- var cacheKey = serialize ? serialize(schema) : schema;
- var cached = this._cache.get(cacheKey);
- if (cached) return cached;
-
- shouldAddSchema = shouldAddSchema || this._opts.addUsedSchema !== false;
-
- var id = resolve.normalizeId(this._getId(schema));
- if (id && shouldAddSchema) checkUnique(this, id);
-
- var willValidate = this._opts.validateSchema !== false && !skipValidation;
- var recursiveMeta;
- if (willValidate && !(recursiveMeta = id && id == resolve.normalizeId(schema.$schema)))
- this.validateSchema(schema, true);
-
- var localRefs = resolve.ids.call(this, schema);
-
- var schemaObj = new SchemaObject({
- id: id,
- schema: schema,
- localRefs: localRefs,
- cacheKey: cacheKey,
- meta: meta
- });
-
- if (id[0] != '#' && shouldAddSchema) this._refs[id] = schemaObj;
- this._cache.put(cacheKey, schemaObj);
-
- if (willValidate && recursiveMeta) this.validateSchema(schema, true);
-
- return schemaObj;
-}
-
-
-/* @this Ajv */
-function _compile(schemaObj, root) {
- if (schemaObj.compiling) {
- schemaObj.validate = callValidate;
- callValidate.schema = schemaObj.schema;
- callValidate.errors = null;
- callValidate.root = root ? root : callValidate;
- if (schemaObj.schema.$async === true)
- callValidate.$async = true;
- return callValidate;
- }
- schemaObj.compiling = true;
-
- var currentOpts;
- if (schemaObj.meta) {
- currentOpts = this._opts;
- this._opts = this._metaOpts;
- }
-
- var v;
- try { v = compileSchema.call(this, schemaObj.schema, root, schemaObj.localRefs); }
- catch(e) {
- delete schemaObj.validate;
- throw e;
- }
- finally {
- schemaObj.compiling = false;
- if (schemaObj.meta) this._opts = currentOpts;
- }
-
- schemaObj.validate = v;
- schemaObj.refs = v.refs;
- schemaObj.refVal = v.refVal;
- schemaObj.root = v.root;
- return v;
-
-
- /* @this {*} - custom context, see passContext option */
- function callValidate() {
- /* jshint validthis: true */
- var _validate = schemaObj.validate;
- var result = _validate.apply(this, arguments);
- callValidate.errors = _validate.errors;
- return result;
- }
-}
-
-
-function chooseGetId(opts) {
- switch (opts.schemaId) {
- case 'auto': return _get$IdOrId;
- case 'id': return _getId;
- default: return _get$Id;
- }
-}
-
-/* @this Ajv */
-function _getId(schema) {
- if (schema.$id) this.logger.warn('schema $id ignored', schema.$id);
- return schema.id;
-}
-
-/* @this Ajv */
-function _get$Id(schema) {
- if (schema.id) this.logger.warn('schema id ignored', schema.id);
- return schema.$id;
-}
-
-
-function _get$IdOrId(schema) {
- if (schema.$id && schema.id && schema.$id != schema.id)
- throw new Error('schema $id is different from id');
- return schema.$id || schema.id;
-}
-
-
-/**
- * Convert array of error message objects to string
- * @this Ajv
- * @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`.
- * @return {String} human readable string with all errors descriptions
- */
-function errorsText(errors, options) {
- errors = errors || this.errors;
- if (!errors) return 'No errors';
- options = options || {};
- var separator = options.separator === undefined ? ', ' : options.separator;
- var dataVar = options.dataVar === undefined ? 'data' : options.dataVar;
-
- var text = '';
- for (var i=0; i<errors.length; i++) {
- var e = errors[i];
- if (e) text += dataVar + e.dataPath + ' ' + e.message + separator;
- }
- return text.slice(0, -separator.length);
-}
-
-
-/**
- * Add custom format
- * @this Ajv
- * @param {String} name format name
- * @param {String|RegExp|Function} format string is converted to RegExp; function should return boolean (true when valid)
- * @return {Ajv} this for method chaining
- */
-function addFormat(name, format) {
- if (typeof format == 'string') format = new RegExp(format);
- this._formats[name] = format;
- return this;
-}
-
-
-function addDefaultMetaSchema(self) {
- var $dataSchema;
- if (self._opts.$data) {
- $dataSchema = require('./refs/data.json');
- self.addMetaSchema($dataSchema, $dataSchema.$id, true);
- }
- if (self._opts.meta === false) return;
- var metaSchema = require('./refs/json-schema-draft-07.json');
- if (self._opts.$data) metaSchema = $dataMetaSchema(metaSchema, META_SUPPORT_DATA);
- self.addMetaSchema(metaSchema, META_SCHEMA_ID, true);
- self._refs['http://json-schema.org/schema'] = META_SCHEMA_ID;
-}
-
-
-function addInitialSchemas(self) {
- var optsSchemas = self._opts.schemas;
- if (!optsSchemas) return;
- if (Array.isArray(optsSchemas)) self.addSchema(optsSchemas);
- else for (var key in optsSchemas) self.addSchema(optsSchemas[key], key);
-}
-
-
-function addInitialFormats(self) {
- for (var name in self._opts.formats) {
- var format = self._opts.formats[name];
- self.addFormat(name, format);
- }
-}
-
-
-function addInitialKeywords(self) {
- for (var name in self._opts.keywords) {
- var keyword = self._opts.keywords[name];
- self.addKeyword(name, keyword);
- }
-}
-
-
-function checkUnique(self, id) {
- if (self._schemas[id] || self._refs[id])
- throw new Error('schema with key or id "' + id + '" already exists');
-}
-
-
-function getMetaSchemaOptions(self) {
- var metaOpts = util.copy(self._opts);
- for (var i=0; i<META_IGNORE_OPTIONS.length; i++)
- delete metaOpts[META_IGNORE_OPTIONS[i]];
- return metaOpts;
-}
-
-
-function setLogger(self) {
- var logger = self._opts.logger;
- if (logger === false) {
- self.logger = {log: noop, warn: noop, error: noop};
- } else {
- if (logger === undefined) logger = console;
- if (!(typeof logger == 'object' && logger.log && logger.warn && logger.error))
- throw new Error('logger must implement log, warn and error methods');
- self.logger = logger;
- }
-}
-
-
-function noop() {}
-
-},{"./cache":1,"./compile":5,"./compile/async":2,"./compile/error_classes":3,"./compile/formats":4,"./compile/resolve":6,"./compile/rules":7,"./compile/schema_obj":8,"./compile/util":10,"./data":11,"./keyword":39,"./refs/data.json":40,"./refs/json-schema-draft-07.json":41,"fast-json-stable-stringify":43}]},{},[])("ajv")
-});
diff --git a/deps/npm/node_modules/ajv/dist/ajv.min.js b/deps/npm/node_modules/ajv/dist/ajv.min.js
deleted file mode 100644
index 7a60eb8a2bd..00000000000
--- a/deps/npm/node_modules/ajv/dist/ajv.min.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/* ajv 6.12.6: Another JSON Schema Validator */
-!function(e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Ajv=e()}(function(){return function o(i,n,l){function c(r,e){if(!n[r]){if(!i[r]){var t="function"==typeof require&&require;if(!e&&t)return t(r,!0);if(u)return u(r,!0);var a=new Error("Cannot find module '"+r+"'");throw a.code="MODULE_NOT_FOUND",a}var s=n[r]={exports:{}};i[r][0].call(s.exports,function(e){return c(i[r][1][e]||e)},s,s.exports,o,i,n,l)}return n[r].exports}for(var u="function"==typeof require&&require,e=0;e<l.length;e++)c(l[e]);return c}({1:[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={}}},{}],2:[function(e,r,t){"use strict";var a=e("./error_classes").MissingRef;function s(r,n,t){var l=this;if("function"!=typeof this._opts.loadSchema)throw new Error("options.loadSchema should be a function");"function"==typeof n&&(t=n,n=void 0);var e=c(r).then(function(){var e=l._addSchema(r,void 0,n);return e.validate||function o(i){try{return l._compile(i)}catch(e){if(e instanceof a)return r(e);throw e}function r(e){var r=e.missingSchema;if(s(r))throw new Error("Schema "+r+" is loaded but "+e.missingRef+" cannot be resolved");var t=l._loadingSchemas[r];return t||(t=l._loadingSchemas[r]=l._opts.loadSchema(r)).then(a,a),t.then(function(e){if(!s(r))return c(e).then(function(){s(r)||l.addSchema(e,r,void 0,n)})}).then(function(){return o(i)});function a(){delete l._loadingSchemas[r]}function s(e){return l._refs[e]||l._schemas[e]}}}(e)});return t&&e.then(function(e){t(null,e)},t),e;function c(e){var r=e.$schema;return r&&!l.getSchema(r)?s.call(l,{$ref:r},!0):Promise.resolve()}}r.exports=s},{"./error_classes":3}],3:[function(e,r,t){"use strict";var a=e("./resolve");function s(e,r,t){this.message=t||s.message(e,r),this.missingRef=a.url(e,r),this.missingSchema=a.normalizeId(a.fullPath(this.missingRef))}function o(e){return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e}r.exports={Validation:o(function(e){this.message="validation failed",this.errors=e,this.ajv=this.validation=!0}),MissingRef:o(s)},s.message=function(e,r){return"can't resolve reference "+r+" from id "+e}},{"./resolve":6}],4:[function(e,r,t){"use strict";var a=e("./util"),o=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,i=[0,31,28,31,30,31,30,31,31,30,31,30,31],n=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,s=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,l=/^(?:[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,c=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,u=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,h=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,d=/^(?:\/(?:[^~/]|~0|~1)*)*$/,p=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,f=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;function m(e){return a.copy(m[e="full"==e?"full":"fast"])}function v(e){var r=e.match(o);if(!r)return!1;var t,a=+r[2],s=+r[3];return 1<=a&&a<=12&&1<=s&&s<=(2!=a||((t=+r[1])%4!=0||t%100==0&&t%400!=0)?i[a]:29)}function y(e,r){var t=e.match(n);if(!t)return!1;var a=t[1],s=t[2],o=t[3];return(a<=23&&s<=59&&o<=59||23==a&&59==s&&60==o)&&(!r||t[5])}(r.exports=m).fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\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|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":c,url:u,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:s,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:w,uuid:h,"json-pointer":d,"json-pointer-uri-fragment":p,"relative-json-pointer":f},m.full={date:v,time:y,"date-time":function(e){var r=e.split(g);return 2==r.length&&v(r[0])&&y(r[1],!0)},uri:function(e){return P.test(e)&&l.test(e)},"uri-reference":/^(?:[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,"uri-template":c,url:u,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:s,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:w,uuid:h,"json-pointer":d,"json-pointer-uri-fragment":p,"relative-json-pointer":f};var g=/t|\s/i;var P=/\/|:/;var E=/[^\\]\\Z/;function w(e){if(E.test(e))return!1;try{return new RegExp(e),!0}catch(e){return!1}}},{"./util":10}],5:[function(e,r,t){"use strict";var R=e("./resolve"),$=e("./util"),j=e("./error_classes"),D=e("fast-json-stable-stringify"),O=e("../dotjs/validate"),I=$.ucs2length,A=e("fast-deep-equal"),k=j.Validation;function C(e,c,u,r){var d=this,p=this._opts,h=[void 0],f={},l=[],t={},m=[],a={},v=[],s=function(e,r,t){var a=L.call(this,e,r,t);return 0<=a?{index:a,compiling:!0}:{index:a=this._compilations.length,compiling:!(this._compilations[a]={schema:e,root:r,baseId:t})}}.call(this,e,c=c||{schema:e,refVal:h,refs:f},r),o=this._compilations[s.index];if(s.compiling)return o.callValidate=P;var y=this._formats,g=this.RULES;try{var i=E(e,c,u,r);o.validate=i;var n=o.callValidate;return n&&(n.schema=i.schema,n.errors=null,n.refs=i.refs,n.refVal=i.refVal,n.root=i.root,n.$async=i.$async,p.sourceCode&&(n.source=i.source)),i}finally{(function(e,r,t){var a=L.call(this,e,r,t);0<=a&&this._compilations.splice(a,1)}).call(this,e,c,r)}function P(){var e=o.validate,r=e.apply(this,arguments);return P.errors=e.errors,r}function E(e,r,t,a){var s=!r||r&&r.schema==e;if(r.schema!=c.schema)return C.call(d,e,r,t,a);var o=!0===e.$async,i=O({isTop:!0,schema:e,isRoot:s,baseId:a,root:r,schemaPath:"",errSchemaPath:"#",errorPath:'""',MissingRefError:j.MissingRef,RULES:g,validate:O,util:$,resolve:R,resolveRef:w,usePattern:_,useDefault:F,useCustomRule:x,opts:p,formats:y,logger:d.logger,self:d}),i=Q(h,z)+Q(l,N)+Q(m,q)+Q(v,T)+i;p.processCode&&(i=p.processCode(i,e));try{var n=new Function("self","RULES","formats","root","refVal","defaults","customRules","equal","ucs2length","ValidationError",i)(d,g,y,c,h,m,v,A,I,k);h[0]=n}catch(e){throw d.logger.error("Error compiling schema, function code:",i),e}return n.schema=e,n.errors=null,n.refs=f,n.refVal=h,n.root=s?n:r,o&&(n.$async=!0),!0===p.sourceCode&&(n.source={code:i,patterns:l,defaults:m}),n}function w(e,r,t){r=R.url(e,r);var a,s,o=f[r];if(void 0!==o)return S(a=h[o],s="refVal["+o+"]");if(!t&&c.refs){var i=c.refs[r];if(void 0!==i)return S(a=c.refVal[i],s=b(r,a))}s=b(r);var n,l=R.call(d,E,c,r);if(void 0!==l||(n=u&&u[r])&&(l=R.inlineRef(n,p.inlineRefs)?n:C.call(d,n,c,u,e)),void 0!==l)return S(h[f[r]]=l,s);delete f[r]}function b(e,r){var t=h.length;return h[t]=r,"refVal"+(f[e]=t)}function S(e,r){return"object"==typeof e||"boolean"==typeof e?{code:r,schema:e,inline:!0}:{code:r,$async:e&&!!e.$async}}function _(e){var r=t[e];return void 0===r&&(r=t[e]=l.length,l[r]=e),"pattern"+r}function F(e){switch(typeof e){case"boolean":case"number":return""+e;case"string":return $.toQuotedString(e);case"object":if(null===e)return"null";var r=D(e),t=a[r];return void 0===t&&(t=a[r]=m.length,m[t]=e),"default"+t}}function x(e,r,t,a){if(!1!==d._opts.validateSchema){var s=e.definition.dependencies;if(s&&!s.every(function(e){return Object.prototype.hasOwnProperty.call(t,e)}))throw new Error("parent schema must have all required keywords: "+s.join(","));var o=e.definition.validateSchema;if(o)if(!o(r)){var i="keyword schema is invalid: "+d.errorsText(o.errors);if("log"!=d._opts.validateSchema)throw new Error(i);d.logger.error(i)}}var n,l=e.definition.compile,c=e.definition.inline,u=e.definition.macro;if(l)n=l.call(d,r,t,a);else if(u)n=u.call(d,r,t,a),!1!==p.validateSchema&&d.validateSchema(n,!0);else if(c)n=c.call(d,a,e.keyword,r,t);else if(!(n=e.definition.validate))return;if(void 0===n)throw new Error('custom keyword "'+e.keyword+'"failed to compile');var h=v.length;return{code:"customRule"+h,validate:v[h]=n}}}function L(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("+$.toQuotedString(r[e])+");"}function q(e){return"var default"+e+" = defaults["+e+"];"}function z(e,r){return void 0===r[e]?"":"var refVal"+e+" = refVal["+e+"];"}function T(e){return"var customRule"+e+" = customRules["+e+"];"}function Q(e,r){if(!e.length)return"";for(var t="",a=0;a<e.length;a++)t+=r(a,e);return t}r.exports=C},{"../dotjs/validate":38,"./error_classes":3,"./resolve":6,"./util":10,"fast-deep-equal":42,"fast-json-stable-stringify":43}],6:[function(e,r,t){"use strict";var m=e("uri-js"),v=e("fast-deep-equal"),y=e("./util"),l=e("./schema_obj"),a=e("json-schema-traverse");function c(e,r,t){var a=this._refs[t];if("string"==typeof a){if(!this._refs[a])return c.call(this,e,r,a);a=this._refs[a]}if((a=a||this._schemas[t])instanceof l)return d(a.schema,this._opts.inlineRefs)?a.schema:a.validate||this._compile(a);var s,o,i,n=u.call(this,r,t);return n&&(s=n.schema,r=n.root,i=n.baseId),s instanceof l?o=s.validate||e.call(this,s.schema,r,void 0,i):void 0!==s&&(o=d(s,this._opts.inlineRefs)?s:e.call(this,s,r,void 0,i)),o}function u(e,r){var t=m.parse(r),a=p(t),s=g(this._getId(e.schema));if(0===Object.keys(e.schema).length||a!==s){var o=P(a),i=this._refs[o];if("string"==typeof i)return function(e,r,t){var a=u.call(this,e,r);if(a){var s=a.schema,o=a.baseId;e=a.root;var i=this._getId(s);return i&&(o=f(o,i)),n.call(this,t,o,s,e)}}.call(this,e,i,t);if(i instanceof l)i.validate||this._compile(i),e=i;else{if(!((i=this._schemas[o])instanceof l))return;if(i.validate||this._compile(i),o==P(r))return{schema:i,root:e,baseId:s};e=i}if(!e.schema)return;s=g(this._getId(e.schema))}return n.call(this,t,s,e.schema,e)}(r.exports=c).normalizeId=P,c.fullPath=g,c.url=f,c.ids=function(e){var r=P(this._getId(e)),h={"":r},d={"":g(r,!1)},p={},f=this;return a(e,{allKeys:!0},function(e,r,t,a,s,o,i){if(""!==r){var n=f._getId(e),l=h[a],c=d[a]+"/"+s;if(void 0!==i&&(c+="/"+("number"==typeof i?i:y.escapeFragment(i))),"string"==typeof n){n=l=P(l?m.resolve(l,n):n);var u=f._refs[n];if("string"==typeof u&&(u=f._refs[u]),u&&u.schema){if(!v(e,u.schema))throw new Error('id "'+n+'" resolves to more than one schema')}else if(n!=P(c))if("#"==n[0]){if(p[n]&&!v(e,p[n]))throw new Error('id "'+n+'" resolves to more than one schema');p[n]=e}else f._refs[n]=c}h[r]=l,d[r]=c}}),p},c.inlineRef=d,c.schema=u;var h=y.toHash(["properties","patternProperties","enum","dependencies","definitions"]);function n(e,r,t,a){if(e.fragment=e.fragment||"","/"==e.fragment.slice(0,1)){for(var s=e.fragment.split("/"),o=1;o<s.length;o++){var i,n,l,c=s[o];if(c){if(void 0===(t=t[c=y.unescapeFragment(c)]))break;h[c]||((l=this._getId(t))&&(r=f(r,l)),t.$ref&&(i=f(r,t.$ref),(n=u.call(this,a,i))&&(t=n.schema,a=n.root,r=n.baseId)))}}return void 0!==t&&t!==a.schema?{schema:t,root:a,baseId:r}:void 0}}var i=y.toHash(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum"]);function d(e,r){return!1!==r&&(void 0===r||!0===r?function e(r){var t;if(Array.isArray(r)){for(var a=0;a<r.length;a++)if("object"==typeof(t=r[a])&&!e(t))return!1}else for(var s in r){if("$ref"==s)return!1;if("object"==typeof(t=r[s])&&!e(t))return!1}return!0}(e):r?function e(r){var t,a=0;if(Array.isArray(r)){for(var s=0;s<r.length;s++)if("object"==typeof(t=r[s])&&(a+=e(t)),a==1/0)return 1/0}else for(var o in r){if("$ref"==o)return 1/0;if(i[o])a++;else if("object"==typeof(t=r[o])&&(a+=e(t)+1),a==1/0)return 1/0}return a}(e)<=r:void 0)}function g(e,r){return!1!==r&&(e=P(e)),p(m.parse(e))}function p(e){return m.serialize(e).split("#")[0]+"#"}var s=/#\/?$/;function P(e){return e?e.replace(s,""):""}function f(e,r){return r=P(r),m.resolve(e,r)}},{"./schema_obj":8,"./util":10,"fast-deep-equal":42,"json-schema-traverse":44,"uri-js":45}],7:[function(e,r,t){"use strict";var o=e("../dotjs"),i=e("./util").toHash;r.exports=function(){var a=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","items","contains","uniqueItems"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf","if"]}],s=["type","$comment"];return a.all=i(s),a.types=i(["number","integer","string","array","object","boolean","null"]),a.forEach(function(e){e.rules=e.rules.map(function(e){var r,t;return"object"==typeof e&&(t=e[r=Object.keys(e)[0]],e=r,t.forEach(function(e){s.push(e),a.all[e]=!0})),s.push(e),a.all[e]={keyword:e,code:o[e],implements:t}}),a.all.$comment={keyword:"$comment",code:o.$comment},e.type&&(a.types[e.type]=e)}),a.keywords=i(s.concat(["$schema","$id","id","$data","$async","title","description","default","definitions","examples","readOnly","writeOnly","contentMediaType","contentEncoding","additionalItems","then","else"])),a.custom={},a}},{"../dotjs":27,"./util":10}],8:[function(e,r,t){"use strict";var a=e("./util");r.exports=function(e){a.copy(e,this)}},{"./util":10}],9:[function(e,r,t){"use strict";r.exports=function(e){for(var r,t=0,a=e.length,s=0;s<a;)t++,55296<=(r=e.charCodeAt(s++))&&r<=56319&&s<a&&56320==(64512&(r=e.charCodeAt(s)))&&s++;return t}},{}],10:[function(e,r,t){"use strict";function i(e,r,t,a){var s=a?" !== ":" === ",o=a?" || ":" && ",i=a?"!":"",n=a?"":"!";switch(e){case"null":return r+s+"null";case"array":return i+"Array.isArray("+r+")";case"object":return"("+i+r+o+"typeof "+r+s+'"object"'+o+n+"Array.isArray("+r+"))";case"integer":return"(typeof "+r+s+'"number"'+o+n+"("+r+" % 1)"+o+r+s+r+(t?o+i+"isFinite("+r+")":"")+")";case"number":return"(typeof "+r+s+'"'+e+'"'+(t?o+i+"isFinite("+r+")":"")+")";default:return"typeof "+r+s+'"'+e+'"'}}r.exports={copy:function(e,r){for(var t in r=r||{},e)r[t]=e[t];return r},checkDataType:i,checkDataTypes:function(e,r,t){{if(1===e.length)return i(e[0],r,t,!0);var a,s="",o=n(e);for(a in o.array&&o.object&&(s=o.null?"(":"(!"+r+" || ",s+="typeof "+r+' !== "object")',delete o.null,delete o.array,delete o.object),o.number&&delete o.integer,o)s+=(s?" && ":"")+i(a,r,t,!0);return s}},coerceToTypes:function(e,r){if(Array.isArray(r)){for(var t=[],a=0;a<r.length;a++){var s=r[a];(o[s]||"array"===e&&"array"===s)&&(t[t.length]=s)}if(t.length)return t}else{if(o[r])return[r];if("array"===e&&"array"===r)return["array"]}},toHash:n,getProperty:h,escapeQuotes:l,equal:e("fast-deep-equal"),ucs2length:e("./ucs2length"),varOccurences:function(e,r){r+="[^0-9]";var t=e.match(new RegExp(r,"g"));return t?t.length:0},varReplace:function(e,r,t){return r+="([^0-9])",t=t.replace(/\$/g,"$$$$"),e.replace(new RegExp(r,"g"),t+"$1")},schemaHasRules:function(e,r){if("boolean"==typeof e)return!e;for(var t in e)if(r[t])return!0},schemaHasRulesExcept:function(e,r,t){if("boolean"==typeof e)return!e&&"not"!=t;for(var a in e)if(a!=t&&r[a])return!0},schemaUnknownRules:function(e,r){if("boolean"==typeof e)return;for(var t in e)if(!r[t])return t},toQuotedString:c,getPathExpr:function(e,r,t,a){return u(e,t?"'/' + "+r+(a?"":".replace(/~/g, '~0').replace(/\\//g, '~1')"):a?"'[' + "+r+" + ']'":"'[\\'' + "+r+" + '\\']'")},getPath:function(e,r,t){var a=c(t?"/"+f(r):h(r));return u(e,a)},getData:function(e,r,t){var a,s,o,i;if(""===e)return"rootData";if("/"==e[0]){if(!d.test(e))throw new Error("Invalid JSON-pointer: "+e);s=e,o="rootData"}else{if(!(i=e.match(p)))throw new Error("Invalid JSON-pointer: "+e);if(a=+i[1],"#"==(s=i[2])){if(r<=a)throw new Error("Cannot access property/index "+a+" levels up, current level is "+r);return t[r-a]}if(r<a)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,l=s.split("/"),c=0;c<l.length;c++){var u=l[c];u&&(o+=h(m(u)),n+=" && "+o)}return n},unescapeFragment:function(e){return m(decodeURIComponent(e))},unescapeJsonPointer:m,escapeFragment:function(e){return encodeURIComponent(f(e))},escapeJsonPointer:f};var o=n(["string","number","integer","boolean","null"]);function n(e){for(var r={},t=0;t<e.length;t++)r[e[t]]=!0;return r}var a=/^[a-z$_][a-z$_0-9]*$/i,s=/'|\\/g;function h(e){return"number"==typeof e?"["+e+"]":a.test(e)?"."+e:"['"+l(e)+"']"}function l(e){return e.replace(s,"\\$&").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\f/g,"\\f").replace(/\t/g,"\\t")}function c(e){return"'"+l(e)+"'"}var d=/^\/(?:[^~]|~0|~1)*$/,p=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function u(e,r){return'""'==e?r:(e+" + "+r).replace(/([^\\])' \+ '/g,"$1")}function f(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}function m(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}},{"./ucs2length":9,"fast-deep-equal":42}],11:[function(e,r,t){"use strict";var l=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];r.exports=function(e,r){for(var t=0;t<r.length;t++){e=JSON.parse(JSON.stringify(e));for(var a=r[t].split("/"),s=e,o=1;o<a.length;o++)s=s[a[o]];for(o=0;o<l.length;o++){var i=l[o],n=s[i];n&&(s[i]={anyOf:[n,{$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"}]})}}return e}},{}],12:[function(e,r,t){"use strict";var a=e("./refs/json-schema-draft-07.json");r.exports={$id:"https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js",definitions:{simpleTypes:a.definitions.simpleTypes},type:"object",dependencies:{schema:["validate"],$data:["validate"],statements:["inline"],valid:{not:{required:["macro"]}}},properties:{type:a.properties.type,schema:{type:"boolean"},statements:{type:"boolean"},dependencies:{type:"array",items:{type:"string"}},metaSchema:{type:"object"},modifying:{type:"boolean"},valid:{type:"boolean"},$data:{type:"boolean"},async:{type:"boolean"},errors:{anyOf:[{type:"boolean"},{const:"full"}]}}}},{"./refs/json-schema-draft-07.json":41}],13:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s,o,i,n,l,c=" ",u=e.level,h=e.dataLevel,d=e.schema[r],p=e.schemaPath+e.util.getProperty(r),f=e.errSchemaPath+"/"+r,m=!e.opts.allErrors,v="data"+(h||""),y=e.opts.$data&&d&&d.$data,g=y?(c+=" var schema"+u+" = "+e.util.getData(d.$data,h,e.dataPathArr)+"; ","schema"+u):d,P="maximum"==r,E=P?"exclusiveMaximum":"exclusiveMinimum",w=e.schema[E],b=e.opts.$data&&w&&w.$data,S=P?"<":">",_=P?">":"<",F=void 0;if(!y&&"number"!=typeof d&&void 0!==d)throw new Error(r+" must be number");if(!b&&void 0!==w&&"number"!=typeof w&&"boolean"!=typeof w)throw new Error(E+" must be number or boolean");b?(o="exclIsNumber"+u,i="' + "+(n="op"+u)+" + '",c+=" var schemaExcl"+u+" = "+(t=e.util.getData(w.$data,h,e.dataPathArr))+"; ",F=E,(l=l||[]).push(c+=" var "+(a="exclusive"+u)+"; var "+(s="exclType"+u)+" = typeof "+(t="schemaExcl"+u)+"; if ("+s+" != 'boolean' && "+s+" != 'undefined' && "+s+" != 'number') { "),c="",!1!==e.createErrors?(c+=" { keyword: '"+(F||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(f)+" , params: {} ",!1!==e.opts.messages&&(c+=" , message: '"+E+" should be boolean' "),e.opts.verbose&&(c+=" , schema: validate.schema"+p+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+v+" "),c+=" } "):c+=" {} ",x=c,c=l.pop(),c+=!e.compositeRule&&m?e.async?" throw new ValidationError(["+x+"]); ":" validate.errors = ["+x+"]; return false; ":" var err = "+x+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c+=" } else if ( ",y&&(c+=" ("+g+" !== undefined && typeof "+g+" != 'number') || "),c+=" "+s+" == 'number' ? ( ("+a+" = "+g+" === undefined || "+t+" "+S+"= "+g+") ? "+v+" "+_+"= "+t+" : "+v+" "+_+" "+g+" ) : ( ("+a+" = "+t+" === true) ? "+v+" "+_+"= "+g+" : "+v+" "+_+" "+g+" ) || "+v+" !== "+v+") { var op"+u+" = "+a+" ? '"+S+"' : '"+S+"='; ",void 0===d&&(f=e.errSchemaPath+"/"+(F=E),g=t,y=b)):(i=S,(o="number"==typeof w)&&y?(n="'"+i+"'",c+=" if ( ",y&&(c+=" ("+g+" !== undefined && typeof "+g+" != 'number') || "),c+=" ( "+g+" === undefined || "+w+" "+S+"= "+g+" ? "+v+" "+_+"= "+w+" : "+v+" "+_+" "+g+" ) || "+v+" !== "+v+") { "):(o&&void 0===d?(a=!0,f=e.errSchemaPath+"/"+(F=E),g=w,_+="="):(o&&(g=Math[P?"min":"max"](w,d)),w===(!o||g)?(a=!0,f=e.errSchemaPath+"/"+(F=E),_+="="):(a=!1,i+="=")),n="'"+i+"'",c+=" if ( ",y&&(c+=" ("+g+" !== undefined && typeof "+g+" != 'number') || "),c+=" "+v+" "+_+" "+g+" || "+v+" !== "+v+") { ")),F=F||r,(l=l||[]).push(c),c="",!1!==e.createErrors?(c+=" { keyword: '"+(F||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(f)+" , params: { comparison: "+n+", limit: "+g+", exclusive: "+a+" } ",!1!==e.opts.messages&&(c+=" , message: 'should be "+i+" ",c+=y?"' + "+g:g+"'"),e.opts.verbose&&(c+=" , schema: ",c+=y?"validate.schema"+p:""+d,c+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+v+" "),c+=" } "):c+=" {} ";var x=c;return c=l.pop(),c+=!e.compositeRule&&m?e.async?" throw new ValidationError(["+x+"]); ":" validate.errors = ["+x+"]; return false; ":" var err = "+x+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c+=" } ",m&&(c+=" else { "),c}},{}],14:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u=e.opts.$data&&o&&o.$data,h=u?(t+=" var schema"+a+" = "+e.util.getData(o.$data,s,e.dataPathArr)+"; ","schema"+a):o;if(!u&&"number"!=typeof o)throw new Error(r+" must be number");t+="if ( ",u&&(t+=" ("+h+" !== undefined && typeof "+h+" != 'number') || ");var d=r,p=p||[];p.push(t+=" "+c+".length "+("maxItems"==r?">":"<")+" "+h+") { "),t="",!1!==e.createErrors?(t+=" { keyword: '"+(d||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { limit: "+h+" } ",!1!==e.opts.messages&&(t+=" , message: 'should NOT have ",t+="maxItems"==r?"more":"fewer",t+=" than ",t+=u?"' + "+h+" + '":""+o,t+=" items' "),e.opts.verbose&&(t+=" , schema: ",t+=u?"validate.schema"+i:""+o,t+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";var f=t,t=p.pop();return t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+f+"]); ":" validate.errors = ["+f+"]; return false; ":" var err = "+f+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+="} ",l&&(t+=" else { "),t}},{}],15:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u=e.opts.$data&&o&&o.$data,h=u?(t+=" var schema"+a+" = "+e.util.getData(o.$data,s,e.dataPathArr)+"; ","schema"+a):o;if(!u&&"number"!=typeof o)throw new Error(r+" must be number");t+="if ( ",u&&(t+=" ("+h+" !== undefined && typeof "+h+" != 'number') || "),t+=!1===e.opts.unicode?" "+c+".length ":" ucs2length("+c+") ";var d=r,p=p||[];p.push(t+=" "+("maxLength"==r?">":"<")+" "+h+") { "),t="",!1!==e.createErrors?(t+=" { keyword: '"+(d||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { limit: "+h+" } ",!1!==e.opts.messages&&(t+=" , message: 'should NOT be ",t+="maxLength"==r?"longer":"shorter",t+=" than ",t+=u?"' + "+h+" + '":""+o,t+=" characters' "),e.opts.verbose&&(t+=" , schema: ",t+=u?"validate.schema"+i:""+o,t+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";var f=t,t=p.pop();return t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+f+"]); ":" validate.errors = ["+f+"]; return false; ":" var err = "+f+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+="} ",l&&(t+=" else { "),t}},{}],16:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u=e.opts.$data&&o&&o.$data,h=u?(t+=" var schema"+a+" = "+e.util.getData(o.$data,s,e.dataPathArr)+"; ","schema"+a):o;if(!u&&"number"!=typeof o)throw new Error(r+" must be number");t+="if ( ",u&&(t+=" ("+h+" !== undefined && typeof "+h+" != 'number') || ");var d=r,p=p||[];p.push(t+=" Object.keys("+c+").length "+("maxProperties"==r?">":"<")+" "+h+") { "),t="",!1!==e.createErrors?(t+=" { keyword: '"+(d||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { limit: "+h+" } ",!1!==e.opts.messages&&(t+=" , message: 'should NOT have ",t+="maxProperties"==r?"more":"fewer",t+=" than ",t+=u?"' + "+h+" + '":""+o,t+=" properties' "),e.opts.verbose&&(t+=" , schema: ",t+=u?"validate.schema"+i:""+o,t+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";var f=t,t=p.pop();return t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+f+"]); ":" validate.errors = ["+f+"]; return false; ":" var err = "+f+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+="} ",l&&(t+=" else { "),t}},{}],17:[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,u=n.baseId,h=!0,d=a;if(d)for(var p,f=-1,m=d.length-1;f<m;)p=d[f+=1],(e.opts.strictKeywords?"object"==typeof p&&0<Object.keys(p).length||!1===p:e.util.schemaHasRules(p,e.RULES.all))&&(h=!1,n.schema=p,n.schemaPath=s+"["+f+"]",n.errSchemaPath=o+"/"+f,t+=" "+e.validate(n)+" ",n.baseId=u,i&&(t+=" if ("+c+") { ",l+="}"));return i&&(t+=h?" if (true) { ":" "+l.slice(0,-1)+" "),t}},{}],18:[function(e,r,t){"use strict";r.exports=function(r,e){var t=" ",a=r.level,s=r.dataLevel,o=r.schema[e],i=r.schemaPath+r.util.getProperty(e),n=r.errSchemaPath+"/"+e,l=!r.opts.allErrors,c="data"+(s||""),u="valid"+a,h="errs__"+a,d=r.util.copy(r),p="";d.level++;var f="valid"+d.level;if(o.every(function(e){return r.opts.strictKeywords?"object"==typeof e&&0<Object.keys(e).length||!1===e:r.util.schemaHasRules(e,r.RULES.all)})){var m=d.baseId;t+=" var "+h+" = errors; var "+u+" = false; ";var v=r.compositeRule;r.compositeRule=d.compositeRule=!0;var y=o;if(y)for(var g,P=-1,E=y.length-1;P<E;)g=y[P+=1],d.schema=g,d.schemaPath=i+"["+P+"]",d.errSchemaPath=n+"/"+P,t+=" "+r.validate(d)+" ",d.baseId=m,t+=" "+u+" = "+u+" || "+f+"; if (!"+u+") { ",p+="}";r.compositeRule=d.compositeRule=v,t+=" "+p+" if (!"+u+") { var err = ",!1!==r.createErrors?(t+=" { keyword: 'anyOf' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(n)+" , params: {} ",!1!==r.opts.messages&&(t+=" , message: 'should match some schema in anyOf' "),r.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!r.compositeRule&&l&&(t+=r.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),t+=" } else { errors = "+h+"; if (vErrors !== null) { if ("+h+") vErrors.length = "+h+"; else vErrors = null; } ",r.opts.allErrors&&(t+=" } ")}else l&&(t+=" if (true) { ");return t}},{}],19:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.errSchemaPath+"/"+r,s=e.util.toQuotedString(e.schema[r]);return!0===e.opts.$comment?t+=" console.log("+s+");":"function"==typeof e.opts.$comment&&(t+=" self._opts.$comment("+s+", "+e.util.toQuotedString(a)+", validate.root.schema);"),t}},{}],20:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="valid"+a,h=e.opts.$data&&o&&o.$data;h&&(t+=" var schema"+a+" = "+e.util.getData(o.$data,s,e.dataPathArr)+"; ");h||(t+=" var schema"+a+" = validate.schema"+i+";");var d=d||[];d.push(t+="var "+u+" = equal("+c+", schema"+a+"); if (!"+u+") { "),t="",!1!==e.createErrors?(t+=" { keyword: 'const' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { allowedValue: schema"+a+" } ",!1!==e.opts.messages&&(t+=" , message: 'should be equal to constant' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";var p=t,t=d.pop();return t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+p+"]); ":" validate.errors = ["+p+"]; return false; ":" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" }",l&&(t+=" else { "),t}},{}],21:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="valid"+a,h="errs__"+a,d=e.util.copy(e);d.level++;var p,f,m,v="valid"+d.level,y="i"+a,g=d.dataLevel=e.dataLevel+1,P="data"+g,E=e.baseId,w=e.opts.strictKeywords?"object"==typeof o&&0<Object.keys(o).length||!1===o:e.util.schemaHasRules(o,e.RULES.all);t+="var "+h+" = errors;var "+u+";",w?(p=e.compositeRule,e.compositeRule=d.compositeRule=!0,d.schema=o,d.schemaPath=i,d.errSchemaPath=n,t+=" var "+v+" = false; for (var "+y+" = 0; "+y+" < "+c+".length; "+y+"++) { ",d.errorPath=e.util.getPathExpr(e.errorPath,y,e.opts.jsonPointers,!0),f=c+"["+y+"]",d.dataPathArr[g]=y,m=e.validate(d),d.baseId=E,e.util.varOccurences(m,P)<2?t+=" "+e.util.varReplace(m,P,f)+" ":t+=" var "+P+" = "+f+"; "+m+" ",t+=" if ("+v+") break; } ",e.compositeRule=d.compositeRule=p,t+=" if (!"+v+") {"):t+=" if ("+c+".length == 0) {";var b=b||[];b.push(t),t="",!1!==e.createErrors?(t+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: {} ",!1!==e.opts.messages&&(t+=" , message: 'should contain a valid item' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";var S=t,t=b.pop();return t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+S+"]); ":" validate.errors = ["+S+"]; return false; ":" var err = "+S+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } else { ",w&&(t+=" errors = "+h+"; if (vErrors !== null) { if ("+h+") vErrors.length = "+h+"; else vErrors = null; } "),e.opts.allErrors&&(t+=" } "),t}},{}],22:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s,o,i,n,l=" ",c=e.level,u=e.dataLevel,h=e.schema[r],d=e.schemaPath+e.util.getProperty(r),p=e.errSchemaPath+"/"+r,f=!e.opts.allErrors,m="data"+(u||""),v="valid"+c,y="errs__"+c,g=e.opts.$data&&h&&h.$data,P=g?(l+=" var schema"+c+" = "+e.util.getData(h.$data,u,e.dataPathArr)+"; ","schema"+c):h,E=this,w="definition"+c,b=E.definition,S="";if(g&&b.$data){var _=b.validateSchema;l+=" var "+w+" = RULES.custom['"+r+"'].definition; var "+(n="keywordValidate"+c)+" = "+w+".validate;"}else{if(!(i=e.useCustomRule(E,h,e.schema,e)))return;P="validate.schema"+d,n=i.code,a=b.compile,s=b.inline,o=b.macro}var F,x,R,$,j,D,O,I,A,k,C=n+".errors",L="i"+c,N="ruleErr"+c,q=b.async;if(q&&!e.async)throw new Error("async keyword in sync schema");return s||o||(l+=C+" = null;"),l+="var "+y+" = errors;var "+v+";",g&&b.$data&&(S+="}",l+=" if ("+P+" === undefined) { "+v+" = true; } else { ",_&&(S+="}",l+=" "+v+" = "+w+".validateSchema("+P+"); if ("+v+") { ")),s?l+=b.statements?" "+i.validate+" ":" "+v+" = "+i.validate+"; ":o?(S="",(F=e.util.copy(e)).level++,x="valid"+F.level,F.schema=i.validate,F.schemaPath="",R=e.compositeRule,e.compositeRule=F.compositeRule=!0,$=e.validate(F).replace(/validate\.schema/g,n),e.compositeRule=F.compositeRule=R,l+=" "+$):((I=I||[]).push(l),l="",l+=" "+n+".call( ",l+=e.opts.passContext?"this":"self",l+=a||!1===b.schema?" , "+m+" ":" , "+P+" , "+m+" , validate.schema"+e.schemaPath+" ",l+=" , (dataPath || '')",'""'!=e.errorPath&&(l+=" + "+e.errorPath),O=l+=" , "+(j=u?"data"+(u-1||""):"parentData")+" , "+(D=u?e.dataPathArr[u]:"parentDataProperty")+" , rootData ) ",l=I.pop(),!1===b.errors?(l+=" "+v+" = ",q&&(l+="await "),l+=O+"; "):l+=q?" var "+(C="customErrors"+c)+" = null; try { "+v+" = await "+O+"; } catch (e) { "+v+" = false; if (e instanceof ValidationError) "+C+" = e.errors; else throw e; } ":" "+C+" = null; "+v+" = "+O+"; "),b.modifying&&(l+=" if ("+j+") "+m+" = "+j+"["+D+"];"),l+=""+S,b.valid?f&&(l+=" if (true) { "):(l+=" if ( ",void 0===b.valid?(l+=" !",l+=o?""+x:v):l+=" "+!b.valid+" ",t=E.keyword,(I=I||[]).push(l+=") { "),(I=I||[]).push(l=""),l="",!1!==e.createErrors?(l+=" { keyword: '"+(t||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(p)+" , params: { keyword: '"+E.keyword+"' } ",!1!==e.opts.messages&&(l+=" , message: 'should pass \""+E.keyword+"\" keyword validation' "),e.opts.verbose&&(l+=" , schema: validate.schema"+d+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+m+" "),l+=" } "):l+=" {} ",A=l,l=I.pop(),k=l+=!e.compositeRule&&f?e.async?" throw new ValidationError(["+A+"]); ":" validate.errors = ["+A+"]; return false; ":" var err = "+A+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",l=I.pop(),s?b.errors?"full"!=b.errors&&(l+=" for (var "+L+"="+y+"; "+L+"<errors; "+L+"++) { var "+N+" = vErrors["+L+"]; if ("+N+".dataPath === undefined) "+N+".dataPath = (dataPath || '') + "+e.errorPath+"; if ("+N+".schemaPath === undefined) { "+N+'.schemaPath = "'+p+'"; } ',e.opts.verbose&&(l+=" "+N+".schema = "+P+"; "+N+".data = "+m+"; "),l+=" } "):!1===b.errors?l+=" "+k+" ":(l+=" if ("+y+" == errors) { "+k+" } else { for (var "+L+"="+y+"; "+L+"<errors; "+L+"++) { var "+N+" = vErrors["+L+"]; if ("+N+".dataPath === undefined) "+N+".dataPath = (dataPath || '') + "+e.errorPath+"; if ("+N+".schemaPath === undefined) { "+N+'.schemaPath = "'+p+'"; } ',e.opts.verbose&&(l+=" "+N+".schema = "+P+"; "+N+".data = "+m+"; "),l+=" } } "):o?(l+=" var err = ",!1!==e.createErrors?(l+=" { keyword: '"+(t||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(p)+" , params: { keyword: '"+E.keyword+"' } ",!1!==e.opts.messages&&(l+=" , message: 'should pass \""+E.keyword+"\" keyword validation' "),e.opts.verbose&&(l+=" , schema: validate.schema"+d+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+m+" "),l+=" } "):l+=" {} ",l+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&f&&(l+=e.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; ")):!1===b.errors?l+=" "+k+" ":(l+=" if (Array.isArray("+C+")) { if (vErrors === null) vErrors = "+C+"; else vErrors = vErrors.concat("+C+"); errors = vErrors.length; for (var "+L+"="+y+"; "+L+"<errors; "+L+"++) { var "+N+" = vErrors["+L+"]; if ("+N+".dataPath === undefined) "+N+".dataPath = (dataPath || '') + "+e.errorPath+"; "+N+'.schemaPath = "'+p+'"; ',e.opts.verbose&&(l+=" "+N+".schema = "+P+"; "+N+".data = "+m+"; "),l+=" } } else { "+k+" } "),l+=" } ",f&&(l+=" else { ")),l}},{}],23:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="errs__"+a,h=e.util.copy(e),d="";h.level++;var p,f="valid"+h.level,m={},v={},y=e.opts.ownProperties;for(I in o){"__proto__"!=I&&(k=o[I],(p=Array.isArray(k)?v:m)[I]=k)}t+="var "+u+" = errors;";var g=e.errorPath;for(I in t+="var missing"+a+";",v)if((p=v[I]).length){if(t+=" if ( "+c+e.util.getProperty(I)+" !== undefined ",y&&(t+=" && Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(I)+"') "),l){t+=" && ( ";var P=p;if(P)for(var E=-1,w=P.length-1;E<w;){R=P[E+=1],E&&(t+=" || "),t+=" ( ( "+(O=c+(D=e.util.getProperty(R)))+" === undefined ",y&&(t+=" || ! Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(R)+"') "),t+=") && (missing"+a+" = "+e.util.toQuotedString(e.opts.jsonPointers?R:D)+") ) "}t+=")) { ";var b="missing"+a,S="' + "+b+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(g,b,!0):g+" + "+b);var _=_||[];_.push(t),t="",!1!==e.createErrors?(t+=" { keyword: 'dependencies' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { property: '"+e.util.escapeQuotes(I)+"', missingProperty: '"+S+"', depsCount: "+p.length+", deps: '"+e.util.escapeQuotes(1==p.length?p[0]:p.join(", "))+"' } ",!1!==e.opts.messages&&(t+=" , message: 'should have ",t+=1==p.length?"property "+e.util.escapeQuotes(p[0]):"properties "+e.util.escapeQuotes(p.join(", ")),t+=" when property "+e.util.escapeQuotes(I)+" is present' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";var F=t,t=_.pop();t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+F+"]); ":" validate.errors = ["+F+"]; return false; ":" var err = "+F+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else{t+=" ) { ";var x=p;if(x)for(var R,$=-1,j=x.length-1;$<j;){R=x[$+=1];var D=e.util.getProperty(R),S=e.util.escapeQuotes(R),O=c+D;e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(g,R,e.opts.jsonPointers)),t+=" if ( "+O+" === undefined ",y&&(t+=" || ! Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(R)+"') "),t+=") { var err = ",!1!==e.createErrors?(t+=" { keyword: 'dependencies' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { property: '"+e.util.escapeQuotes(I)+"', missingProperty: '"+S+"', depsCount: "+p.length+", deps: '"+e.util.escapeQuotes(1==p.length?p[0]:p.join(", "))+"' } ",!1!==e.opts.messages&&(t+=" , message: 'should have ",t+=1==p.length?"property "+e.util.escapeQuotes(p[0]):"properties "+e.util.escapeQuotes(p.join(", ")),t+=" when property "+e.util.escapeQuotes(I)+" is present' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}t+=" } ",l&&(d+="}",t+=" else { ")}e.errorPath=g;var I,A=h.baseId;for(I in m){var k=m[I];(e.opts.strictKeywords?"object"==typeof k&&0<Object.keys(k).length||!1===k:e.util.schemaHasRules(k,e.RULES.all))&&(t+=" "+f+" = true; if ( "+c+e.util.getProperty(I)+" !== undefined ",y&&(t+=" && Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(I)+"') "),t+=") { ",h.schema=k,h.schemaPath=i+e.util.getProperty(I),h.errSchemaPath=n+"/"+e.util.escapeFragment(I),t+=" "+e.validate(h)+" ",h.baseId=A,t+=" } ",l&&(t+=" if ("+f+") { ",d+="}"))}return l&&(t+=" "+d+" if ("+u+" == errors) {"),t}},{}],24:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="valid"+a,h=e.opts.$data&&o&&o.$data,d=(h&&(t+=" var schema"+a+" = "+e.util.getData(o.$data,s,e.dataPathArr)+"; "),"i"+a),p="schema"+a;h||(t+=" var "+p+" = validate.schema"+i+";"),t+="var "+u+";",h&&(t+=" if (schema"+a+" === undefined) "+u+" = true; else if (!Array.isArray(schema"+a+")) "+u+" = false; else {"),t+=u+" = false;for (var "+d+"=0; "+d+"<"+p+".length; "+d+"++) if (equal("+c+", "+p+"["+d+"])) { "+u+" = true; break; }",h&&(t+=" } ");var f=f||[];f.push(t+=" if (!"+u+") { "),t="",!1!==e.createErrors?(t+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { allowedValues: schema"+a+" } ",!1!==e.opts.messages&&(t+=" , message: 'should be equal to one of the allowed values' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";var m=t,t=f.pop();return t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" }",l&&(t+=" else { "),t}},{}],25:[function(e,r,t){"use strict";r.exports=function(e,r,t){var 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,u="data"+(o||"");if(!1===e.opts.format)return c&&(a+=" if (true) { "),a;var h,d=e.opts.$data&&i&&i.$data,p=d?(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ","schema"+s):i,f=e.opts.unknownFormats,m=Array.isArray(f);if(d){a+=" var "+(h="format"+s)+" = formats["+p+"]; var "+(v="isObject"+s)+" = typeof "+h+" == 'object' && !("+h+" instanceof RegExp) && "+h+".validate; var "+(g="formatType"+s)+" = "+v+" && "+h+".type || 'string'; if ("+v+") { ",e.async&&(a+=" var async"+s+" = "+h+".async; "),a+=" "+h+" = "+h+".validate; } if ( ",d&&(a+=" ("+p+" !== undefined && typeof "+p+" != 'string') || "),a+=" (","ignore"!=f&&(a+=" ("+p+" && !"+h+" ",m&&(a+=" && self._opts.unknownFormats.indexOf("+p+") == -1 "),a+=") || "),a+=" ("+h+" && "+g+" == '"+t+"' && !(typeof "+h+" == 'function' ? ",a+=e.async?" (async"+s+" ? await "+h+"("+u+") : "+h+"("+u+")) ":" "+h+"("+u+") ",a+=" : "+h+".test("+u+"))))) {"}else{if(!(h=e.formats[i])){if("ignore"==f)return e.logger.warn('unknown format "'+i+'" ignored in schema at path "'+e.errSchemaPath+'"'),c&&(a+=" if (true) { "),a;if(m&&0<=f.indexOf(i))return c&&(a+=" if (true) { "),a;throw new Error('unknown format "'+i+'" is used in schema at path "'+e.errSchemaPath+'"')}var v,y,g=(v="object"==typeof h&&!(h instanceof RegExp)&&h.validate)&&h.type||"string";if(v&&(y=!0===h.async,h=h.validate),g!=t)return c&&(a+=" if (true) { "),a;if(y){if(!e.async)throw new Error("async format in sync schema");a+=" if (!(await "+(P="formats"+e.util.getProperty(i)+".validate")+"("+u+"))) { "}else{a+=" if (! ";var P="formats"+e.util.getProperty(i);v&&(P+=".validate"),a+="function"==typeof h?" "+P+"("+u+") ":" "+P+".test("+u+") ",a+=") { "}}var E=E||[];E.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { format: ",a+=d?""+p:""+e.util.toQuotedString(i),a+=" } ",!1!==e.opts.messages&&(a+=" , message: 'should match format \"",a+=d?"' + "+p+" + '":""+e.util.escapeQuotes(i),a+="\"' "),e.opts.verbose&&(a+=" , schema: ",a+=d?"validate.schema"+n:""+e.util.toQuotedString(i),a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var w=a,a=E.pop();return 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+=" } ",c&&(a+=" else { "),a}},{}],26:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="valid"+a,h="errs__"+a,d=e.util.copy(e);d.level++;var p,f,m="valid"+d.level,v=e.schema.then,y=e.schema.else,g=void 0!==v&&(e.opts.strictKeywords?"object"==typeof v&&0<Object.keys(v).length||!1===v:e.util.schemaHasRules(v,e.RULES.all)),P=void 0!==y&&(e.opts.strictKeywords?"object"==typeof y&&0<Object.keys(y).length||!1===y:e.util.schemaHasRules(y,e.RULES.all)),E=d.baseId;return g||P?(d.createErrors=!1,d.schema=o,d.schemaPath=i,d.errSchemaPath=n,t+=" var "+h+" = errors; var "+u+" = true; ",f=e.compositeRule,e.compositeRule=d.compositeRule=!0,t+=" "+e.validate(d)+" ",d.baseId=E,d.createErrors=!0,t+=" errors = "+h+"; if (vErrors !== null) { if ("+h+") vErrors.length = "+h+"; else vErrors = null; } ",e.compositeRule=d.compositeRule=f,g?(t+=" if ("+m+") { ",d.schema=e.schema.then,d.schemaPath=e.schemaPath+".then",d.errSchemaPath=e.errSchemaPath+"/then",t+=" "+e.validate(d)+" ",d.baseId=E,t+=" "+u+" = "+m+"; ",g&&P?t+=" var "+(p="ifClause"+a)+" = 'then'; ":p="'then'",t+=" } ",P&&(t+=" else { ")):t+=" if (!"+m+") { ",P&&(d.schema=e.schema.else,d.schemaPath=e.schemaPath+".else",d.errSchemaPath=e.errSchemaPath+"/else",t+=" "+e.validate(d)+" ",d.baseId=E,t+=" "+u+" = "+m+"; ",g&&P?t+=" var "+(p="ifClause"+a)+" = 'else'; ":p="'else'",t+=" } "),t+=" if (!"+u+") { var err = ",!1!==e.createErrors?(t+=" { keyword: 'if' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { failingKeyword: "+p+" } ",!1!==e.opts.messages&&(t+=" , message: 'should match \"' + "+p+" + '\" schema' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&l&&(t+=e.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),t+=" } ",l&&(t+=" else { ")):l&&(t+=" if (true) { "),t}},{}],27:[function(e,r,t){"use strict";r.exports={$ref:e("./ref"),allOf:e("./allOf"),anyOf:e("./anyOf"),$comment:e("./comment"),const:e("./const"),contains:e("./contains"),dependencies:e("./dependencies"),enum:e("./enum"),format:e("./format"),if:e("./if"),items:e("./items"),maximum:e("./_limit"),minimum:e("./_limit"),maxItems:e("./_limitItems"),minItems:e("./_limitItems"),maxLength:e("./_limitLength"),minLength:e("./_limitLength"),maxProperties:e("./_limitProperties"),minProperties:e("./_limitProperties"),multipleOf:e("./multipleOf"),not:e("./not"),oneOf:e("./oneOf"),pattern:e("./pattern"),properties:e("./properties"),propertyNames:e("./propertyNames"),required:e("./required"),uniqueItems:e("./uniqueItems"),validate:e("./validate")}},{"./_limit":13,"./_limitItems":14,"./_limitLength":15,"./_limitProperties":16,"./allOf":17,"./anyOf":18,"./comment":19,"./const":20,"./contains":21,"./dependencies":23,"./enum":24,"./format":25,"./if":26,"./items":28,"./multipleOf":29,"./not":30,"./oneOf":31,"./pattern":32,"./properties":33,"./propertyNames":34,"./ref":35,"./required":36,"./uniqueItems":37,"./validate":38}],28:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="valid"+a,h="errs__"+a,d=e.util.copy(e),p="";d.level++;var f="valid"+d.level,m="i"+a,v=d.dataLevel=e.dataLevel+1,y="data"+v,g=e.baseId;if(t+="var "+h+" = errors;var "+u+";",Array.isArray(o)){var P,E,w,b=e.schema.additionalItems;!1===b&&(t+=" "+u+" = "+c+".length <= "+o.length+"; ",P=n,n=e.errSchemaPath+"/additionalItems",(E=E||[]).push(t+=" if (!"+u+") { "),t="",!1!==e.createErrors?(t+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { limit: "+o.length+" } ",!1!==e.opts.messages&&(t+=" , message: 'should NOT have more than "+o.length+" items' "),e.opts.verbose&&(t+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ",w=t,t=E.pop(),t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+w+"]); ":" validate.errors = ["+w+"]; return false; ":" var err = "+w+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } ",n=P,l&&(p+="}",t+=" else { "));var S=o;if(S)for(var _=-1,F=S.length-1;_<F;){var x,R,$=S[_+=1];(e.opts.strictKeywords?"object"==typeof $&&0<Object.keys($).length||!1===$:e.util.schemaHasRules($,e.RULES.all))&&(t+=" "+f+" = true; if ("+c+".length > "+_+") { ",x=c+"["+_+"]",d.schema=$,d.schemaPath=i+"["+_+"]",d.errSchemaPath=n+"/"+_,d.errorPath=e.util.getPathExpr(e.errorPath,_,e.opts.jsonPointers,!0),d.dataPathArr[v]=_,R=e.validate(d),d.baseId=g,e.util.varOccurences(R,y)<2?t+=" "+e.util.varReplace(R,y,x)+" ":t+=" var "+y+" = "+x+"; "+R+" ",t+=" } ",l&&(t+=" if ("+f+") { ",p+="}"))}"object"==typeof b&&(e.opts.strictKeywords?"object"==typeof b&&0<Object.keys(b).length||!1===b:e.util.schemaHasRules(b,e.RULES.all))&&(d.schema=b,d.schemaPath=e.schemaPath+".additionalItems",d.errSchemaPath=e.errSchemaPath+"/additionalItems",t+=" "+f+" = true; if ("+c+".length > "+o.length+") { for (var "+m+" = "+o.length+"; "+m+" < "+c+".length; "+m+"++) { ",d.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers,!0),x=c+"["+m+"]",d.dataPathArr[v]=m,R=e.validate(d),d.baseId=g,e.util.varOccurences(R,y)<2?t+=" "+e.util.varReplace(R,y,x)+" ":t+=" var "+y+" = "+x+"; "+R+" ",l&&(t+=" if (!"+f+") break; "),t+=" } } ",l&&(t+=" if ("+f+") { ",p+="}"))}else{(e.opts.strictKeywords?"object"==typeof o&&0<Object.keys(o).length||!1===o:e.util.schemaHasRules(o,e.RULES.all))&&(d.schema=o,d.schemaPath=i,d.errSchemaPath=n,t+=" for (var "+m+" = 0; "+m+" < "+c+".length; "+m+"++) { ",d.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers,!0),x=c+"["+m+"]",d.dataPathArr[v]=m,R=e.validate(d),d.baseId=g,e.util.varOccurences(R,y)<2?t+=" "+e.util.varReplace(R,y,x)+" ":t+=" var "+y+" = "+x+"; "+R+" ",l&&(t+=" if (!"+f+") break; "),t+=" }")}return l&&(t+=" "+p+" if ("+h+" == errors) {"),t}},{}],29:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u=e.opts.$data&&o&&o.$data,h=u?(t+=" var schema"+a+" = "+e.util.getData(o.$data,s,e.dataPathArr)+"; ","schema"+a):o;if(!u&&"number"!=typeof o)throw new Error(r+" must be number");t+="var division"+a+";if (",u&&(t+=" "+h+" !== undefined && ( typeof "+h+" != 'number' || "),t+=" (division"+a+" = "+c+" / "+h+", ",t+=e.opts.multipleOfPrecision?" Math.abs(Math.round(division"+a+") - division"+a+") > 1e-"+e.opts.multipleOfPrecision+" ":" division"+a+" !== parseInt(division"+a+") ",t+=" ) ",u&&(t+=" ) ");var d=d||[];d.push(t+=" ) { "),t="",!1!==e.createErrors?(t+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { multipleOf: "+h+" } ",!1!==e.opts.messages&&(t+=" , message: 'should be multiple of ",t+=u?"' + "+h:h+"'"),e.opts.verbose&&(t+=" , schema: ",t+=u?"validate.schema"+i:""+o,t+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";var p=t,t=d.pop();return t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+p+"]); ":" validate.errors = ["+p+"]; return false; ":" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+="} ",l&&(t+=" else { "),t}},{}],30:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="errs__"+a,h=e.util.copy(e);h.level++;var d,p,f,m,v="valid"+h.level;return(e.opts.strictKeywords?"object"==typeof o&&0<Object.keys(o).length||!1===o:e.util.schemaHasRules(o,e.RULES.all))?(h.schema=o,h.schemaPath=i,h.errSchemaPath=n,t+=" var "+u+" = errors; ",d=e.compositeRule,e.compositeRule=h.compositeRule=!0,h.createErrors=!1,h.opts.allErrors&&(p=h.opts.allErrors,h.opts.allErrors=!1),t+=" "+e.validate(h)+" ",h.createErrors=!0,p&&(h.opts.allErrors=p),e.compositeRule=h.compositeRule=d,(f=f||[]).push(t+=" if ("+v+") { "),t="",!1!==e.createErrors?(t+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: {} ",!1!==e.opts.messages&&(t+=" , message: 'should NOT be valid' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ",m=t,t=f.pop(),t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } else { errors = "+u+"; if (vErrors !== null) { if ("+u+") vErrors.length = "+u+"; else vErrors = null; } ",e.opts.allErrors&&(t+=" } ")):(t+=" var err = ",!1!==e.createErrors?(t+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: {} ",!1!==e.opts.messages&&(t+=" , message: 'should NOT be valid' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",l&&(t+=" if (false) { ")),t}},{}],31:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="valid"+a,h="errs__"+a,d=e.util.copy(e),p="";d.level++;var f="valid"+d.level,m=d.baseId,v="prevValid"+a,y="passingSchemas"+a;t+="var "+h+" = errors , "+v+" = false , "+u+" = false , "+y+" = null; ";var g=e.compositeRule;e.compositeRule=d.compositeRule=!0;var P=o;if(P)for(var E,w=-1,b=P.length-1;w<b;)E=P[w+=1],(e.opts.strictKeywords?"object"==typeof E&&0<Object.keys(E).length||!1===E:e.util.schemaHasRules(E,e.RULES.all))?(d.schema=E,d.schemaPath=i+"["+w+"]",d.errSchemaPath=n+"/"+w,t+=" "+e.validate(d)+" ",d.baseId=m):t+=" var "+f+" = true; ",w&&(t+=" if ("+f+" && "+v+") { "+u+" = false; "+y+" = ["+y+", "+w+"]; } else { ",p+="}"),t+=" if ("+f+") { "+u+" = "+v+" = true; "+y+" = "+w+"; }";return e.compositeRule=d.compositeRule=g,t+=p+"if (!"+u+") { var err = ",!1!==e.createErrors?(t+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { passingSchemas: "+y+" } ",!1!==e.opts.messages&&(t+=" , message: 'should match exactly one schema in oneOf' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&l&&(t+=e.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),t+="} else { errors = "+h+"; if (vErrors !== null) { if ("+h+") vErrors.length = "+h+"; else vErrors = null; }",e.opts.allErrors&&(t+=" } "),t}},{}],32:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u=e.opts.$data&&o&&o.$data,h=u?(t+=" var schema"+a+" = "+e.util.getData(o.$data,s,e.dataPathArr)+"; ","schema"+a):o,d=u?"(new RegExp("+h+"))":e.usePattern(o);t+="if ( ",u&&(t+=" ("+h+" !== undefined && typeof "+h+" != 'string') || ");var p=p||[];p.push(t+=" !"+d+".test("+c+") ) { "),t="",!1!==e.createErrors?(t+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { pattern: ",t+=u?""+h:""+e.util.toQuotedString(o),t+=" } ",!1!==e.opts.messages&&(t+=" , message: 'should match pattern \"",t+=u?"' + "+h+" + '":""+e.util.escapeQuotes(o),t+="\"' "),e.opts.verbose&&(t+=" , schema: ",t+=u?"validate.schema"+i:""+e.util.toQuotedString(o),t+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";var f=t,t=p.pop();return t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+f+"]); ":" validate.errors = ["+f+"]; return false; ":" var err = "+f+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+="} ",l&&(t+=" else { "),t}},{}],33:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="errs__"+a,h=e.util.copy(e),d="";h.level++;var p,f,m,v="valid"+h.level,y="key"+a,g="idx"+a,P=h.dataLevel=e.dataLevel+1,E="data"+P,w="dataProperties"+a,b=Object.keys(o||{}).filter(k),S=e.schema.patternProperties||{},_=Object.keys(S).filter(k),F=e.schema.additionalProperties,x=b.length||_.length,R=!1===F,$="object"==typeof F&&Object.keys(F).length,j=e.opts.removeAdditional,D=R||$||j,O=e.opts.ownProperties,I=e.baseId,A=e.schema.required;function k(e){return"__proto__"!==e}if(A&&(!e.opts.$data||!A.$data)&&A.length<e.opts.loopRequired&&(p=e.util.toHash(A)),t+="var "+u+" = errors;var "+v+" = true;",O&&(t+=" var "+w+" = undefined;"),D){if(t+=O?" "+w+" = "+w+" || Object.keys("+c+"); for (var "+g+"=0; "+g+"<"+w+".length; "+g+"++) { var "+y+" = "+w+"["+g+"]; ":" for (var "+y+" in "+c+") { ",x){if(t+=" var isAdditional"+a+" = !(false ",b.length)if(8<b.length)t+=" || validate.schema"+i+".hasOwnProperty("+y+") ";else{var C=b;if(C)for(var L=-1,N=C.length-1;L<N;)U=C[L+=1],t+=" || "+y+" == "+e.util.toQuotedString(U)+" "}if(_.length){var q=_;if(q)for(var z=-1,T=q.length-1;z<T;)te=q[z+=1],t+=" || "+e.usePattern(te)+".test("+y+") "}t+=" ); if (isAdditional"+a+") { "}"all"==j?t+=" delete "+c+"["+y+"]; ":(Z=e.errorPath,f="' + "+y+" + '",e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(e.errorPath,y,e.opts.jsonPointers)),R?j?t+=" delete "+c+"["+y+"]; ":(G=n,n=e.errSchemaPath+"/additionalProperties",(W=W||[]).push(t+=" "+v+" = false; "),t="",!1!==e.createErrors?(t+=" { keyword: 'additionalProperties' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { additionalProperty: '"+f+"' } ",!1!==e.opts.messages&&(t+=" , message: '",t+=e.opts._errorDataPathProperty?"is an invalid additional property":"should NOT have additional properties",t+="' "),e.opts.verbose&&(t+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ",X=t,t=W.pop(),t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+X+"]); ":" validate.errors = ["+X+"]; return false; ":" var err = "+X+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n=G,l&&(t+=" break; ")):$&&("failing"==j?(t+=" var "+u+" = errors; ",m=e.compositeRule,e.compositeRule=h.compositeRule=!0,h.schema=F,h.schemaPath=e.schemaPath+".additionalProperties",h.errSchemaPath=e.errSchemaPath+"/additionalProperties",h.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,y,e.opts.jsonPointers),oe=c+"["+y+"]",h.dataPathArr[P]=y,ie=e.validate(h),h.baseId=I,e.util.varOccurences(ie,E)<2?t+=" "+e.util.varReplace(ie,E,oe)+" ":t+=" var "+E+" = "+oe+"; "+ie+" ",t+=" if (!"+v+") { errors = "+u+"; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete "+c+"["+y+"]; } ",e.compositeRule=h.compositeRule=m):(h.schema=F,h.schemaPath=e.schemaPath+".additionalProperties",h.errSchemaPath=e.errSchemaPath+"/additionalProperties",h.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,y,e.opts.jsonPointers),oe=c+"["+y+"]",h.dataPathArr[P]=y,ie=e.validate(h),h.baseId=I,e.util.varOccurences(ie,E)<2?t+=" "+e.util.varReplace(ie,E,oe)+" ":t+=" var "+E+" = "+oe+"; "+ie+" ",l&&(t+=" if (!"+v+") break; "))),e.errorPath=Z),x&&(t+=" } "),t+=" } ",l&&(t+=" if ("+v+") { ",d+="}")}var Q=e.opts.useDefaults&&!e.compositeRule;if(b.length){var V=b;if(V)for(var U,H=-1,M=V.length-1;H<M;){var K,B,J,Z,G,Y,W,X,ee=o[U=V[H+=1]];(e.opts.strictKeywords?"object"==typeof ee&&0<Object.keys(ee).length||!1===ee:e.util.schemaHasRules(ee,e.RULES.all))&&(oe=c+(K=e.util.getProperty(U)),B=Q&&void 0!==ee.default,h.schema=ee,h.schemaPath=i+K,h.errSchemaPath=n+"/"+e.util.escapeFragment(U),h.errorPath=e.util.getPath(e.errorPath,U,e.opts.jsonPointers),h.dataPathArr[P]=e.util.toQuotedString(U),ie=e.validate(h),h.baseId=I,e.util.varOccurences(ie,E)<2?(ie=e.util.varReplace(ie,E,oe),J=oe):t+=" var "+(J=E)+" = "+oe+"; ",B?t+=" "+ie+" ":(p&&p[U]?(t+=" if ( "+J+" === undefined ",O&&(t+=" || ! Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(U)+"') "),t+=") { "+v+" = false; ",Z=e.errorPath,G=n,Y=e.util.escapeQuotes(U),e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(Z,U,e.opts.jsonPointers)),n=e.errSchemaPath+"/required",(W=W||[]).push(t),t="",!1!==e.createErrors?(t+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { missingProperty: '"+Y+"' } ",!1!==e.opts.messages&&(t+=" , message: '",t+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+Y+"\\'",t+="' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ",X=t,t=W.pop(),t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+X+"]); ":" validate.errors = ["+X+"]; return false; ":" var err = "+X+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n=G,e.errorPath=Z,t+=" } else { "):l?(t+=" if ( "+J+" === undefined ",O&&(t+=" || ! Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(U)+"') "),t+=") { "+v+" = true; } else { "):(t+=" if ("+J+" !== undefined ",O&&(t+=" && Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(U)+"') "),t+=" ) { "),t+=" "+ie+" } ")),l&&(t+=" if ("+v+") { ",d+="}")}}if(_.length){var re=_;if(re)for(var te,ae=-1,se=re.length-1;ae<se;){var oe,ie,ee=S[te=re[ae+=1]];(e.opts.strictKeywords?"object"==typeof ee&&0<Object.keys(ee).length||!1===ee:e.util.schemaHasRules(ee,e.RULES.all))&&(h.schema=ee,h.schemaPath=e.schemaPath+".patternProperties"+e.util.getProperty(te),h.errSchemaPath=e.errSchemaPath+"/patternProperties/"+e.util.escapeFragment(te),t+=O?" "+w+" = "+w+" || Object.keys("+c+"); for (var "+g+"=0; "+g+"<"+w+".length; "+g+"++) { var "+y+" = "+w+"["+g+"]; ":" for (var "+y+" in "+c+") { ",t+=" if ("+e.usePattern(te)+".test("+y+")) { ",h.errorPath=e.util.getPathExpr(e.errorPath,y,e.opts.jsonPointers),oe=c+"["+y+"]",h.dataPathArr[P]=y,ie=e.validate(h),h.baseId=I,e.util.varOccurences(ie,E)<2?t+=" "+e.util.varReplace(ie,E,oe)+" ":t+=" var "+E+" = "+oe+"; "+ie+" ",l&&(t+=" if (!"+v+") break; "),t+=" } ",l&&(t+=" else "+v+" = true; "),t+=" } ",l&&(t+=" if ("+v+") { ",d+="}"))}}return l&&(t+=" "+d+" if ("+u+" == errors) {"),t}},{}],34:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="errs__"+a,h=e.util.copy(e);h.level++;var d,p,f,m,v,y,g,P,E,w,b,S="valid"+h.level;return t+="var "+u+" = errors;",(e.opts.strictKeywords?"object"==typeof o&&0<Object.keys(o).length||!1===o:e.util.schemaHasRules(o,e.RULES.all))&&(h.schema=o,h.schemaPath=i,h.errSchemaPath=n,p="idx"+a,f="i"+a,m="' + "+(d="key"+a)+" + '",v="data"+(h.dataLevel=e.dataLevel+1),y="dataProperties"+a,P=e.baseId,(g=e.opts.ownProperties)&&(t+=" var "+y+" = undefined; "),t+=g?" "+y+" = "+y+" || Object.keys("+c+"); for (var "+p+"=0; "+p+"<"+y+".length; "+p+"++) { var "+d+" = "+y+"["+p+"]; ":" for (var "+d+" in "+c+") { ",t+=" var startErrs"+a+" = errors; ",E=d,w=e.compositeRule,e.compositeRule=h.compositeRule=!0,b=e.validate(h),h.baseId=P,e.util.varOccurences(b,v)<2?t+=" "+e.util.varReplace(b,v,E)+" ":t+=" var "+v+" = "+E+"; "+b+" ",e.compositeRule=h.compositeRule=w,t+=" if (!"+S+") { for (var "+f+"=startErrs"+a+"; "+f+"<errors; "+f+"++) { vErrors["+f+"].propertyName = "+d+"; } var err = ",!1!==e.createErrors?(t+=" { keyword: 'propertyNames' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { propertyName: '"+m+"' } ",!1!==e.opts.messages&&(t+=" , message: 'property name \\'"+m+"\\' is invalid' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&l&&(t+=e.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),l&&(t+=" break; "),t+=" } }"),l&&(t+=" if ("+u+" == errors) {"),t}},{}],35:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.dataLevel,i=e.schema[r],n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(o||""),u="valid"+e.level;if("#"==i||"#/"==i)a=e.isRoot?(t=e.async,"validate"):(t=!0===e.root.schema.$async,"root.refVal[0]");else{var h,d,p=e.resolveRef(e.baseId,i,e.isRoot);if(void 0===p){var f,m=e.MissingRefError.message(e.baseId,i);if("fail"==e.opts.missingRefs){e.logger.error(m),(f=f||[]).push(s),s="",!1!==e.createErrors?(s+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { ref: '"+e.util.escapeQuotes(i)+"' } ",!1!==e.opts.messages&&(s+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(i)+"' "),e.opts.verbose&&(s+=" , schema: "+e.util.toQuotedString(i)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var v=s,s=f.pop();s+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+v+"]); ":" validate.errors = ["+v+"]; return false; ":" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",l&&(s+=" if (false) { ")}else{if("ignore"!=e.opts.missingRefs)throw new e.MissingRefError(e.baseId,i,m);e.logger.warn(m),l&&(s+=" if (true) { ")}}else{p.inline?((h=e.util.copy(e)).level++,d="valid"+h.level,h.schema=p.schema,h.schemaPath="",h.errSchemaPath=i,s+=" "+e.validate(h).replace(/validate\.schema/g,p.code)+" ",l&&(s+=" if ("+d+") { ")):(t=!0===p.$async||e.async&&!1!==p.$async,a=p.code)}}if(a){(f=f||[]).push(s),s="",s+=e.opts.passContext?" "+a+".call(this, ":" "+a+"( ",s+=" "+c+", (dataPath || '')",'""'!=e.errorPath&&(s+=" + "+e.errorPath);var y=s+=" , "+(o?"data"+(o-1||""):"parentData")+" , "+(o?e.dataPathArr[o]:"parentDataProperty")+", rootData) ";if(s=f.pop(),t){if(!e.async)throw new Error("async schema referenced by sync schema");l&&(s+=" var "+u+"; "),s+=" try { await "+y+"; ",l&&(s+=" "+u+" = true; "),s+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",l&&(s+=" "+u+" = false; "),s+=" } ",l&&(s+=" if ("+u+") { ")}else s+=" if (!"+y+") { if (vErrors === null) vErrors = "+a+".errors; else vErrors = vErrors.concat("+a+".errors); errors = vErrors.length; } ",l&&(s+=" else { ")}return s}},{}],36:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="valid"+a,h=e.opts.$data&&o&&o.$data,d=(h&&(t+=" var schema"+a+" = "+e.util.getData(o.$data,s,e.dataPathArr)+"; "),"schema"+a);if(!h)if(o.length<e.opts.loopRequired&&e.schema.properties&&Object.keys(e.schema.properties).length){var p=[],f=o;if(f)for(var m,v=-1,y=f.length-1;v<y;){m=f[v+=1];var g=e.schema.properties[m];g&&(e.opts.strictKeywords?"object"==typeof g&&0<Object.keys(g).length||!1===g:e.util.schemaHasRules(g,e.RULES.all))||(p[p.length]=m)}}else p=o;if(h||p.length){var P=e.errorPath,E=h||e.opts.loopRequired<=p.length,w=e.opts.ownProperties;if(l)if(t+=" var missing"+a+"; ",E){h||(t+=" var "+d+" = validate.schema"+i+"; ");var b="' + "+($="schema"+a+"["+(F="i"+a)+"]")+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(P,$,e.opts.jsonPointers)),t+=" var "+u+" = true; ",h&&(t+=" if (schema"+a+" === undefined) "+u+" = true; else if (!Array.isArray(schema"+a+")) "+u+" = false; else {"),t+=" for (var "+F+" = 0; "+F+" < "+d+".length; "+F+"++) { "+u+" = "+c+"["+d+"["+F+"]] !== undefined ",w&&(t+=" && Object.prototype.hasOwnProperty.call("+c+", "+d+"["+F+"]) "),t+="; if (!"+u+") break; } ",h&&(t+=" } "),(R=R||[]).push(t+=" if (!"+u+") { "),t="",!1!==e.createErrors?(t+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { missingProperty: '"+b+"' } ",!1!==e.opts.messages&&(t+=" , message: '",t+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+b+"\\'",t+="' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";var S=t,t=R.pop();t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+S+"]); ":" validate.errors = ["+S+"]; return false; ":" var err = "+S+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } else { "}else{t+=" if ( ";var _=p;if(_)for(var F=-1,x=_.length-1;F<x;){D=_[F+=1],F&&(t+=" || "),t+=" ( ( "+(k=c+(A=e.util.getProperty(D)))+" === undefined ",w&&(t+=" || ! Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(D)+"') "),t+=") && (missing"+a+" = "+e.util.toQuotedString(e.opts.jsonPointers?D:A)+") ) "}t+=") { ";var R,b="' + "+($="missing"+a)+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(P,$,!0):P+" + "+$),(R=R||[]).push(t),t="",!1!==e.createErrors?(t+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { missingProperty: '"+b+"' } ",!1!==e.opts.messages&&(t+=" , message: '",t+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+b+"\\'",t+="' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";S=t;t=R.pop(),t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+S+"]); ":" validate.errors = ["+S+"]; return false; ":" var err = "+S+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } else { "}else if(E){h||(t+=" var "+d+" = validate.schema"+i+"; ");var $,b="' + "+($="schema"+a+"["+(F="i"+a)+"]")+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(P,$,e.opts.jsonPointers)),h&&(t+=" if ("+d+" && !Array.isArray("+d+")) { var err = ",!1!==e.createErrors?(t+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { missingProperty: '"+b+"' } ",!1!==e.opts.messages&&(t+=" , message: '",t+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+b+"\\'",t+="' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if ("+d+" !== undefined) { "),t+=" for (var "+F+" = 0; "+F+" < "+d+".length; "+F+"++) { if ("+c+"["+d+"["+F+"]] === undefined ",w&&(t+=" || ! Object.prototype.hasOwnProperty.call("+c+", "+d+"["+F+"]) "),t+=") { var err = ",!1!==e.createErrors?(t+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { missingProperty: '"+b+"' } ",!1!==e.opts.messages&&(t+=" , message: '",t+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+b+"\\'",t+="' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ",h&&(t+=" } ")}else{var j=p;if(j)for(var D,O=-1,I=j.length-1;O<I;){D=j[O+=1];var A=e.util.getProperty(D),b=e.util.escapeQuotes(D),k=c+A;e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(P,D,e.opts.jsonPointers)),t+=" if ( "+k+" === undefined ",w&&(t+=" || ! Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(D)+"') "),t+=") { var err = ",!1!==e.createErrors?(t+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { missingProperty: '"+b+"' } ",!1!==e.opts.messages&&(t+=" , message: '",t+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+b+"\\'",t+="' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}e.errorPath=P}else l&&(t+=" if (true) {");return t}},{}],37:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s,o,i=" ",n=e.level,l=e.dataLevel,c=e.schema[r],u=e.schemaPath+e.util.getProperty(r),h=e.errSchemaPath+"/"+r,d=!e.opts.allErrors,p="data"+(l||""),f="valid"+n,m=e.opts.$data&&c&&c.$data,v=m?(i+=" var schema"+n+" = "+e.util.getData(c.$data,l,e.dataPathArr)+"; ","schema"+n):c;return(c||m)&&!1!==e.opts.uniqueItems?(m&&(i+=" var "+f+"; if ("+v+" === false || "+v+" === undefined) "+f+" = true; else if (typeof "+v+" != 'boolean') "+f+" = false; else { "),i+=" var i = "+p+".length , "+f+" = true , j; if (i > 1) { ",t=e.schema.items&&e.schema.items.type,a=Array.isArray(t),!t||"object"==t||"array"==t||a&&(0<=t.indexOf("object")||0<=t.indexOf("array"))?i+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+p+"[i], "+p+"[j])) { "+f+" = false; break outer; } } } ":(i+=" var itemIndices = {}, item; for (;i--;) { var item = "+p+"[i]; ",i+=" if ("+e.util["checkDataType"+(a?"s":"")](t,"item",e.opts.strictNumbers,!0)+") continue; ",a&&(i+=" if (typeof item == 'string') item = '\"' + item; "),i+=" if (typeof itemIndices[item] == 'number') { "+f+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "),i+=" } ",m&&(i+=" } "),(s=s||[]).push(i+=" if (!"+f+") { "),i="",!1!==e.createErrors?(i+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { i: i, j: j } ",!1!==e.opts.messages&&(i+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(i+=" , schema: ",i+=m?"validate.schema"+u:""+c,i+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),i+=" } "):i+=" {} ",o=i,i=s.pop(),i+=!e.compositeRule&&d?e.async?" throw new ValidationError(["+o+"]); ":" validate.errors = ["+o+"]; return false; ":" var err = "+o+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } ",d&&(i+=" else { ")):d&&(i+=" if (true) { "),i}},{}],38:[function(e,r,t){"use strict";r.exports=function(a,e){var r="",t=!0===a.schema.$async,s=a.util.schemaHasRulesExcept(a.schema,a.RULES.all,"$ref"),o=a.self._getId(a.schema);if(a.opts.strictKeywords){var i=a.util.schemaUnknownRules(a.schema,a.RULES.keywords);if(i){var n="unknown keyword: "+i;if("log"!==a.opts.strictKeywords)throw new Error(n);a.logger.warn(n)}}if(a.isTop&&(r+=" var validate = ",t&&(a.async=!0,r+="async "),r+="function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ",o&&(a.opts.sourceCode||a.opts.processCode)&&(r+=" /*# sourceURL="+o+" */ ")),"boolean"==typeof a.schema||!s&&!a.schema.$ref){var l=a.level,c=a.dataLevel,u=a.schema[e="false schema"],h=a.schemaPath+a.util.getProperty(e),d=a.errSchemaPath+"/"+e,p=!a.opts.allErrors,f="data"+(c||""),m="valid"+l;return!1===a.schema?(a.isTop?p=!0:r+=" var "+m+" = false; ",(U=U||[]).push(r),r="",!1!==a.createErrors?(r+=" { keyword: 'false schema' , dataPath: (dataPath || '') + "+a.errorPath+" , schemaPath: "+a.util.toQuotedString(d)+" , params: {} ",!1!==a.opts.messages&&(r+=" , message: 'boolean schema is false' "),a.opts.verbose&&(r+=" , schema: false , parentSchema: validate.schema"+a.schemaPath+" , data: "+f+" "),r+=" } "):r+=" {} ",D=r,r=U.pop(),r+=!a.compositeRule&&p?a.async?" throw new ValidationError(["+D+"]); ":" validate.errors = ["+D+"]; return false; ":" var err = "+D+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "):r+=a.isTop?t?" return data; ":" validate.errors = null; return true; ":" var "+m+" = true; ",a.isTop&&(r+=" }; return validate; "),r}if(a.isTop){var v=a.isTop,l=a.level=0,c=a.dataLevel=0,f="data";if(a.rootId=a.resolve.fullPath(a.self._getId(a.root.schema)),a.baseId=a.baseId||a.rootId,delete a.isTop,a.dataPathArr=[""],void 0!==a.schema.default&&a.opts.useDefaults&&a.opts.strictDefaults){var y="default is ignored in the schema root";if("log"!==a.opts.strictDefaults)throw new Error(y);a.logger.warn(y)}r+=" var vErrors = null; ",r+=" var errors = 0; ",r+=" if (rootData === undefined) rootData = data; "}else{l=a.level,f="data"+((c=a.dataLevel)||"");if(o&&(a.baseId=a.resolve.url(a.baseId,o)),t&&!a.async)throw new Error("async schema in sync schema");r+=" var errs_"+l+" = errors;"}var g,m="valid"+l,p=!a.opts.allErrors,P="",E="",w=a.schema.type,b=Array.isArray(w);if(w&&a.opts.nullable&&!0===a.schema.nullable&&(b?-1==w.indexOf("null")&&(w=w.concat("null")):"null"!=w&&(w=[w,"null"],b=!0)),b&&1==w.length&&(w=w[0],b=!1),a.schema.$ref&&s){if("fail"==a.opts.extendRefs)throw new Error('$ref: validation keywords used in schema at path "'+a.errSchemaPath+'" (see option extendRefs)');!0!==a.opts.extendRefs&&(s=!1,a.logger.warn('$ref: keywords ignored in schema at path "'+a.errSchemaPath+'"'))}if(a.schema.$comment&&a.opts.$comment&&(r+=" "+a.RULES.all.$comment.code(a,"$comment")),w){a.opts.coerceTypes&&(g=a.util.coerceToTypes(a.opts.coerceTypes,w));var S=a.RULES.types[w];if(g||b||!0===S||S&&!Z(S)){h=a.schemaPath+".type",d=a.errSchemaPath+"/type",h=a.schemaPath+".type",d=a.errSchemaPath+"/type";if(r+=" if ("+a.util[b?"checkDataTypes":"checkDataType"](w,f,a.opts.strictNumbers,!0)+") { ",g){var _="dataType"+l,F="coerced"+l;r+=" var "+_+" = typeof "+f+"; var "+F+" = undefined; ","array"==a.opts.coerceTypes&&(r+=" if ("+_+" == 'object' && Array.isArray("+f+") && "+f+".length == 1) { "+f+" = "+f+"[0]; "+_+" = typeof "+f+"; if ("+a.util.checkDataType(a.schema.type,f,a.opts.strictNumbers)+") "+F+" = "+f+"; } "),r+=" if ("+F+" !== undefined) ; ";var x=g;if(x)for(var R,$=-1,j=x.length-1;$<j;)"string"==(R=x[$+=1])?r+=" else if ("+_+" == 'number' || "+_+" == 'boolean') "+F+" = '' + "+f+"; else if ("+f+" === null) "+F+" = ''; ":"number"==R||"integer"==R?(r+=" else if ("+_+" == 'boolean' || "+f+" === null || ("+_+" == 'string' && "+f+" && "+f+" == +"+f+" ","integer"==R&&(r+=" && !("+f+" % 1)"),r+=")) "+F+" = +"+f+"; "):"boolean"==R?r+=" else if ("+f+" === 'false' || "+f+" === 0 || "+f+" === null) "+F+" = false; else if ("+f+" === 'true' || "+f+" === 1) "+F+" = true; ":"null"==R?r+=" else if ("+f+" === '' || "+f+" === 0 || "+f+" === false) "+F+" = null; ":"array"==a.opts.coerceTypes&&"array"==R&&(r+=" else if ("+_+" == 'string' || "+_+" == 'number' || "+_+" == 'boolean' || "+f+" == null) "+F+" = ["+f+"]; ");(U=U||[]).push(r+=" else { "),r="",!1!==a.createErrors?(r+=" { keyword: 'type' , dataPath: (dataPath || '') + "+a.errorPath+" , schemaPath: "+a.util.toQuotedString(d)+" , params: { type: '",r+=b?""+w.join(","):""+w,r+="' } ",!1!==a.opts.messages&&(r+=" , message: 'should be ",r+=b?""+w.join(","):""+w,r+="' "),a.opts.verbose&&(r+=" , schema: validate.schema"+h+" , parentSchema: validate.schema"+a.schemaPath+" , data: "+f+" "),r+=" } "):r+=" {} ";var D=r;r=U.pop(),r+=!a.compositeRule&&p?a.async?" throw new ValidationError(["+D+"]); ":" validate.errors = ["+D+"]; return false; ":" var err = "+D+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } if ("+F+" !== undefined) { ";var O=c?"data"+(c-1||""):"parentData";r+=" "+f+" = "+F+"; ",c||(r+="if ("+O+" !== undefined)"),r+=" "+O+"["+(c?a.dataPathArr[c]:"parentDataProperty")+"] = "+F+"; } "}else{(U=U||[]).push(r),r="",!1!==a.createErrors?(r+=" { keyword: 'type' , dataPath: (dataPath || '') + "+a.errorPath+" , schemaPath: "+a.util.toQuotedString(d)+" , params: { type: '",r+=b?""+w.join(","):""+w,r+="' } ",!1!==a.opts.messages&&(r+=" , message: 'should be ",r+=b?""+w.join(","):""+w,r+="' "),a.opts.verbose&&(r+=" , schema: validate.schema"+h+" , parentSchema: validate.schema"+a.schemaPath+" , data: "+f+" "),r+=" } "):r+=" {} ";D=r;r=U.pop(),r+=!a.compositeRule&&p?a.async?" throw new ValidationError(["+D+"]); ":" validate.errors = ["+D+"]; return false; ":" var err = "+D+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}r+=" } "}}if(a.schema.$ref&&!s)r+=" "+a.RULES.all.$ref.code(a,"$ref")+" ",p&&(r+=" } if (errors === ",r+=v?"0":"errs_"+l,r+=") { ",E+="}");else{var I=a.RULES;if(I)for(var A=-1,k=I.length-1;A<k;)if(Z(S=I[A+=1])){if(S.type&&(r+=" if ("+a.util.checkDataType(S.type,f,a.opts.strictNumbers)+") { "),a.opts.useDefaults)if("object"==S.type&&a.schema.properties){var u=a.schema.properties,C=Object.keys(u);if(C)for(var L,N=-1,q=C.length-1;N<q;){if(void 0!==(Q=u[L=C[N+=1]]).default){var z=f+a.util.getProperty(L);if(a.compositeRule){if(a.opts.strictDefaults){y="default is ignored for: "+z;if("log"!==a.opts.strictDefaults)throw new Error(y);a.logger.warn(y)}}else r+=" if ("+z+" === undefined ","empty"==a.opts.useDefaults&&(r+=" || "+z+" === null || "+z+" === '' "),r+=" ) "+z+" = ",r+="shared"==a.opts.useDefaults?" "+a.useDefault(Q.default)+" ":" "+JSON.stringify(Q.default)+" ",r+="; "}}}else if("array"==S.type&&Array.isArray(a.schema.items)){var T=a.schema.items;if(T)for(var Q,$=-1,V=T.length-1;$<V;)if(void 0!==(Q=T[$+=1]).default){z=f+"["+$+"]";if(a.compositeRule){if(a.opts.strictDefaults){y="default is ignored for: "+z;if("log"!==a.opts.strictDefaults)throw new Error(y);a.logger.warn(y)}}else r+=" if ("+z+" === undefined ","empty"==a.opts.useDefaults&&(r+=" || "+z+" === null || "+z+" === '' "),r+=" ) "+z+" = ",r+="shared"==a.opts.useDefaults?" "+a.useDefault(Q.default)+" ":" "+JSON.stringify(Q.default)+" ",r+="; "}}var U,H=S.rules;if(H)for(var M,K,B=-1,J=H.length-1;B<J;){!G(K=H[B+=1])||(M=K.code(a,K.keyword,S.type))&&(r+=" "+M+" ",p&&(P+="}"))}p&&(r+=" "+P+" ",P=""),S.type&&(r+=" } ",w&&w===S.type&&!g&&(h=a.schemaPath+".type",d=a.errSchemaPath+"/type",(U=U||[]).push(r+=" else { "),r="",!1!==a.createErrors?(r+=" { keyword: 'type' , dataPath: (dataPath || '') + "+a.errorPath+" , schemaPath: "+a.util.toQuotedString(d)+" , params: { type: '",r+=b?""+w.join(","):""+w,r+="' } ",!1!==a.opts.messages&&(r+=" , message: 'should be ",r+=b?""+w.join(","):""+w,r+="' "),a.opts.verbose&&(r+=" , schema: validate.schema"+h+" , parentSchema: validate.schema"+a.schemaPath+" , data: "+f+" "),r+=" } "):r+=" {} ",D=r,r=U.pop(),r+=!a.compositeRule&&p?a.async?" throw new ValidationError(["+D+"]); ":" validate.errors = ["+D+"]; return false; ":" var err = "+D+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } ")),p&&(r+=" if (errors === ",r+=v?"0":"errs_"+l,r+=") { ",E+="}")}}function Z(e){for(var r=e.rules,t=0;t<r.length;t++)if(G(r[t]))return 1}function G(e){return void 0!==a.schema[e.keyword]||e.implements&&function(e){for(var r=e.implements,t=0;t<r.length;t++)if(void 0!==a.schema[r[t]])return 1}(e)}return p&&(r+=" "+E+" "),v?(t?(r+=" if (errors === 0) return data; ",r+=" else throw new ValidationError(vErrors); "):(r+=" validate.errors = vErrors; ",r+=" return errors === 0; "),r+=" }; return validate;"):r+=" var "+m+" = errors === errs_"+l+";",r}},{}],39:[function(e,r,t){"use strict";var i=/^[a-z_$][a-z0-9_$-]*$/i,l=e("./dotjs/custom"),a=e("./definition_schema");function s(e,r){s.errors=null;var t=this._validateKeyword=this._validateKeyword||this.compile(a,!0);if(t(e))return!0;if(s.errors=t.errors,r)throw new Error("custom keyword definition is invalid: "+this.errorsText(t.errors));return!1}r.exports={add:function(e,r){var n=this.RULES;if(n.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){this.validateKeyword(r,!0);var t=r.type;if(Array.isArray(t))for(var a=0;a<t.length;a++)o(e,t[a],r);else o(e,t,r);var s=r.metaSchema;s&&(r.$data&&this._opts.$data&&(s={anyOf:[s,{$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"}]}),r.validateSchema=this.compile(s,!0))}function o(e,r,t){for(var a,s=0;s<n.length;s++){var o=n[s];if(o.type==r){a=o;break}}a||n.push(a={type:r,rules:[]});var i={keyword:e,definition:t,custom:!0,code:l,implements:t.implements};a.rules.push(i),n.custom[e]=i}return n.keywords[e]=n.all[e]=!0,this},get:function(e){var r=this.RULES.custom[e];return r?r.definition:this.RULES.keywords[e]||!1},remove:function(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}return this},validate:s}},{"./definition_schema":12,"./dotjs/custom":22}],40:[function(e,r,t){r.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON Schema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}},{}],41:[function(e,r,t){r.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}},{}],42:[function(e,r,t){"use strict";r.exports=function e(r,t){if(r===t)return!0;if(r&&t&&"object"==typeof r&&"object"==typeof t){if(r.constructor!==t.constructor)return!1;var a,s,o;if(Array.isArray(r)){if((a=r.length)!=t.length)return!1;for(s=a;0!=s--;)if(!e(r[s],t[s]))return!1;return!0}if(r.constructor===RegExp)return r.source===t.source&&r.flags===t.flags;if(r.valueOf!==Object.prototype.valueOf)return r.valueOf()===t.valueOf();if(r.toString!==Object.prototype.toString)return r.toString()===t.toString();if((a=(o=Object.keys(r)).length)!==Object.keys(t).length)return!1;for(s=a;0!=s--;)if(!Object.prototype.hasOwnProperty.call(t,o[s]))return!1;for(s=a;0!=s--;){var i=o[s];if(!e(r[i],t[i]))return!1}return!0}return r!=r&&t!=t}},{}],43:[function(e,r,t){"use strict";r.exports=function(e,r){"function"==typeof(r=r||{})&&(r={cmp:r});var a,l="boolean"==typeof r.cycles&&r.cycles,c=r.cmp&&(a=r.cmp,function(t){return function(e,r){return a({key:e,value:t[e]},{key:r,value:t[r]})}}),u=[];return function e(r){if(r&&r.toJSON&&"function"==typeof r.toJSON&&(r=r.toJSON()),void 0!==r){if("number"==typeof r)return isFinite(r)?""+r:"null";if("object"!=typeof r)return JSON.stringify(r);if(Array.isArray(r)){for(s="[",o=0;o<r.length;o++)o&&(s+=","),s+=e(r[o])||"null";return s+"]"}if(null===r)return"null";if(-1!==u.indexOf(r)){if(l)return JSON.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}for(var t=u.push(r)-1,a=Object.keys(r).sort(c&&c(r)),s="",o=0;o<a.length;o++){var i=a[o],n=e(r[i]);n&&(s&&(s+=","),s+=JSON.stringify(i)+":"+n)}return u.splice(t,1),"{"+s+"}"}}(e)}},{}],44:[function(e,r,t){"use strict";var m=r.exports=function(e,r,t){"function"==typeof r&&(t=r,r={}),function e(r,t,a,s,o,i,n,l,c,u){if(s&&"object"==typeof s&&!Array.isArray(s)){for(var h in t(s,o,i,n,l,c,u),s){var d=s[h];if(Array.isArray(d)){if(h in m.arrayKeywords)for(var p=0;p<d.length;p++)e(r,t,a,d[p],o+"/"+h+"/"+p,i,o,h,s,p)}else if(h in m.propsKeywords){if(d&&"object"==typeof d)for(var f in d)e(r,t,a,d[f],o+"/"+h+"/"+f.replace(/~/g,"~0").replace(/\//g,"~1"),i,o,h,s,f)}else(h in m.keywords||r.allKeys&&!(h in m.skipKeywords))&&e(r,t,a,d,o+"/"+h,i,o,h,s)}a(s,o,i,n,l,c,u)}}(r,"function"==typeof(t=r.cb||t)?t:t.pre||function(){},t.post||function(){},e,"",e)};m.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0},m.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},m.propsKeywords={definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},m.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0}},{}],45:[function(e,r,t){var a;a=this,function(e){"use strict";function J(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];if(1<r.length){r[0]=r[0].slice(0,-1);for(var a=r.length-1,s=1;s<a;++s)r[s]=r[s].slice(1,-1);return r[a]=r[a].slice(1),r.join("")}return r[0]}function Z(e){return"(?:"+e+")"}function a(e){return void 0===e?"undefined":null===e?"null":Object.prototype.toString.call(e).split(" ").pop().split("]").shift().toLowerCase()}function f(e){return e.toUpperCase()}function r(e){var r="[A-Za-z]",t="[0-9]",a=J(t,"[A-Fa-f]"),s=Z(Z("%[EFef]"+a+"%"+a+a+"%"+a+a)+"|"+Z("%[89A-Fa-f]"+a+"%"+a+a)+"|"+Z("%"+a+a)),o="[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]",i=J("[\\:\\/\\?\\#\\[\\]\\@]",o),n=e?"[\\uE000-\\uF8FF]":"[]",l=J(r,t,"[\\-\\.\\_\\~]",e?"[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]":"[]"),c=Z(r+J(r,t,"[\\+\\-\\.]")+"*"),u=Z(Z(s+"|"+J(l,o,"[\\:]"))+"*"),h=(Z("(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9][0-9])|(?:[1-9][0-9])|"+t),Z("(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9][0-9])|(?:0?[1-9][0-9])|0?0?"+t)),d=Z(h+"\\."+h+"\\."+h+"\\."+h),p=Z(a+"{1,4}"),f=Z(Z(p+"\\:"+p)+"|"+d),m=Z(Z(p+"\\:")+"{6}"+f),v=Z("\\:\\:"+Z(p+"\\:")+"{5}"+f),y=Z(Z(p)+"?\\:\\:"+Z(p+"\\:")+"{4}"+f),g=Z(Z(Z(p+"\\:")+"{0,1}"+p)+"?\\:\\:"+Z(p+"\\:")+"{3}"+f),P=Z(Z(Z(p+"\\:")+"{0,2}"+p)+"?\\:\\:"+Z(p+"\\:")+"{2}"+f),E=Z(Z(Z(p+"\\:")+"{0,3}"+p)+"?\\:\\:"+p+"\\:"+f),w=Z(Z(Z(p+"\\:")+"{0,4}"+p)+"?\\:\\:"+f),b=Z(Z(Z(p+"\\:")+"{0,5}"+p)+"?\\:\\:"+p),S=Z(Z(Z(p+"\\:")+"{0,6}"+p)+"?\\:\\:"),_=Z([m,v,y,g,P,E,w,b,S].join("|")),F=Z(Z(l+"|"+s)+"+"),x=(Z(_+"\\%25"+F),Z(_+Z("\\%25|\\%(?!"+a+"{2})")+F)),R=Z("[vV]"+a+"+\\."+J(l,o,"[\\:]")+"+"),$=Z("\\["+Z(x+"|"+_+"|"+R)+"\\]"),j=Z(Z(s+"|"+J(l,o))+"*"),D=Z($+"|"+d+"(?!"+j+")|"+j),O=Z(t+"*"),I=Z(Z(u+"@")+"?"+D+Z("\\:"+O)+"?"),A=Z(s+"|"+J(l,o,"[\\:\\@]")),k=Z(A+"*"),C=Z(A+"+"),L=Z(Z(s+"|"+J(l,o,"[\\@]"))+"+"),N=Z(Z("\\/"+k)+"*"),q=Z("\\/"+Z(C+N)+"?"),z=Z(L+N),T=Z(C+N),Q="(?!"+A+")",V=(Z(N+"|"+q+"|"+z+"|"+T+"|"+Q),Z(Z(A+"|"+J("[\\/\\?]",n))+"*")),U=Z(Z(A+"|[\\/\\?]")+"*"),H=Z(Z("\\/\\/"+I+N)+"|"+q+"|"+T+"|"+Q),M=Z(c+"\\:"+H+Z("\\?"+V)+"?"+Z("\\#"+U)+"?"),K=Z(Z("\\/\\/"+I+N)+"|"+q+"|"+z+"|"+Q),B=Z(K+Z("\\?"+V)+"?"+Z("\\#"+U)+"?");Z(M+"|"+B),Z(c+"\\:"+H+Z("\\?"+V)+"?"),Z(Z("\\/\\/("+Z("("+u+")@")+"?("+D+")"+Z("\\:("+O+")")+"?)")+"?("+N+"|"+q+"|"+T+"|"+Q+")"),Z("\\?("+V+")"),Z("\\#("+U+")"),Z(Z("\\/\\/("+Z("("+u+")@")+"?("+D+")"+Z("\\:("+O+")")+"?)")+"?("+N+"|"+q+"|"+z+"|"+Q+")"),Z("\\?("+V+")"),Z("\\#("+U+")"),Z(Z("\\/\\/("+Z("("+u+")@")+"?("+D+")"+Z("\\:("+O+")")+"?)")+"?("+N+"|"+q+"|"+T+"|"+Q+")"),Z("\\?("+V+")"),Z("\\#("+U+")"),Z("("+u+")@"),Z("\\:("+O+")");return{NOT_SCHEME:new RegExp(J("[^]",r,t,"[\\+\\-\\.]"),"g"),NOT_USERINFO:new RegExp(J("[^\\%\\:]",l,o),"g"),NOT_HOST:new RegExp(J("[^\\%\\[\\]\\:]",l,o),"g"),NOT_PATH:new RegExp(J("[^\\%\\/\\:\\@]",l,o),"g"),NOT_PATH_NOSCHEME:new RegExp(J("[^\\%\\/\\@]",l,o),"g"),NOT_QUERY:new RegExp(J("[^\\%]",l,o,"[\\:\\@\\/\\?]",n),"g"),NOT_FRAGMENT:new RegExp(J("[^\\%]",l,o,"[\\:\\@\\/\\?]"),"g"),ESCAPE:new RegExp(J("[^]",l,o),"g"),UNRESERVED:new RegExp(l,"g"),OTHER_CHARS:new RegExp(J("[^\\%]",l,i),"g"),PCT_ENCODED:new RegExp(s,"g"),IPV4ADDRESS:new RegExp("^("+d+")$"),IPV6ADDRESS:new RegExp("^\\[?("+_+")"+Z(Z("\\%25|\\%(?!"+a+"{2})")+"("+F+")")+"?\\]?$")}}var u=r(!1),h=r(!0),w=function(e,r){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,r){var t=[],a=!0,s=!1,o=void 0;try{for(var i,n=e[Symbol.iterator]();!(a=(i=n.next()).done)&&(t.push(i.value),!r||t.length!==r);a=!0);}catch(e){s=!0,o=e}finally{try{!a&&n.return&&n.return()}finally{if(s)throw o}}return t}(e,r);throw new TypeError("Invalid attempt to destructure non-iterable instance")},A=2147483647,t=/^xn--/,s=/[^\0-\x7E]/,o=/[\x2E\u3002\uFF0E\uFF61]/g,i={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},k=Math.floor,C=String.fromCharCode;function L(e){throw new RangeError(i[e])}function n(e,r){var t=e.split("@"),a="";return 1<t.length&&(a=t[0]+"@",e=t[1]),a+function(e,r){for(var t=[],a=e.length;a--;)t[a]=r(e[a]);return t}((e=e.replace(o,".")).split("."),r).join(".")}function N(e){for(var r=[],t=0,a=e.length;t<a;){var s,o=e.charCodeAt(t++);55296<=o&&o<=56319&&t<a?56320==(64512&(s=e.charCodeAt(t++)))?r.push(((1023&o)<<10)+(1023&s)+65536):(r.push(o),t--):r.push(o)}return r}function q(e,r){return e+22+75*(e<26)-((0!=r)<<5)}function z(e,r,t){var a=0;for(e=t?k(e/700):e>>1,e+=k(e/r);455<e;a+=36)e=k(e/35);return k(a+36*e/(e+38))}function l(e){var r=[],t=e.length,a=0,s=128,o=72,i=e.lastIndexOf("-");i<0&&(i=0);for(var n=0;n<i;++n)128<=e.charCodeAt(n)&&L("not-basic"),r.push(e.charCodeAt(n));for(var l,c=0<i?i+1:0;c<t;){for(var u=a,h=1,d=36;;d+=36){t<=c&&L("invalid-input");var p=(l=e.charCodeAt(c++))-48<10?l-22:l-65<26?l-65:l-97<26?l-97:36;(36<=p||p>k((A-a)/h))&&L("overflow"),a+=p*h;var f=d<=o?1:o+26<=d?26:d-o;if(p<f)break;var m=36-f;h>k(A/m)&&L("overflow"),h*=m}var v=r.length+1,o=z(a-u,v,0==u);k(a/v)>A-s&&L("overflow"),s+=k(a/v),a%=v,r.splice(a++,0,s)}return String.fromCodePoint.apply(String,r)}function c(e){var r=[],t=(e=N(e)).length,a=128,s=0,o=72,i=!0,n=!1,l=void 0;try{for(var c,u=e[Symbol.iterator]();!(i=(c=u.next()).done);i=!0){var h=c.value;h<128&&r.push(C(h))}}catch(e){n=!0,l=e}finally{try{!i&&u.return&&u.return()}finally{if(n)throw l}}var d=r.length,p=d;for(d&&r.push("-");p<t;){var f=A,m=!0,v=!1,y=void 0;try{for(var g,P=e[Symbol.iterator]();!(m=(g=P.next()).done);m=!0){var E=g.value;a<=E&&E<f&&(f=E)}}catch(e){v=!0,y=e}finally{try{!m&&P.return&&P.return()}finally{if(v)throw y}}var w=p+1;f-a>k((A-s)/w)&&L("overflow"),s+=(f-a)*w,a=f;var b=!0,S=!1,_=void 0;try{for(var F,x=e[Symbol.iterator]();!(b=(F=x.next()).done);b=!0){var R=F.value;if(R<a&&++s>A&&L("overflow"),R==a){for(var $=s,j=36;;j+=36){var D=j<=o?1:o+26<=j?26:j-o;if($<D)break;var O=$-D,I=36-D;r.push(C(q(D+O%I,0))),$=k(O/I)}r.push(C(q($,0))),o=z(s,w,p==d),s=0,++p}}}catch(e){S=!0,_=e}finally{try{!b&&x.return&&x.return()}finally{if(S)throw _}}++s,++a}return r.join("")}var v={version:"2.1.0",ucs2:{decode:N,encode:function(e){return String.fromCodePoint.apply(String,function(e){if(Array.isArray(e)){for(var r=0,t=Array(e.length);r<e.length;r++)t[r]=e[r];return t}return Array.from(e)}(e))}},decode:l,encode:c,toASCII:function(e){return n(e,function(e){return s.test(e)?"xn--"+c(e):e})},toUnicode:function(e){return n(e,function(e){return t.test(e)?l(e.slice(4).toLowerCase()):e})}},d={};function m(e){var r=e.charCodeAt(0);return r<16?"%0"+r.toString(16).toUpperCase():r<128?"%"+r.toString(16).toUpperCase():r<2048?"%"+(r>>6|192).toString(16).toUpperCase()+"%"+(63&r|128).toString(16).toUpperCase():"%"+(r>>12|224).toString(16).toUpperCase()+"%"+(r>>6&63|128).toString(16).toUpperCase()+"%"+(63&r|128).toString(16).toUpperCase()}function p(e){for(var r="",t=0,a=e.length;t<a;){var s,o,i,n=parseInt(e.substr(t+1,2),16);n<128?(r+=String.fromCharCode(n),t+=3):194<=n&&n<224?(6<=a-t?(s=parseInt(e.substr(t+4,2),16),r+=String.fromCharCode((31&n)<<6|63&s)):r+=e.substr(t,6),t+=6):224<=n?(9<=a-t?(o=parseInt(e.substr(t+4,2),16),i=parseInt(e.substr(t+7,2),16),r+=String.fromCharCode((15&n)<<12|(63&o)<<6|63&i)):r+=e.substr(t,9),t+=9):(r+=e.substr(t,3),t+=3)}return r}function y(e,t){function r(e){var r=p(e);return r.match(t.UNRESERVED)?r:e}return e.scheme&&(e.scheme=String(e.scheme).replace(t.PCT_ENCODED,r).toLowerCase().replace(t.NOT_SCHEME,"")),void 0!==e.userinfo&&(e.userinfo=String(e.userinfo).replace(t.PCT_ENCODED,r).replace(t.NOT_USERINFO,m).replace(t.PCT_ENCODED,f)),void 0!==e.host&&(e.host=String(e.host).replace(t.PCT_ENCODED,r).toLowerCase().replace(t.NOT_HOST,m).replace(t.PCT_ENCODED,f)),void 0!==e.path&&(e.path=String(e.path).replace(t.PCT_ENCODED,r).replace(e.scheme?t.NOT_PATH:t.NOT_PATH_NOSCHEME,m).replace(t.PCT_ENCODED,f)),void 0!==e.query&&(e.query=String(e.query).replace(t.PCT_ENCODED,r).replace(t.NOT_QUERY,m).replace(t.PCT_ENCODED,f)),void 0!==e.fragment&&(e.fragment=String(e.fragment).replace(t.PCT_ENCODED,r).replace(t.NOT_FRAGMENT,m).replace(t.PCT_ENCODED,f)),e}function b(e){return e.replace(/^0*(.*)/,"$1")||"0"}function S(e,r){var t=e.match(r.IPV4ADDRESS)||[],a=w(t,2)[1];return a?a.split(".").map(b).join("."):e}function g(e,r){var t=e.match(r.IPV6ADDRESS)||[],a=w(t,3),s=a[1],o=a[2];if(s){for(var i=s.toLowerCase().split("::").reverse(),n=w(i,2),l=n[0],c=n[1],u=c?c.split(":").map(b):[],h=l.split(":").map(b),d=r.IPV4ADDRESS.test(h[h.length-1]),p=d?7:8,f=h.length-p,m=Array(p),v=0;v<p;++v)m[v]=u[v]||h[f+v]||"";d&&(m[p-1]=S(m[p-1],r));var y,g,P=m.reduce(function(e,r,t){var a;return r&&"0"!==r||((a=e[e.length-1])&&a.index+a.length===t?a.length++:e.push({index:t,length:1})),e},[]).sort(function(e,r){return r.length-e.length})[0],E=void 0;return E=P&&1<P.length?(y=m.slice(0,P.index),g=m.slice(P.index+P.length),y.join(":")+"::"+g.join(":")):m.join(":"),o&&(E+="%"+o),E}return e}var P=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,E=void 0==="".match(/(){0}/)[1];function _(e){var r=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},t={},a=!1!==r.iri?h:u;"suffix"===r.reference&&(e=(r.scheme?r.scheme+":":"")+"//"+e);var s=e.match(P);if(s){E?(t.scheme=s[1],t.userinfo=s[3],t.host=s[4],t.port=parseInt(s[5],10),t.path=s[6]||"",t.query=s[7],t.fragment=s[8],isNaN(t.port)&&(t.port=s[5])):(t.scheme=s[1]||void 0,t.userinfo=-1!==e.indexOf("@")?s[3]:void 0,t.host=-1!==e.indexOf("//")?s[4]:void 0,t.port=parseInt(s[5],10),t.path=s[6]||"",t.query=-1!==e.indexOf("?")?s[7]:void 0,t.fragment=-1!==e.indexOf("#")?s[8]:void 0,isNaN(t.port)&&(t.port=e.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?s[4]:void 0)),t.host&&(t.host=g(S(t.host,a),a)),t.reference=void 0!==t.scheme||void 0!==t.userinfo||void 0!==t.host||void 0!==t.port||t.path||void 0!==t.query?void 0===t.scheme?"relative":void 0===t.fragment?"absolute":"uri":"same-document",r.reference&&"suffix"!==r.reference&&r.reference!==t.reference&&(t.error=t.error||"URI is not a "+r.reference+" reference.");var o=d[(r.scheme||t.scheme||"").toLowerCase()];if(r.unicodeSupport||o&&o.unicodeSupport)y(t,a);else{if(t.host&&(r.domainHost||o&&o.domainHost))try{t.host=v.toASCII(t.host.replace(a.PCT_ENCODED,p).toLowerCase())}catch(e){t.error=t.error||"Host's domain name can not be converted to ASCII via punycode: "+e}y(t,u)}o&&o.parse&&o.parse(t,r)}else t.error=t.error||"URI can not be parsed.";return t}var F=/^\.\.?\//,x=/^\/\.(\/|$)/,R=/^\/\.\.(\/|$)/,$=/^\/?(?:.|\n)*?(?=\/|$)/;function j(e){for(var r=[];e.length;)if(e.match(F))e=e.replace(F,"");else if(e.match(x))e=e.replace(x,"/");else if(e.match(R))e=e.replace(R,"/"),r.pop();else if("."===e||".."===e)e="";else{var t=e.match($);if(!t)throw new Error("Unexpected dot segment condition");var a=t[0];e=e.slice(a.length),r.push(a)}return r.join("")}function D(r){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},e=t.iri?h:u,a=[],s=d[(t.scheme||r.scheme||"").toLowerCase()];if(s&&s.serialize&&s.serialize(r,t),r.host&&!e.IPV6ADDRESS.test(r.host)&&(t.domainHost||s&&s.domainHost))try{r.host=t.iri?v.toUnicode(r.host):v.toASCII(r.host.replace(e.PCT_ENCODED,p).toLowerCase())}catch(e){r.error=r.error||"Host's domain name can not be converted to "+(t.iri?"Unicode":"ASCII")+" via punycode: "+e}y(r,e),"suffix"!==t.reference&&r.scheme&&(a.push(r.scheme),a.push(":"));var o,i,n,l,c=(i=!1!==t.iri?h:u,n=[],void 0!==(o=r).userinfo&&(n.push(o.userinfo),n.push("@")),void 0!==o.host&&n.push(g(S(String(o.host),i),i).replace(i.IPV6ADDRESS,function(e,r,t){return"["+r+(t?"%25"+t:"")+"]"})),"number"!=typeof o.port&&"string"!=typeof o.port||(n.push(":"),n.push(String(o.port))),n.length?n.join(""):void 0);return void 0!==c&&("suffix"!==t.reference&&a.push("//"),a.push(c),r.path&&"/"!==r.path.charAt(0)&&a.push("/")),void 0!==r.path&&(l=r.path,t.absolutePath||s&&s.absolutePath||(l=j(l)),void 0===c&&(l=l.replace(/^\/\//,"/%2F")),a.push(l)),void 0!==r.query&&(a.push("?"),a.push(r.query)),void 0!==r.fragment&&(a.push("#"),a.push(r.fragment)),a.join("")}function O(e,r){var t=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{},a={};return arguments[3]||(e=_(D(e,t),t),r=_(D(r,t),t)),!(t=t||{}).tolerant&&r.scheme?(a.scheme=r.scheme,a.userinfo=r.userinfo,a.host=r.host,a.port=r.port,a.path=j(r.path||""),a.query=r.query):(void 0!==r.userinfo||void 0!==r.host||void 0!==r.port?(a.userinfo=r.userinfo,a.host=r.host,a.port=r.port,a.path=j(r.path||""),a.query=r.query):(r.path?("/"===r.path.charAt(0)?a.path=j(r.path):(a.path=void 0===e.userinfo&&void 0===e.host&&void 0===e.port||e.path?e.path?e.path.slice(0,e.path.lastIndexOf("/")+1)+r.path:r.path:"/"+r.path,a.path=j(a.path)),a.query=r.query):(a.path=e.path,a.query=void 0!==r.query?r.query:e.query),a.userinfo=e.userinfo,a.host=e.host,a.port=e.port),a.scheme=e.scheme),a.fragment=r.fragment,a}function I(e,r){return e&&e.toString().replace(r&&r.iri?h.PCT_ENCODED:u.PCT_ENCODED,p)}var T={scheme:"http",domainHost:!0,parse:function(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e},serialize:function(e){var r="https"===String(e.scheme).toLowerCase();return e.port!==(r?443:80)&&""!==e.port||(e.port=void 0),e.path||(e.path="/"),e}},Q={scheme:"https",domainHost:T.domainHost,parse:T.parse,serialize:T.serialize};function V(e){return"boolean"==typeof e.secure?e.secure:"wss"===String(e.scheme).toLowerCase()}var U={scheme:"ws",domainHost:!0,parse:function(e){var r=e;return r.secure=V(r),r.resourceName=(r.path||"/")+(r.query?"?"+r.query:""),r.path=void 0,r.query=void 0,r},serialize:function(e){var r,t,a,s;return e.port!==(V(e)?443:80)&&""!==e.port||(e.port=void 0),"boolean"==typeof e.secure&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName&&(r=e.resourceName.split("?"),s=(t=w(r,2))[1],e.path=(a=t[0])&&"/"!==a?a:void 0,e.query=s,e.resourceName=void 0),e.fragment=void 0,e}},H={scheme:"wss",domainHost:U.domainHost,parse:U.parse,serialize:U.serialize},M={},K="[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]",B="[0-9A-Fa-f]",G=(Z(Z("%[EFef]"+B+"%"+B+B+"%"+B+B)+"|"+Z("%[89A-Fa-f]"+B+"%"+B+B)+"|"+Z("%"+B+B)),J("[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",'[\\"\\\\]')),Y=new RegExp(K,"g"),W=new RegExp("(?:(?:%[EFef][0-9A-Fa-f]%[0-9A-Fa-f][0-9A-Fa-f]%[0-9A-Fa-f][0-9A-Fa-f])|(?:%[89A-Fa-f][0-9A-Fa-f]%[0-9A-Fa-f][0-9A-Fa-f])|(?:%[0-9A-Fa-f][0-9A-Fa-f]))","g"),X=new RegExp(J("[^]","[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]","[\\.]",'[\\"]',G),"g"),ee=new RegExp(J("[^]",K,"[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]"),"g"),re=ee;function te(e){var r=p(e);return r.match(Y)?r:e}var ae={scheme:"mailto",parse:function(e,r){var t=e,a=t.to=t.path?t.path.split(","):[];if(t.path=void 0,t.query){for(var s=!1,o={},i=t.query.split("&"),n=0,l=i.length;n<l;++n){var c=i[n].split("=");switch(c[0]){case"to":for(var u=c[1].split(","),h=0,d=u.length;h<d;++h)a.push(u[h]);break;case"subject":t.subject=I(c[1],r);break;case"body":t.body=I(c[1],r);break;default:s=!0,o[I(c[0],r)]=I(c[1],r)}}s&&(t.headers=o)}t.query=void 0;for(var p=0,f=a.length;p<f;++p){var m=a[p].split("@");if(m[0]=I(m[0]),r.unicodeSupport)m[1]=I(m[1],r).toLowerCase();else try{m[1]=v.toASCII(I(m[1],r).toLowerCase())}catch(e){t.error=t.error||"Email address's domain name can not be converted to ASCII via punycode: "+e}a[p]=m.join("@")}return t},serialize:function(e,r){var t,a=e,s=null!=(t=e.to)?t instanceof Array?t:"number"!=typeof t.length||t.split||t.setInterval||t.call?[t]:Array.prototype.slice.call(t):[];if(s){for(var o=0,i=s.length;o<i;++o){var n=String(s[o]),l=n.lastIndexOf("@"),c=n.slice(0,l).replace(W,te).replace(W,f).replace(X,m),u=n.slice(l+1);try{u=r.iri?v.toUnicode(u):v.toASCII(I(u,r).toLowerCase())}catch(e){a.error=a.error||"Email address's domain name can not be converted to "+(r.iri?"Unicode":"ASCII")+" via punycode: "+e}s[o]=c+"@"+u}a.path=s.join(",")}var h=e.headers=e.headers||{};e.subject&&(h.subject=e.subject),e.body&&(h.body=e.body);var d,p=[];for(d in h)h[d]!==M[d]&&p.push(d.replace(W,te).replace(W,f).replace(ee,m)+"="+h[d].replace(W,te).replace(W,f).replace(re,m));return p.length&&(a.query=p.join("&")),a}},se=/^([^\:]+)\:(.*)/,oe={scheme:"urn",parse:function(e,r){var t,a,s,o,i=e.path&&e.path.match(se),n=e;return i?(t=r.scheme||n.scheme||"urn",a=i[1].toLowerCase(),s=i[2],o=d[t+":"+(r.nid||a)],n.nid=a,n.nss=s,n.path=void 0,o&&(n=o.parse(n,r))):n.error=n.error||"URN can not be parsed.",n},serialize:function(e,r){var t=e.nid,a=d[(r.scheme||e.scheme||"urn")+":"+(r.nid||t)];a&&(e=a.serialize(e,r));var s=e;return s.path=(t||r.nid)+":"+e.nss,s}},ie=/^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/,ne={scheme:"urn:uuid",parse:function(e,r){var t=e;return t.uuid=t.nss,t.nss=void 0,r.tolerant||t.uuid&&t.uuid.match(ie)||(t.error=t.error||"UUID is not valid."),t},serialize:function(e){var r=e;return r.nss=(e.uuid||"").toLowerCase(),r}};d[T.scheme]=T,d[Q.scheme]=Q,d[U.scheme]=U,d[H.scheme]=H,d[ae.scheme]=ae,d[oe.scheme]=oe,d[ne.scheme]=ne,e.SCHEMES=d,e.pctEncChar=m,e.pctDecChars=p,e.parse=_,e.removeDotSegments=j,e.serialize=D,e.resolveComponents=O,e.resolve=function(e,r,t){var a=function(e,r){var t=e;if(r)for(var a in r)t[a]=r[a];return t}({scheme:"null"},t);return D(O(_(e,a),_(r,a),a,!0),a)},e.normalize=function(e,r){return"string"==typeof e?e=D(_(e,r),r):"object"===a(e)&&(e=_(D(e,r),r)),e},e.equal=function(e,r,t){return"string"==typeof e?e=D(_(e,t),t):"object"===a(e)&&(e=D(e,t)),"string"==typeof r?r=D(_(r,t),t):"object"===a(r)&&(r=D(r,t)),e===r},e.escapeComponent=function(e,r){return e&&e.toString().replace(r&&r.iri?h.ESCAPE:u.ESCAPE,m)},e.unescapeComponent=I,Object.defineProperty(e,"__esModule",{value:!0})}("object"==typeof t&&void 0!==r?t:a.URI=a.URI||{})},{}],ajv:[function(a,e,r){"use strict";var n=a("./compile"),d=a("./compile/resolve"),t=a("./cache"),p=a("./compile/schema_obj"),s=a("fast-json-stable-stringify"),o=a("./compile/formats"),i=a("./compile/rules"),l=a("./data"),c=a("./compile/util");(e.exports=y).prototype.validate=function(e,r){var t;if("string"==typeof e){if(!(t=this.getSchema(e)))throw new Error('no schema with key or ref "'+e+'"')}else{var a=this._addSchema(e);t=a.validate||this._compile(a)}var s=t(r);!0!==t.$async&&(this.errors=t.errors);return s},y.prototype.compile=function(e,r){var t=this._addSchema(e,void 0,r);return t.validate||this._compile(t)},y.prototype.addSchema=function(e,r,t,a){if(Array.isArray(e)){for(var s=0;s<e.length;s++)this.addSchema(e[s],void 0,t,a);return this}var o=this._getId(e);if(void 0!==o&&"string"!=typeof o)throw new Error("schema id must be string");return S(this,r=d.normalizeId(r||o)),this._schemas[r]=this._addSchema(e,t,a,!0),this},y.prototype.addMetaSchema=function(e,r,t){return this.addSchema(e,r,t,!0),this},y.prototype.validateSchema=function(e,r){var t=e.$schema;if(void 0!==t&&"string"!=typeof t)throw new Error("$schema must be a string");if(!(t=t||this._opts.defaultMeta||function(e){var r=e._opts.meta;return e._opts.defaultMeta="object"==typeof r?e._getId(r)||r:e.getSchema(f)?f:void 0,e._opts.defaultMeta}(this)))return this.logger.warn("meta-schema not available"),!(this.errors=null);var a=this.validate(t,e);if(!a&&r){var s="schema is invalid: "+this.errorsText();if("log"!=this._opts.validateSchema)throw new Error(s);this.logger.error(s)}return a},y.prototype.getSchema=function(e){var r=g(this,e);switch(typeof r){case"object":return r.validate||this._compile(r);case"string":return this.getSchema(r);case"undefined":return function(e,r){var t=d.schema.call(e,{schema:{}},r);if(t){var a=t.schema,s=t.root,o=t.baseId,i=n.call(e,a,s,void 0,o);return e._fragments[r]=new p({ref:r,fragment:!0,schema:a,root:s,baseId:o,validate:i}),i}}(this,e)}},y.prototype.removeSchema=function(e){if(e instanceof RegExp)return P(this,this._schemas,e),P(this,this._refs,e),this;switch(typeof e){case"undefined":return P(this,this._schemas),P(this,this._refs),this._cache.clear(),this;case"string":var r=g(this,e);return r&&this._cache.del(r.cacheKey),delete this._schemas[e],delete this._refs[e],this;case"object":var t=this._opts.serialize,a=t?t(e):e;this._cache.del(a);var s=this._getId(e);s&&(s=d.normalizeId(s),delete this._schemas[s],delete this._refs[s])}return this},y.prototype.addFormat=function(e,r){"string"==typeof r&&(r=new RegExp(r));return this._formats[e]=r,this},y.prototype.errorsText=function(e,r){if(!(e=e||this.errors))return"No errors";for(var t=void 0===(r=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)},y.prototype._addSchema=function(e,r,t,a){if("object"!=typeof e&&"boolean"!=typeof e)throw new Error("schema should be object or boolean");var s=this._opts.serialize,o=s?s(e):e,i=this._cache.get(o);if(i)return i;a=a||!1!==this._opts.addUsedSchema;var n=d.normalizeId(this._getId(e));n&&a&&S(this,n);var l,c=!1!==this._opts.validateSchema&&!r;c&&!(l=n&&n==d.normalizeId(e.$schema))&&this.validateSchema(e,!0);var u=d.ids.call(this,e),h=new p({id:n,schema:e,localRefs:u,cacheKey:o,meta:t});"#"!=n[0]&&a&&(this._refs[n]=h);this._cache.put(o,h),c&&l&&this.validateSchema(e,!0);return h},y.prototype._compile=function(t,e){if(t.compiling)return(t.validate=s).schema=t.schema,s.errors=null,s.root=e||s,!0===t.schema.$async&&(s.$async=!0),s;var r,a;t.compiling=!0,t.meta&&(r=this._opts,this._opts=this._metaOpts);try{a=n.call(this,t.schema,e,t.localRefs)}catch(e){throw delete t.validate,e}finally{t.compiling=!1,t.meta&&(this._opts=r)}return t.validate=a,t.refs=a.refs,t.refVal=a.refVal,t.root=a.root,a;function s(){var e=t.validate,r=e.apply(this,arguments);return s.errors=e.errors,r}},y.prototype.compileAsync=a("./compile/async");var u=a("./keyword");y.prototype.addKeyword=u.add,y.prototype.getKeyword=u.get,y.prototype.removeKeyword=u.remove,y.prototype.validateKeyword=u.validate;var h=a("./compile/error_classes");y.ValidationError=h.Validation,y.MissingRefError=h.MissingRef,y.$dataMetaSchema=l;var f="http://json-schema.org/draft-07/schema",m=["removeAdditional","useDefaults","coerceTypes","strictDefaults"],v=["/properties"];function y(e){if(!(this instanceof y))return new y(e);e=this._opts=c.copy(e)||{},function(e){var r=e._opts.logger;if(!1===r)e.logger={log:_,warn:_,error:_};else{if(void 0===r&&(r=console),!("object"==typeof r&&r.log&&r.warn&&r.error))throw new Error("logger must implement log, warn and error methods");e.logger=r}}(this),this._schemas={},this._refs={},this._fragments={},this._formats=o(e.format),this._cache=e.cache||new t,this._loadingSchemas={},this._compilations=[],this.RULES=i(),this._getId=function(e){switch(e.schemaId){case"auto":return b;case"id":return E;default:return w}}(e),e.loopRequired=e.loopRequired||1/0,"property"==e.errorDataPath&&(e._errorDataPathProperty=!0),void 0===e.serialize&&(e.serialize=s),this._metaOpts=function(e){for(var r=c.copy(e._opts),t=0;t<m.length;t++)delete r[m[t]];return r}(this),e.formats&&function(e){for(var r in e._opts.formats){e.addFormat(r,e._opts.formats[r])}}(this),e.keywords&&function(e){for(var r in e._opts.keywords){e.addKeyword(r,e._opts.keywords[r])}}(this),function(e){var r;e._opts.$data&&(r=a("./refs/data.json"),e.addMetaSchema(r,r.$id,!0));if(!1===e._opts.meta)return;var t=a("./refs/json-schema-draft-07.json");e._opts.$data&&(t=l(t,v));e.addMetaSchema(t,f,!0),e._refs["http://json-schema.org/schema"]=f}(this),"object"==typeof e.meta&&this.addMetaSchema(e.meta),e.nullable&&this.addKeyword("nullable",{metaSchema:{type:"boolean"}}),function(e){var r=e._opts.schemas;if(!r)return;if(Array.isArray(r))e.addSchema(r);else for(var t in r)e.addSchema(r[t],t)}(this)}function g(e,r){return r=d.normalizeId(r),e._schemas[r]||e._refs[r]||e._fragments[r]}function P(e,r,t){for(var a in r){var s=r[a];s.meta||t&&!t.test(a)||(e._cache.del(s.cacheKey),delete r[a])}}function E(e){return e.$id&&this.logger.warn("schema $id ignored",e.$id),e.id}function w(e){return e.id&&this.logger.warn("schema id ignored",e.id),e.$id}function b(e){if(e.$id&&e.id&&e.$id!=e.id)throw new Error("schema $id is different from id");return e.$id||e.id}function S(e,r){if(e._schemas[r]||e._refs[r])throw new Error('schema with key or id "'+r+'" already exists')}function _(){}},{"./cache":1,"./compile":5,"./compile/async":2,"./compile/error_classes":3,"./compile/formats":4,"./compile/resolve":6,"./compile/rules":7,"./compile/schema_obj":8,"./compile/util":10,"./data":11,"./keyword":39,"./refs/data.json":40,"./refs/json-schema-draft-07.json":41,"fast-json-stable-stringify":43}]},{},[])("ajv")});
-//# sourceMappingURL=ajv.min.js.map \ No newline at end of file
diff --git a/deps/npm/node_modules/ajv/dist/ajv.min.js.map b/deps/npm/node_modules/ajv/dist/ajv.min.js.map
deleted file mode 100644
index 2d87595e849..00000000000
--- a/deps/npm/node_modules/ajv/dist/ajv.min.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ajv.min.js","sources":["0"],"names":["f","exports","module","define","amd","window","global","self","this","Ajv","r","e","n","t","o","i","c","require","u","a","Error","code","p","call","length","1","Cache","_cache","prototype","put","key","value","get","del","clear","2","MissingRefError","MissingRef","compileAsync","schema","meta","callback","_opts","loadSchema","undefined","loadMetaSchemaOf","then","schemaObj","_addSchema","validate","_compileAsync","_compile","loadMissingSchema","ref","missingSchema","added","missingRef","schemaPromise","_loadingSchemas","removePromise","sch","addSchema","_refs","_schemas","v","$schema","getSchema","$ref","Promise","resolve","./error_classes","3","baseId","message","url","normalizeId","fullPath","errorSubclass","Subclass","Object","create","constructor","Validation","errors","ajv","validation","./resolve","4","util","DATE","DAYS","TIME","HOSTNAME","URI","URITEMPLATE","URL","UUID","JSON_POINTER","JSON_POINTER_URI_FRAGMENT","RELATIVE_JSON_POINTER","formats","mode","copy","date","str","matches","match","year","month","day","time","full","hour","minute","second","fast","date-time","uri","uri-reference","uri-template","email","hostname","ipv4","ipv6","regex","uuid","json-pointer","json-pointer-uri-fragment","relative-json-pointer","dateTime","split","DATE_TIME_SEPARATOR","NOT_URI_FRAGMENT","test","Z_ANCHOR","RegExp","./util","5","errorClasses","stableStringify","validateGenerator","ucs2length","equal","ValidationError","compile","root","localRefs","opts","refVal","refs","patterns","patternsHash","defaults","defaultsHash","customRules","index","compIndex","compiling","_compilations","compilation","callValidate","_formats","RULES","localCompile","cv","$async","sourceCode","source","splice","result","apply","arguments","_schema","_root","isRoot","isTop","schemaPath","errSchemaPath","errorPath","resolveRef","usePattern","useDefault","useCustomRule","logger","vars","refValCode","patternCode","defaultCode","customRuleCode","processCode","Function","makeValidate","error","_refVal","refCode","refIndex","resolvedRef","rootRefId","addLocalRef","localSchema","inlineRef","inlineRefs","refId","inline","regexStr","toQuotedString","valueStr","rule","parentSchema","it","validateSchema","deps","definition","dependencies","every","keyword","hasOwnProperty","join","errorsText","macro","arr","statement","../dotjs/validate","fast-deep-equal","fast-json-stable-stringify","6","SchemaObject","traverse","res","resolveSchema","parse","refPath","_getFullPath","getFullPath","_getId","keys","id","parsedRef","resolveUrl","getJsonPointer","ids","schemaId","baseIds","","fullPaths","allKeys","jsonPtr","rootSchema","parentJsonPtr","parentKeyword","keyIndex","escapeFragment","PREVENT_SCOPE_CHANGE","toHash","fragment","slice","parts","part","unescapeFragment","SIMPLE_INLINED","limit","checkNoRef","item","Array","isArray","countKeys","count","Infinity","normalize","serialize","TRAILING_SLASH_HASH","replace","./schema_obj","json-schema-traverse","uri-js","7","ruleModules","type","rules","maximum","minimum","properties","ALL","all","types","forEach","group","map","implKeywords","k","push","implements","$comment","keywords","concat","custom","../dotjs","8","obj","9","len","pos","charCodeAt","10","checkDataType","dataType","data","strictNumbers","negate","EQUAL","AND","OK","NOT","to","checkDataTypes","dataTypes","array","object","null","number","integer","coerceToTypes","optionCoerceTypes","COERCE_TO_TYPES","getProperty","escapeQuotes","varOccurences","dataVar","varReplace","expr","schemaHasRules","schemaHasRulesExcept","exceptKeyword","schemaUnknownRules","getPathExpr","currentPath","jsonPointers","isNumber","joinPaths","getPath","prop","path","escapeJsonPointer","getData","$data","lvl","paths","up","jsonPointer","segments","segment","unescapeJsonPointer","decodeURIComponent","encodeURIComponent","hash","IDENTIFIER","SINGLE_QUOTE","b","./ucs2length","11","KEYWORDS","metaSchema","keywordsJsonPointers","JSON","stringify","j","anyOf","12","$id","definitions","simpleTypes","statements","valid","not","required","items","modifying","async","const","./refs/json-schema-draft-07.json","13","$keyword","$schemaValueExcl","$exclusive","$exclType","$exclIsNumber","$opStr","$opExpr","$$outStack","out","$lvl","level","$dataLvl","dataLevel","$schemaPath","$errSchemaPath","$breakOnError","allErrors","$isData","$schemaValue","dataPathArr","$isMax","$exclusiveKeyword","$schemaExcl","$isDataExcl","$op","$notOp","$errorKeyword","createErrors","messages","verbose","__err","pop","compositeRule","Math","14","15","unicode","16","17","$it","$closingBraces","$nextValid","$currentBaseId","$allSchemasEmpty","arr1","$sch","$i","l1","strictKeywords","18","$valid","$errs","$wasComposite","19","20","21","$passData","$code","$idx","$dataNxt","$nextData","$nonEmptySchema","22","$compile","$inline","$macro","$ruleValidate","$validateCode","$rule","$definition","$rDef","$validateSchema","$parentData","$parentDataProperty","def_callRuleValidate","def_customError","$ruleErrs","$ruleErr","$asyncKeyword","passContext","23","$deps","$schemaDeps","$propertyDeps","$ownProperties","ownProperties","$property","$currentErrorPath","$propertyKey","$useData","$prop","$propertyPath","$missingProperty","_errorDataPathProperty","arr2","i2","l2","24","$vSchema","25","$ruleType","format","$format","$unknownFormats","unknownFormats","$allowUnknown","$isObject","$formatType","warn","indexOf","$formatRef","26","$ifClause","$thenSch","$elseSch","$thenPresent","$elsePresent","27","allOf","contains","enum","if","maxItems","minItems","maxLength","minLength","maxProperties","minProperties","multipleOf","oneOf","pattern","propertyNames","uniqueItems","./_limit","./_limitItems","./_limitLength","./_limitProperties","./allOf","./anyOf","./comment","./const","./contains","./dependencies","./enum","./format","./if","./items","./multipleOf","./not","./oneOf","./pattern","./properties","./propertyNames","./ref","./required","./uniqueItems","./validate","28","$currErrSchemaPath","$additionalItems","additionalItems","29","multipleOfPrecision","30","$allErrorsOption","31","$prevValid","$passingSchemas","32","$regexp","33","$requiredHash","$additionalProperty","$key","$dataProperties","$schemaKeys","filter","notProto","$pProperties","patternProperties","$pPropertyKeys","$aProperties","additionalProperties","$someProperties","$noAdditional","$additionalIsSchema","$removeAdditional","removeAdditional","$checkAdditional","$required","loopRequired","i1","$pProperty","$useDefaults","useDefaults","arr3","i3","l3","$hasDefault","default","arr4","i4","l4","34","$invalidName","35","$refCode","$refVal","$message","missingRefs","__callValidate","36","$propertySch","$loopRequired","37","$itemType","$typeIsArray","38","$refKeywords","$unknownKwd","$keywordsMsg","$top","rootId","strictDefaults","$defaultMsg","$coerceToTypes","$closingBraces1","$closingBraces2","$typeSchema","nullable","extendRefs","coerceTypes","$rulesGroup","$shouldUseGroup","$dataType","$coerced","$type","arr5","i5","l5","$shouldUseRule","impl","$ruleImplementsSomeKeyword","39","definitionSchema","validateKeyword","throwError","_validateKeyword","add","_addRule","ruleGroup","rg","remove","./definition_schema","./dotjs/custom","40","description","41","title","schemaArray","nonNegativeInteger","nonNegativeIntegerDefault0","stringArray","readOnly","examples","exclusiveMinimum","exclusiveMaximum","contentMediaType","contentEncoding","else","42","flags","valueOf","toString","43","cmp","cycles","node","seen","toJSON","isFinite","TypeError","seenIndex","sort","44","cb","_traverse","pre","post","arrayKeywords","propsKeywords","skipKeywords","45","merge","_len","sets","_key","xl","x","subexp","typeOf","shift","toLowerCase","toUpperCase","buildExps","isIRI","ALPHA$$","DIGIT$$","HEXDIG$$","PCT_ENCODED$","SUB_DELIMS$$","RESERVED$$","IPRIVATE$$","UNRESERVED$$","SCHEME$","USERINFO$","DEC_OCTET_RELAXED$","IPV4ADDRESS$","H16$","LS32$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","IPV6ADDRESS$","ZONEID$","IPV6ADDRZ_RELAXED$","IPVFUTURE$","IP_LITERAL$","REG_NAME$","HOST$","PORT$","AUTHORITY$","PCHAR$","SEGMENT$","SEGMENT_NZ$","SEGMENT_NZ_NC$","PATH_ABEMPTY$","PATH_ABSOLUTE$","PATH_NOSCHEME$","PATH_ROOTLESS$","PATH_EMPTY$","QUERY$","FRAGMENT$","HIER_PART$","URI$","RELATIVE_PART$","RELATIVE$","NOT_SCHEME","NOT_USERINFO","NOT_HOST","NOT_PATH","NOT_PATH_NOSCHEME","NOT_QUERY","NOT_FRAGMENT","ESCAPE","UNRESERVED","OTHER_CHARS","PCT_ENCODED","IPV4ADDRESS","IPV6ADDRESS","URI_PROTOCOL","IRI_PROTOCOL","slicedToArray","Symbol","iterator","_arr","_n","_d","_e","_s","_i","next","done","err","sliceIterator","maxInt","regexPunycode","regexNonASCII","regexSeparators","overflow","not-basic","invalid-input","floor","stringFromCharCode","String","fromCharCode","error$1","RangeError","mapDomain","string","fn","ucs2decode","output","counter","extra","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","baseMinusTMin","base","decode","input","inputLength","bias","basic","lastIndexOf","codePoint","oldi","w","baseMinusT","fromCodePoint","encode","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_currentValue2","return","basicLength","handledCPCount","m","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","currentValue","handledCPCountPlusOne","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","_currentValue","q","qMinusT","punycode","version","ucs2","from","toConsumableArray","toASCII","toUnicode","SCHEMES","pctEncChar","chr","pctDecChars","newStr","il","c2","_c","c3","parseInt","substr","_normalizeComponentEncoding","components","protocol","decodeUnreserved","decStr","scheme","userinfo","host","query","_stripLeadingZeros","_normalizeIPv4","address","_normalizeIPv6","_matches2","zone","_address$toLowerCase$","reverse","_address$toLowerCase$2","last","first","firstFields","lastFields","isLastFieldIPv4Address","fieldCount","lastFieldsStart","fields","newFirst","newLast","longestZeroFields","reduce","acc","field","lastLongest","newHost","URI_PARSE","NO_MATCH_IS_UNDEFINED","uriString","options","iri","reference","port","isNaN","schemeHandler","unicodeSupport","domainHost","RDS1","RDS2","RDS3","RDS5","removeDotSegments","im","s","uriTokens","authority","_","$1","$2","charAt","absolutePath","resolveComponents","relative","target","tolerant","unescapeComponent","handler","secure","handler$1","isSecure","wsComponents","handler$2","resourceName","_wsComponents$resourc","_wsComponents$resourc2","handler$3","O","VCHAR$$","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","handler$4","mailtoComponents","unknownHeaders","headers","hfields","hfield","toAddrs","_x","_xl","subject","body","_x2","_xl2","addr","setInterval","toAddr","atIdx","localPart","domain","name","URN_PARSE","handler$5","nid","nss","urnComponents","uriComponents","handler$6","uuidComponents","baseURI","relativeURI","schemelessOptions","assign","uriA","uriB","escapeComponent","defineProperty","factory","compileSchema","$dataMetaSchema","schemaKeyRef","_meta","_skipValidation","checkUnique","addMetaSchema","skipValidation","throwOrLogError","defaultMeta","META_SCHEMA_ID","keyRef","_getSchemaObj","_fragments","_getSchemaFragment","removeSchema","_removeAllSchemas","cacheKey","addFormat","separator","text","dataPath","shouldAddSchema","cached","addUsedSchema","recursiveMeta","willValidate","currentOpts","_metaOpts","_validate","customKeyword","addKeyword","getKeyword","removeKeyword","META_IGNORE_OPTIONS","META_SUPPORT_DATA","log","noop","console","setLogger","cache","_get$IdOrId","_get$Id","chooseGetId","errorDataPath","metaOpts","getMetaSchemaOptions","addInitialFormats","addInitialKeywords","$dataSchema","addDefaultMetaSchema","optsSchemas","schemas","addInitialSchemas","./cache","./compile","./compile/async","./compile/error_classes","./compile/formats","./compile/resolve","./compile/rules","./compile/schema_obj","./compile/util","./data","./keyword","./refs/data.json"],"mappings":"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"} \ No newline at end of file
diff --git a/deps/npm/node_modules/ajv/lib/ajv.d.ts b/deps/npm/node_modules/ajv/lib/ajv.d.ts
deleted file mode 100644
index 078364d8ce8..00000000000
--- a/deps/npm/node_modules/ajv/lib/ajv.d.ts
+++ /dev/null
@@ -1,397 +0,0 @@
-declare var ajv: {
- (options?: ajv.Options): ajv.Ajv;
- new(options?: ajv.Options): ajv.Ajv;
- ValidationError: typeof AjvErrors.ValidationError;
- MissingRefError: typeof AjvErrors.MissingRefError;
- $dataMetaSchema: object;
-}
-
-declare namespace AjvErrors {
- class ValidationError extends Error {
- constructor(errors: Array<ajv.ErrorObject>);
-
- message: string;
- errors: Array<ajv.ErrorObject>;
- ajv: true;
- validation: true;
- }
-
- class MissingRefError extends Error {
- constructor(baseId: string, ref: string, message?: string);
- static message: (baseId: string, ref: string) => string;
-
- message: string;
- missingRef: string;
- missingSchema: string;
- }
-}
-
-declare namespace ajv {
- type ValidationError = AjvErrors.ValidationError;
-
- type MissingRefError = AjvErrors.MissingRefError;
-
- interface Ajv {
- /**
- * Validate data using schema
- * Schema will be compiled and cached (using serialized JSON as key, [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used to serialize by default).
- * @param {string|object|Boolean} schemaKeyRef key, ref or schema object
- * @param {Any} data to be validated
- * @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`).
- */
- validate(schemaKeyRef: object | string | boolean, data: any): boolean | PromiseLike<any>;
- /**
- * Create validating function for passed schema.
- * @param {object|Boolean} schema schema object
- * @return {Function} validating function
- */
- compile(schema: object | boolean): ValidateFunction;
- /**
- * Creates validating function for passed schema with asynchronous loading of missing schemas.
- * `loadSchema` option should be a function that accepts schema uri and node-style callback.
- * @this Ajv
- * @param {object|Boolean} schema schema object
- * @param {Boolean} meta optional true to compile meta-schema; this parameter can be skipped
- * @param {Function} callback optional node-style callback, it is always called with 2 parameters: error (or null) and validating function.
- * @return {PromiseLike<ValidateFunction>} validating function
- */
- compileAsync(schema: object | boolean, meta?: Boolean, callback?: (err: Error, validate: ValidateFunction) => any): PromiseLike<ValidateFunction>;
- /**
- * Adds schema to the instance.
- * @param {object|Array} schema schema or array of schemas. If array is passed, `key` and other parameters will be ignored.
- * @param {string} key Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.
- * @return {Ajv} this for method chaining
- */
- addSchema(schema: Array<object> | object, key?: string): Ajv;
- /**
- * Add schema that will be used to validate other schemas
- * options in META_IGNORE_OPTIONS are alway set to false
- * @param {object} schema schema object
- * @param {string} key optional schema key
- * @return {Ajv} this for method chaining
- */
- addMetaSchema(schema: object, key?: string): Ajv;
- /**
- * Validate schema
- * @param {object|Boolean} schema schema to validate
- * @return {Boolean} true if schema is valid
- */
- validateSchema(schema: object | boolean): boolean;
- /**
- * Get compiled schema from the instance by `key` or `ref`.
- * @param {string} keyRef `key` that was passed to `addSchema` or full schema reference (`schema.id` or resolved id).
- * @return {Function} schema validating function (with property `schema`). Returns undefined if keyRef can't be resolved to an existing schema.
- */
- getSchema(keyRef: string): ValidateFunction | undefined;
- /**
- * Remove cached schema(s).
- * If no parameter is passed all schemas but meta-schemas are removed.
- * If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.
- * Even if schema is referenced by other schemas it still can be removed as other schemas have local references.
- * @param {string|object|RegExp|Boolean} schemaKeyRef key, ref, pattern to match key/ref or schema object
- * @return {Ajv} this for method chaining
- */
- removeSchema(schemaKeyRef?: object | string | RegExp | boolean): Ajv;
- /**
- * Add custom format
- * @param {string} name format name
- * @param {string|RegExp|Function} format string is converted to RegExp; function should return boolean (true when valid)
- * @return {Ajv} this for method chaining
- */
- addFormat(name: string, format: FormatValidator | FormatDefinition): Ajv;
- /**
- * 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 {object} definition keyword definition object with properties `type` (type(s) which the keyword applies to), `validate` or `compile`.
- * @return {Ajv} this for method chaining
- */
- addKeyword(keyword: string, definition: KeywordDefinition): Ajv;
- /**
- * 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.
- * @return {Ajv} this for method chaining
- */
- removeKeyword(keyword: string): Ajv;
- /**
- * Validate keyword
- * @this Ajv
- * @param {object} definition keyword definition object
- * @param {boolean} throwError true to throw exception if definition is invalid
- * @return {boolean} validation result
- */
- validateKeyword(definition: KeywordDefinition, throwError: boolean): boolean;
- /**
- * 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`.
- * @return {string} human readable string with all errors descriptions
- */
- errorsText(errors?: Array<ErrorObject> | null, options?: ErrorsTextOptions): string;
- errors?: Array<ErrorObject> | null;
- _opts: Options;
- }
-
- interface CustomLogger {
- log(...args: any[]): any;
- warn(...args: any[]): any;
- error(...args: any[]): any;
- }
-
- interface ValidateFunction {
- (
- data: any,
- dataPath?: string,
- parentData?: object | Array<any>,
- parentDataProperty?: string | number,
- rootData?: object | Array<any>
- ): boolean | PromiseLike<any>;
- schema?: object | boolean;
- errors?: null | Array<ErrorObject>;
- refs?: object;
- refVal?: Array<any>;
- root?: ValidateFunction | object;
- $async?: true;
- source?: object;
- }
-
- interface Options {
- $data?: boolean;
- allErrors?: boolean;
- verbose?: boolean;
- jsonPointers?: boolean;
- uniqueItems?: boolean;
- unicode?: boolean;
- format?: false | string;
- formats?: object;
- keywords?: object;
- unknownFormats?: true | string[] | 'ignore';
- schemas?: Array<object> | object;
- schemaId?: '$id' | 'id' | 'auto';
- missingRefs?: true | 'ignore' | 'fail';
- extendRefs?: true | 'ignore' | 'fail';
- loadSchema?: (uri: string, cb?: (err: Error, schema: object) => void) => PromiseLike<object | boolean>;
- removeAdditional?: boolean | 'all' | 'failing';
- useDefaults?: boolean | 'empty' | 'shared';
- coerceTypes?: boolean | 'array';
- strictDefaults?: boolean | 'log';
- strictKeywords?: boolean | 'log';
- strictNumbers?: boolean;
- async?: boolean | string;
- transpile?: string | ((code: string) => string);
- meta?: boolean | object;
- validateSchema?: boolean | 'log';
- addUsedSchema?: boolean;
- inlineRefs?: boolean | number;
- passContext?: boolean;
- loopRequired?: number;
- ownProperties?: boolean;
- multipleOfPrecision?: boolean | number;
- errorDataPath?: string,
- messages?: boolean;
- sourceCode?: boolean;
- processCode?: (code: string, schema: object) => string;
- cache?: object;
- logger?: CustomLogger | false;
- nullable?: boolean;
- serialize?: ((schema: object | boolean) => any) | false;
- }
-
- type FormatValidator = string | RegExp | ((data: string) => boolean | PromiseLike<any>);
- type NumberFormatValidator = ((data: number) => boolean | PromiseLike<any>);
-
- interface NumberFormatDefinition {
- type: "number",
- validate: NumberFormatValidator;
- compare?: (data1: number, data2: number) => number;
- async?: boolean;
- }
-
- interface StringFormatDefinition {
- type?: "string",
- validate: FormatValidator;
- compare?: (data1: string, data2: string) => number;
- async?: boolean;
- }
-
- type FormatDefinition = NumberFormatDefinition | StringFormatDefinition;
-
- interface KeywordDefinition {
- type?: string | Array<string>;
- async?: boolean;
- $data?: boolean;
- errors?: boolean | string;
- metaSchema?: object;
- // schema: false makes validate not to expect schema (ValidateFunction)
- schema?: boolean;
- statements?: boolean;
- dependencies?: Array<string>;
- modifying?: boolean;
- valid?: boolean;
- // one and only one of the following properties should be present
- validate?: SchemaValidateFunction | ValidateFunction;
- compile?: (schema: any, parentSchema: object, it: CompilationContext) => ValidateFunction;
- macro?: (schema: any, parentSchema: object, it: CompilationContext) => object | boolean;
- inline?: (it: CompilationContext, keyword: string, schema: any, parentSchema: object) => string;
- }
-
- interface CompilationContext {
- level: number;
- dataLevel: number;
- dataPathArr: string[];
- schema: any;
- schemaPath: string;
- baseId: string;
- async: boolean;
- opts: Options;
- formats: {
- [index: string]: FormatDefinition | undefined;
- };
- keywords: {
- [index: string]: KeywordDefinition | undefined;
- };
- compositeRule: boolean;
- validate: (schema: object) => boolean;
- util: {
- copy(obj: any, target?: any): any;
- toHash(source: string[]): { [index: string]: true | undefined };
- equal(obj: any, target: any): boolean;
- getProperty(str: string): string;
- schemaHasRules(schema: object, rules: any): string;
- escapeQuotes(str: string): string;
- toQuotedString(str: string): string;
- getData(jsonPointer: string, dataLevel: number, paths: string[]): string;
- escapeJsonPointer(str: string): string;
- unescapeJsonPointer(str: string): string;
- escapeFragment(str: string): string;
- unescapeFragment(str: string): string;
- };
- self: Ajv;
- }
-
- interface SchemaValidateFunction {
- (
- schema: any,
- data: any,
- parentSchema?: object,
- dataPath?: string,
- parentData?: object | Array<any>,
- parentDataProperty?: string | number,
- rootData?: object | Array<any>
- ): boolean | PromiseLike<any>;
- errors?: Array<ErrorObject>;
- }
-
- interface ErrorsTextOptions {
- separator?: string;
- dataVar?: string;
- }
-
- interface ErrorObject {
- keyword: string;
- dataPath: string;
- schemaPath: string;
- params: ErrorParameters;
- // Added to validation errors of propertyNames keyword schema
- propertyName?: string;
- // Excluded if messages set to false.
- message?: string;
- // These are added with the `verbose` option.
- schema?: any;
- parentSchema?: object;
- data?: any;
- }
-
- type ErrorParameters = RefParams | LimitParams | AdditionalPropertiesParams |
- DependenciesParams | FormatParams | ComparisonParams |
- MultipleOfParams | PatternParams | RequiredParams |
- TypeParams | UniqueItemsParams | CustomParams |
- PatternRequiredParams | PropertyNamesParams |
- IfParams | SwitchParams | NoParams | EnumParams;
-
- interface RefParams {
- ref: string;
- }
-
- interface LimitParams {
- limit: number;
- }
-
- interface AdditionalPropertiesParams {
- additionalProperty: string;
- }
-
- interface DependenciesParams {
- property: string;
- missingProperty: string;
- depsCount: number;
- deps: string;
- }
-
- interface FormatParams {
- format: string
- }
-
- interface ComparisonParams {
- comparison: string;
- limit: number | string;
- exclusive: boolean;
- }
-
- interface MultipleOfParams {
- multipleOf: number;
- }
-
- interface PatternParams {
- pattern: string;
- }
-
- interface RequiredParams {
- missingProperty: string;
- }
-
- interface TypeParams {
- type: string;
- }
-
- interface UniqueItemsParams {
- i: number;
- j: number;
- }
-
- interface CustomParams {
- keyword: string;
- }
-
- interface PatternRequiredParams {
- missingPattern: string;
- }
-
- interface PropertyNamesParams {
- propertyName: string;
- }
-
- interface IfParams {
- failingKeyword: string;
- }
-
- interface SwitchParams {
- caseIndex: number;
- }
-
- interface NoParams { }
-
- interface EnumParams {
- allowedValues: Array<any>;
- }
-}
-
-export = ajv;
diff --git a/deps/npm/node_modules/ajv/lib/ajv.js b/deps/npm/node_modules/ajv/lib/ajv.js
deleted file mode 100644
index 06a45b650b3..00000000000
--- a/deps/npm/node_modules/ajv/lib/ajv.js
+++ /dev/null
@@ -1,506 +0,0 @@
-'use strict';
-
-var compileSchema = require('./compile')
- , resolve = require('./compile/resolve')
- , Cache = require('./cache')
- , SchemaObject = require('./compile/schema_obj')
- , stableStringify = require('fast-json-stable-stringify')
- , formats = require('./compile/formats')
- , rules = require('./compile/rules')
- , $dataMetaSchema = require('./data')
- , util = require('./compile/util');
-
-module.exports = Ajv;
-
-Ajv.prototype.validate = validate;
-Ajv.prototype.compile = compile;
-Ajv.prototype.addSchema = addSchema;
-Ajv.prototype.addMetaSchema = addMetaSchema;
-Ajv.prototype.validateSchema = validateSchema;
-Ajv.prototype.getSchema = getSchema;
-Ajv.prototype.removeSchema = removeSchema;
-Ajv.prototype.addFormat = addFormat;
-Ajv.prototype.errorsText = errorsText;
-
-Ajv.prototype._addSchema = _addSchema;
-Ajv.prototype._compile = _compile;
-
-Ajv.prototype.compileAsync = require('./compile/async');
-var customKeyword = require('./keyword');
-Ajv.prototype.addKeyword = customKeyword.add;
-Ajv.prototype.getKeyword = customKeyword.get;
-Ajv.prototype.removeKeyword = customKeyword.remove;
-Ajv.prototype.validateKeyword = customKeyword.validate;
-
-var errorClasses = require('./compile/error_classes');
-Ajv.ValidationError = errorClasses.Validation;
-Ajv.MissingRefError = errorClasses.MissingRef;
-Ajv.$dataMetaSchema = $dataMetaSchema;
-
-var META_SCHEMA_ID = 'http://json-schema.org/draft-07/schema';
-
-var META_IGNORE_OPTIONS = [ 'removeAdditional', 'useDefaults', 'coerceTypes', 'strictDefaults' ];
-var META_SUPPORT_DATA = ['/properties'];
-
-/**
- * Creates validator instance.
- * Usage: `Ajv(opts)`
- * @param {Object} opts optional options
- * @return {Object} ajv instance
- */
-function Ajv(opts) {
- if (!(this instanceof Ajv)) return new Ajv(opts);
- opts = this._opts = util.copy(opts) || {};
- setLogger(this);
- this._schemas = {};
- this._refs = {};
- this._fragments = {};
- this._formats = formats(opts.format);
-
- this._cache = opts.cache || new Cache;
- this._loadingSchemas = {};
- this._compilations = [];
- this.RULES = rules();
- this._getId = chooseGetId(opts);
-
- opts.loopRequired = opts.loopRequired || Infinity;
- if (opts.errorDataPath == 'property') opts._errorDataPathProperty = true;
- if (opts.serialize === undefined) opts.serialize = stableStringify;
- this._metaOpts = getMetaSchemaOptions(this);
-
- if (opts.formats) addInitialFormats(this);
- if (opts.keywords) addInitialKeywords(this);
- addDefaultMetaSchema(this);
- if (typeof opts.meta == 'object') this.addMetaSchema(opts.meta);
- if (opts.nullable) this.addKeyword('nullable', {metaSchema: {type: 'boolean'}});
- addInitialSchemas(this);
-}
-
-
-
-/**
- * Validate data using schema
- * Schema will be compiled and cached (using serialized JSON as key. [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used to serialize.
- * @this Ajv
- * @param {String|Object} schemaKeyRef key, ref or schema object
- * @param {Any} data to be validated
- * @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`).
- */
-function validate(schemaKeyRef, data) {
- var v;
- if (typeof schemaKeyRef == 'string') {
- v = this.getSchema(schemaKeyRef);
- if (!v) throw new Error('no schema with key or ref "' + schemaKeyRef + '"');
- } else {
- var schemaObj = this._addSchema(schemaKeyRef);
- v = schemaObj.validate || this._compile(schemaObj);
- }
-
- var valid = v(data);
- if (v.$async !== true) this.errors = v.errors;
- return valid;
-}
-
-
-/**
- * Create validating function for passed schema.
- * @this Ajv
- * @param {Object} schema schema object
- * @param {Boolean} _meta true if schema is a meta-schema. Used internally to compile meta schemas of custom keywords.
- * @return {Function} validating function
- */
-function compile(schema, _meta) {
- var schemaObj = this._addSchema(schema, undefined, _meta);
- return schemaObj.validate || this._compile(schemaObj);
-}
-
-
-/**
- * Adds schema to the instance.
- * @this Ajv
- * @param {Object|Array} schema schema or array of schemas. If array is passed, `key` and other parameters will be ignored.
- * @param {String} key Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.
- * @param {Boolean} _skipValidation true to skip schema validation. Used internally, option validateSchema should be used instead.
- * @param {Boolean} _meta true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.
- * @return {Ajv} this for method chaining
- */
-function addSchema(schema, key, _skipValidation, _meta) {
- if (Array.isArray(schema)){
- for (var i=0; i<schema.length; i++) this.addSchema(schema[i], undefined, _skipValidation, _meta);
- return this;
- }
- var id = this._getId(schema);
- if (id !== undefined && typeof id != 'string')
- throw new Error('schema id must be string');
- key = resolve.normalizeId(key || id);
- checkUnique(this, key);
- this._schemas[key] = this._addSchema(schema, _skipValidation, _meta, true);
- return this;
-}
-
-
-/**
- * Add schema that will be used to validate other schemas
- * options in META_IGNORE_OPTIONS are alway set to false
- * @this Ajv
- * @param {Object} schema schema object
- * @param {String} key optional schema key
- * @param {Boolean} skipValidation true to skip schema validation, can be used to override validateSchema option for meta-schema
- * @return {Ajv} this for method chaining
- */
-function addMetaSchema(schema, key, skipValidation) {
- this.addSchema(schema, key, skipValidation, true);
- return this;
-}
-
-
-/**
- * Validate schema
- * @this Ajv
- * @param {Object} schema schema to validate
- * @param {Boolean} throwOrLogError pass true to throw (or log) an error if invalid
- * @return {Boolean} true if schema is valid
- */
-function validateSchema(schema, throwOrLogError) {
- var $schema = schema.$schema;
- if ($schema !== undefined && typeof $schema != 'string')
- throw new Error('$schema must be a string');
- $schema = $schema || this._opts.defaultMeta || defaultMeta(this);
- if (!$schema) {
- this.logger.warn('meta-schema not available');
- this.errors = null;
- return true;
- }
- var valid = this.validate($schema, schema);
- if (!valid && throwOrLogError) {
- var message = 'schema is invalid: ' + this.errorsText();
- if (this._opts.validateSchema == 'log') this.logger.error(message);
- else throw new Error(message);
- }
- return valid;
-}
-
-
-function defaultMeta(self) {
- var meta = self._opts.meta;
- self._opts.defaultMeta = typeof meta == 'object'
- ? self._getId(meta) || meta
- : self.getSchema(META_SCHEMA_ID)
- ? META_SCHEMA_ID
- : undefined;
- return self._opts.defaultMeta;
-}
-
-
-/**
- * Get compiled schema from the instance by `key` or `ref`.
- * @this Ajv
- * @param {String} keyRef `key` that was passed to `addSchema` or full schema reference (`schema.id` or resolved id).
- * @return {Function} schema validating function (with property `schema`).
- */
-function getSchema(keyRef) {
- var schemaObj = _getSchemaObj(this, keyRef);
- switch (typeof schemaObj) {
- case 'object': return schemaObj.validate || this._compile(schemaObj);
- case 'string': return this.getSchema(schemaObj);
- case 'undefined': return _getSchemaFragment(this, keyRef);
- }
-}
-
-
-function _getSchemaFragment(self, ref) {
- var res = resolve.schema.call(self, { schema: {} }, ref);
- if (res) {
- var schema = res.schema
- , root = res.root
- , baseId = res.baseId;
- var v = compileSchema.call(self, schema, root, undefined, baseId);
- self._fragments[ref] = new SchemaObject({
- ref: ref,
- fragment: true,
- schema: schema,
- root: root,
- baseId: baseId,
- validate: v
- });
- return v;
- }
-}
-
-
-function _getSchemaObj(self, keyRef) {
- keyRef = resolve.normalizeId(keyRef);
- return self._schemas[keyRef] || self._refs[keyRef] || self._fragments[keyRef];
-}
-
-
-/**
- * Remove cached schema(s).
- * If no parameter is passed all schemas but meta-schemas are removed.
- * If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.
- * Even if schema is referenced by other schemas it still can be removed as other schemas have local references.
- * @this Ajv
- * @param {String|Object|RegExp} schemaKeyRef key, ref, pattern to match key/ref or schema object
- * @return {Ajv} this for method chaining
- */
-function removeSchema(schemaKeyRef) {
- if (schemaKeyRef instanceof RegExp) {
- _removeAllSchemas(this, this._schemas, schemaKeyRef);
- _removeAllSchemas(this, this._refs, schemaKeyRef);
- return this;
- }
- switch (typeof schemaKeyRef) {
- case 'undefined':
- _removeAllSchemas(this, this._schemas);
- _removeAllSchemas(this, this._refs);
- this._cache.clear();
- return this;
- case 'string':
- var schemaObj = _getSchemaObj(this, schemaKeyRef);
- if (schemaObj) this._cache.del(schemaObj.cacheKey);
- delete this._schemas[schemaKeyRef];
- delete this._refs[schemaKeyRef];
- return this;
- case 'object':
- var serialize = this._opts.serialize;
- var cacheKey = serialize ? serialize(schemaKeyRef) : schemaKeyRef;
- this._cache.del(cacheKey);
- var id = this._getId(schemaKeyRef);
- if (id) {
- id = resolve.normalizeId(id);
- delete this._schemas[id];
- delete this._refs[id];
- }
- }
- return this;
-}
-
-
-function _removeAllSchemas(self, schemas, regex) {
- for (var keyRef in schemas) {
- var schemaObj = schemas[keyRef];
- if (!schemaObj.meta && (!regex || regex.test(keyRef))) {
- self._cache.del(schemaObj.cacheKey);
- delete schemas[keyRef];
- }
- }
-}
-
-
-/* @this Ajv */
-function _addSchema(schema, skipValidation, meta, shouldAddSchema) {
- if (typeof schema != 'object' && typeof schema != 'boolean')
- throw new Error('schema should be object or boolean');
- var serialize = this._opts.serialize;
- var cacheKey = serialize ? serialize(schema) : schema;
- var cached = this._cache.get(cacheKey);
- if (cached) return cached;
-
- shouldAddSchema = shouldAddSchema || this._opts.addUsedSchema !== false;
-
- var id = resolve.normalizeId(this._getId(schema));
- if (id && shouldAddSchema) checkUnique(this, id);
-
- var willValidate = this._opts.validateSchema !== false && !skipValidation;
- var recursiveMeta;
- if (willValidate && !(recursiveMeta = id && id == resolve.normalizeId(schema.$schema)))
- this.validateSchema(schema, true);
-
- var localRefs = resolve.ids.call(this, schema);
-
- var schemaObj = new SchemaObject({
- id: id,
- schema: schema,
- localRefs: localRefs,
- cacheKey: cacheKey,
- meta: meta
- });
-
- if (id[0] != '#' && shouldAddSchema) this._refs[id] = schemaObj;
- this._cache.put(cacheKey, schemaObj);
-
- if (willValidate && recursiveMeta) this.validateSchema(schema, true);
-
- return schemaObj;
-}
-
-
-/* @this Ajv */
-function _compile(schemaObj, root) {
- if (schemaObj.compiling) {
- schemaObj.validate = callValidate;
- callValidate.schema = schemaObj.schema;
- callValidate.errors = null;
- callValidate.root = root ? root : callValidate;
- if (schemaObj.schema.$async === true)
- callValidate.$async = true;
- return callValidate;
- }
- schemaObj.compiling = true;
-
- var currentOpts;
- if (schemaObj.meta) {
- currentOpts = this._opts;
- this._opts = this._metaOpts;
- }
-
- var v;
- try { v = compileSchema.call(this, schemaObj.schema, root, schemaObj.localRefs); }
- catch(e) {
- delete schemaObj.validate;
- throw e;
- }
- finally {
- schemaObj.compiling = false;
- if (schemaObj.meta) this._opts = currentOpts;
- }
-
- schemaObj.validate = v;
- schemaObj.refs = v.refs;
- schemaObj.refVal = v.refVal;
- schemaObj.root = v.root;
- return v;
-
-
- /* @this {*} - custom context, see passContext option */
- function callValidate() {
- /* jshint validthis: true */
- var _validate = schemaObj.validate;
- var result = _validate.apply(this, arguments);
- callValidate.errors = _validate.errors;
- return result;
- }
-}
-
-
-function chooseGetId(opts) {
- switch (opts.schemaId) {
- case 'auto': return _get$IdOrId;
- case 'id': return _getId;
- default: return _get$Id;
- }
-}
-
-/* @this Ajv */
-function _getId(schema) {
- if (schema.$id) this.logger.warn('schema $id ignored', schema.$id);
- return schema.id;
-}
-
-/* @this Ajv */
-function _get$Id(schema) {
- if (schema.id) this.logger.warn('schema id ignored', schema.id);
- return schema.$id;
-}
-
-
-function _get$IdOrId(schema) {
- if (schema.$id && schema.id && schema.$id != schema.id)
- throw new Error('schema $id is different from id');
- return schema.$id || schema.id;
-}
-
-
-/**
- * Convert array of error message objects to string
- * @this Ajv
- * @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`.
- * @return {String} human readable string with all errors descriptions
- */
-function errorsText(errors, options) {
- errors = errors || this.errors;
- if (!errors) return 'No errors';
- options = options || {};
- var separator = options.separator === undefined ? ', ' : options.separator;
- var dataVar = options.dataVar === undefined ? 'data' : options.dataVar;
-
- var text = '';
- for (var i=0; i<errors.length; i++) {
- var e = errors[i];
- if (e) text += dataVar + e.dataPath + ' ' + e.message + separator;
- }
- return text.slice(0, -separator.length);
-}
-
-
-/**
- * Add custom format
- * @this Ajv
- * @param {String} name format name
- * @param {String|RegExp|Function} format string is converted to RegExp; function should return boolean (true when valid)
- * @return {Ajv} this for method chaining
- */
-function addFormat(name, format) {
- if (typeof format == 'string') format = new RegExp(format);
- this._formats[name] = format;
- return this;
-}
-
-
-function addDefaultMetaSchema(self) {
- var $dataSchema;
- if (self._opts.$data) {
- $dataSchema = require('./refs/data.json');
- self.addMetaSchema($dataSchema, $dataSchema.$id, true);
- }
- if (self._opts.meta === false) return;
- var metaSchema = require('./refs/json-schema-draft-07.json');
- if (self._opts.$data) metaSchema = $dataMetaSchema(metaSchema, META_SUPPORT_DATA);
- self.addMetaSchema(metaSchema, META_SCHEMA_ID, true);
- self._refs['http://json-schema.org/schema'] = META_SCHEMA_ID;
-}
-
-
-function addInitialSchemas(self) {
- var optsSchemas = self._opts.schemas;
- if (!optsSchemas) return;
- if (Array.isArray(optsSchemas)) self.addSchema(optsSchemas);
- else for (var key in optsSchemas) self.addSchema(optsSchemas[key], key);
-}
-
-
-function addInitialFormats(self) {
- for (var name in self._opts.formats) {
- var format = self._opts.formats[name];
- self.addFormat(name, format);
- }
-}
-
-
-function addInitialKeywords(self) {
- for (var name in self._opts.keywords) {
- var keyword = self._opts.keywords[name];
- self.addKeyword(name, keyword);
- }
-}
-
-
-function checkUnique(self, id) {
- if (self._schemas[id] || self._refs[id])
- throw new Error('schema with key or id "' + id + '" already exists');
-}
-
-
-function getMetaSchemaOptions(self) {
- var metaOpts = util.copy(self._opts);
- for (var i=0; i<META_IGNORE_OPTIONS.length; i++)
- delete metaOpts[META_IGNORE_OPTIONS[i]];
- return metaOpts;
-}
-
-
-function setLogger(self) {
- var logger = self._opts.logger;
- if (logger === false) {
- self.logger = {log: noop, warn: noop, error: noop};
- } else {
- if (logger === undefined) logger = console;
- if (!(typeof logger == 'object' && logger.log && logger.warn && logger.error))
- throw new Error('logger must implement log, warn and error methods');
- self.logger = logger;
- }
-}
-
-
-function noop() {}
diff --git a/deps/npm/node_modules/ajv/lib/cache.js b/deps/npm/node_modules/ajv/lib/cache.js
deleted file mode 100644
index 7558874c73f..00000000000
--- a/deps/npm/node_modules/ajv/lib/cache.js
+++ /dev/null
@@ -1,26 +0,0 @@
-'use strict';
-
-
-var Cache = module.exports = function Cache() {
- this._cache = {};
-};
-
-
-Cache.prototype.put = function Cache_put(key, value) {
- this._cache[key] = value;
-};
-
-
-Cache.prototype.get = function Cache_get(key) {
- return this._cache[key];
-};
-
-
-Cache.prototype.del = function Cache_del(key) {
- delete this._cache[key];
-};
-
-
-Cache.prototype.clear = function Cache_clear() {
- this._cache = {};
-};
diff --git a/deps/npm/node_modules/ajv/lib/compile/async.js b/deps/npm/node_modules/ajv/lib/compile/async.js
deleted file mode 100644
index 6a30b8892bb..00000000000
--- a/deps/npm/node_modules/ajv/lib/compile/async.js
+++ /dev/null
@@ -1,90 +0,0 @@
-'use strict';
-
-var MissingRefError = require('./error_classes').MissingRef;
-
-module.exports = compileAsync;
-
-
-/**
- * Creates validating function for passed schema with asynchronous loading of missing schemas.
- * `loadSchema` option should be a function that accepts schema uri and returns promise that resolves with the schema.
- * @this Ajv
- * @param {Object} schema schema object
- * @param {Boolean} meta optional true to compile meta-schema; this parameter can be skipped
- * @param {Function} callback an optional node-style callback, it is called with 2 parameters: error (or null) and validating function.
- * @return {Promise} promise that resolves with a validating function.
- */
-function compileAsync(schema, meta, callback) {
- /* eslint no-shadow: 0 */
- /* global Promise */
- /* jshint validthis: true */
- var self = this;
- if (typeof this._opts.loadSchema != 'function')
- throw new Error('options.loadSchema should be a function');
-
- if (typeof meta == 'function') {
- callback = meta;
- meta = undefined;
- }
-
- var p = loadMetaSchemaOf(schema).then(function () {
- var schemaObj = self._addSchema(schema, undefined, meta);
- return schemaObj.validate || _compileAsync(schemaObj);
- });
-
- if (callback) {
- p.then(
- function(v) { callback(null, v); },
- callback
- );
- }
-
- return p;
-
-
- function loadMetaSchemaOf(sch) {
- var $schema = sch.$schema;
- return $schema && !self.getSchema($schema)
- ? compileAsync.call(self, { $ref: $schema }, true)
- : Promise.resolve();
- }
-
-
- function _compileAsync(schemaObj) {
- try { return self._compile(schemaObj); }
- catch(e) {
- if (e instanceof MissingRefError) return loadMissingSchema(e);
- throw e;
- }
-
-
- function loadMissingSchema(e) {
- var ref = e.missingSchema;
- if (added(ref)) throw new Error('Schema ' + ref + ' is loaded but ' + e.missingRef + ' cannot be resolved');
-
- var schemaPromise = self._loadingSchemas[ref];
- if (!schemaPromise) {
- schemaPromise = self._loadingSchemas[ref] = self._opts.loadSchema(ref);
- schemaPromise.then(removePromise, removePromise);
- }
-
- return schemaPromise.then(function (sch) {
- if (!added(ref)) {
- return loadMetaSchemaOf(sch).then(function () {
- if (!added(ref)) self.addSchema(sch, ref, undefined, meta);
- });
- }
- }).then(function() {
- return _compileAsync(schemaObj);
- });
-
- function removePromise() {
- delete self._loadingSchemas[ref];
- }
-
- function added(ref) {
- return self._refs[ref] || self._schemas[ref];
- }
- }
- }
-}
diff --git a/deps/npm/node_modules/ajv/lib/compile/equal.js b/deps/npm/node_modules/ajv/lib/compile/equal.js
deleted file mode 100644
index d6c2acef874..00000000000
--- a/deps/npm/node_modules/ajv/lib/compile/equal.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-// do NOT remove this file - it would break pre-compiled schemas
-// https://github.com/ajv-validator/ajv/issues/889
-module.exports = require('fast-deep-equal');
diff --git a/deps/npm/node_modules/ajv/lib/compile/error_classes.js b/deps/npm/node_modules/ajv/lib/compile/error_classes.js
deleted file mode 100644
index 0b0ec4e4e38..00000000000
--- a/deps/npm/node_modules/ajv/lib/compile/error_classes.js
+++ /dev/null
@@ -1,34 +0,0 @@
-'use strict';
-
-var resolve = require('./resolve');
-
-module.exports = {
- Validation: errorSubclass(ValidationError),
- MissingRef: errorSubclass(MissingRefError)
-};
-
-
-function ValidationError(errors) {
- this.message = 'validation failed';
- this.errors = errors;
- this.ajv = this.validation = true;
-}
-
-
-MissingRefError.message = function (baseId, ref) {
- return 'can\'t resolve reference ' + ref + ' from id ' + baseId;
-};
-
-
-function MissingRefError(baseId, ref, message) {
- this.message = message || MissingRefError.message(baseId, ref);
- this.missingRef = resolve.url(baseId, ref);
- this.missingSchema = resolve.normalizeId(resolve.fullPath(this.missingRef));
-}
-
-
-function errorSubclass(Subclass) {
- Subclass.prototype = Object.create(Error.prototype);
- Subclass.prototype.constructor = Subclass;
- return Subclass;
-}
diff --git a/deps/npm/node_modules/ajv/lib/compile/formats.js b/deps/npm/node_modules/ajv/lib/compile/formats.js
deleted file mode 100644
index de94a63bbc3..00000000000
--- a/deps/npm/node_modules/ajv/lib/compile/formats.js
+++ /dev/null
@@ -1,142 +0,0 @@
-'use strict';
-
-var util = require('./util');
-
-var DATE = /^(\d\d\d\d)-(\d\d)-(\d\d)$/;
-var DAYS = [0,31,28,31,30,31,30,31,31,30,31,30,31];
-var TIME = /^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i;
-var HOSTNAME = /^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-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 URIREF = /^(?:[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;
-// uri-template: https://tools.ietf.org/html/rfc6570
-var URITEMPLATE = /^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i;
-// For the source: https://gist.github.com/dperini/729294
-// For test cases: https://mathiasbynens.be/demo/url-regex
-// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983.
-// var URL = /^(?:(?:https?|ftp):\/\/)(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!127(?:\.\d{1,3}){3})(?!169\.254(?:\.\d{1,3}){2})(?!192\.168(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u{00a1}-\u{ffff}0-9]+-)*[a-z\u{00a1}-\u{ffff}0-9]+)(?:\.(?:[a-z\u{00a1}-\u{ffff}0-9]+-)*[a-z\u{00a1}-\u{ffff}0-9]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu;
-var URL = /^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i;
-var UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;
-var JSON_POINTER = /^(?:\/(?:[^~/]|~0|~1)*)*$/;
-var JSON_POINTER_URI_FRAGMENT = /^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;
-var RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;
-
-
-module.exports = formats;
-
-function formats(mode) {
- mode = mode == 'full' ? 'full' : 'fast';
- return util.copy(formats[mode]);
-}
-
-
-formats.fast = {
- // date: http://tools.ietf.org/html/rfc3339#section-5.6
- date: /^\d\d\d\d-[0-1]\d-[0-3]\d$/,
- // date-time: http://tools.ietf.org/html/rfc3339#section-5.6
- time: /^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\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|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,
- // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js
- uri: /^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,
- 'uri-reference': /^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,
- 'uri-template': URITEMPLATE,
- url: URL,
- // email (sources from jsen validator):
- // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363
- // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')
- 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: HOSTNAME,
- // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html
- ipv4: /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,
- // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses
- 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: regex,
- // uuid: http://tools.ietf.org/html/rfc4122
- uuid: UUID,
- // JSON-pointer: https://tools.ietf.org/html/rfc6901
- // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A
- 'json-pointer': JSON_POINTER,
- 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,
- // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00
- 'relative-json-pointer': RELATIVE_JSON_POINTER
-};
-
-
-formats.full = {
- date: date,
- time: time,
- 'date-time': date_time,
- uri: uri,
- 'uri-reference': URIREF,
- 'uri-template': URITEMPLATE,
- url: URL,
- 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: HOSTNAME,
- 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: regex,
- uuid: UUID,
- 'json-pointer': JSON_POINTER,
- 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,
- 'relative-json-pointer': RELATIVE_JSON_POINTER
-};
-
-
-function isLeapYear(year) {
- // https://tools.ietf.org/html/rfc3339#appendix-C
- return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
-}
-
-
-function date(str) {
- // full-date from http://tools.ietf.org/html/rfc3339#section-5.6
- var matches = str.match(DATE);
- if (!matches) return false;
-
- var year = +matches[1];
- var month = +matches[2];
- var day = +matches[3];
-
- return month >= 1 && month <= 12 && day >= 1 &&
- day <= (month == 2 && isLeapYear(year) ? 29 : DAYS[month]);
-}
-
-
-function time(str, full) {
- var matches = str.match(TIME);
- if (!matches) return false;
-
- var hour = matches[1];
- var minute = matches[2];
- var second = matches[3];
- var timeZone = matches[5];
- return ((hour <= 23 && minute <= 59 && second <= 59) ||
- (hour == 23 && minute == 59 && second == 60)) &&
- (!full || timeZone);
-}
-
-
-var DATE_TIME_SEPARATOR = /t|\s/i;
-function date_time(str) {
- // http://tools.ietf.org/html/rfc3339#section-5.6
- var dateTime = str.split(DATE_TIME_SEPARATOR);
- return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true);
-}
-
-
-var NOT_URI_FRAGMENT = /\/|:/;
-function uri(str) {
- // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required "."
- return NOT_URI_FRAGMENT.test(str) && URI.test(str);
-}
-
-
-var Z_ANCHOR = /[^\\]\\Z/;
-function regex(str) {
- if (Z_ANCHOR.test(str)) return false;
- try {
- new RegExp(str);
- return true;
- } catch(e) {
- return false;
- }
-}
diff --git a/deps/npm/node_modules/ajv/lib/compile/index.js b/deps/npm/node_modules/ajv/lib/compile/index.js
deleted file mode 100644
index 97518c42479..00000000000
--- a/deps/npm/node_modules/ajv/lib/compile/index.js
+++ /dev/null
@@ -1,387 +0,0 @@
-'use strict';
-
-var resolve = require('./resolve')
- , util = require('./util')
- , errorClasses = require('./error_classes')
- , stableStringify = require('fast-json-stable-stringify');
-
-var validateGenerator = require('../dotjs/validate');
-
-/**
- * Functions below are used inside compiled validations function
- */
-
-var ucs2length = util.ucs2length;
-var equal = require('fast-deep-equal');
-
-// this error is thrown by async schemas to return validation errors via exception
-var ValidationError = errorClasses.Validation;
-
-module.exports = compile;
-
-
-/**
- * Compiles schema to validation function
- * @this Ajv
- * @param {Object} schema schema object
- * @param {Object} root object with information about the root schema for this schema
- * @param {Object} localRefs the hash of local references inside the schema (created by resolve.id), used for inline resolution
- * @param {String} baseId base ID for IDs in the schema
- * @return {Function} validation function
- */
-function compile(schema, root, localRefs, baseId) {
- /* jshint validthis: true, evil: true */
- /* eslint no-shadow: 0 */
- var self = this
- , opts = this._opts
- , refVal = [ undefined ]
- , refs = {}
- , patterns = []
- , patternsHash = {}
- , defaults = []
- , defaultsHash = {}
- , customRules = [];
-
- root = root || { schema: schema, refVal: refVal, refs: refs };
-
- var c = checkCompiling.call(this, schema, root, baseId);
- var compilation = this._compilations[c.index];
- if (c.compiling) return (compilation.callValidate = callValidate);
-
- var formats = this._formats;
- var RULES = this.RULES;
-
- try {
- var v = localCompile(schema, root, localRefs, baseId);
- compilation.validate = v;
- var cv = compilation.callValidate;
- if (cv) {
- cv.schema = v.schema;
- cv.errors = null;
- cv.refs = v.refs;
- cv.refVal = v.refVal;
- cv.root = v.root;
- cv.$async = v.$async;
- if (opts.sourceCode) cv.source = v.source;
- }
- return v;
- } finally {
- endCompiling.call(this, schema, root, baseId);
- }
-
- /* @this {*} - custom context, see passContext option */
- function callValidate() {
- /* jshint validthis: true */
- var validate = compilation.validate;
- var result = validate.apply(this, arguments);
- callValidate.errors = validate.errors;
- return result;
- }
-
- function localCompile(_schema, _root, localRefs, baseId) {
- var isRoot = !_root || (_root && _root.schema == _schema);
- if (_root.schema != root.schema)
- return compile.call(self, _schema, _root, localRefs, baseId);
-
- var $async = _schema.$async === true;
-
- var sourceCode = validateGenerator({
- isTop: true,
- schema: _schema,
- isRoot: isRoot,
- baseId: baseId,
- root: _root,
- schemaPath: '',
- errSchemaPath: '#',
- errorPath: '""',
- MissingRefError: errorClasses.MissingRef,
- RULES: RULES,
- validate: validateGenerator,
- util: util,
- resolve: resolve,
- resolveRef: resolveRef,
- usePattern: usePattern,
- useDefault: useDefault,
- useCustomRule: useCustomRule,
- opts: opts,
- formats: formats,
- logger: self.logger,
- self: self
- });
-
- sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode)
- + vars(defaults, defaultCode) + vars(customRules, customRuleCode)
- + sourceCode;
-
- if (opts.processCode) sourceCode = opts.processCode(sourceCode, _schema);
- // console.log('\n\n\n *** \n', JSON.stringify(sourceCode));
- var validate;
- try {
- var makeValidate = new Function(
- 'self',
- 'RULES',
- 'formats',
- 'root',
- 'refVal',
- 'defaults',
- 'customRules',
- 'equal',
- 'ucs2length',
- 'ValidationError',
- sourceCode
- );
-
- validate = makeValidate(
- self,
- RULES,
- formats,
- root,
- refVal,
- defaults,
- customRules,
- equal,
- ucs2length,
- ValidationError
- );
-
- refVal[0] = validate;
- } catch(e) {
- self.logger.error('Error compiling schema, function code:', sourceCode);
- throw e;
- }
-
- validate.schema = _schema;
- validate.errors = null;
- validate.refs = refs;
- validate.refVal = refVal;
- validate.root = isRoot ? validate : _root;
- if ($async) validate.$async = true;
- if (opts.sourceCode === true) {
- validate.source = {
- code: sourceCode,
- patterns: patterns,
- defaults: defaults
- };
- }
-
- return validate;
- }
-
- function resolveRef(baseId, ref, isRoot) {
- ref = resolve.url(baseId, ref);
- var refIndex = refs[ref];
- var _refVal, refCode;
- if (refIndex !== undefined) {
- _refVal = refVal[refIndex];
- refCode = 'refVal[' + refIndex + ']';
- return resolvedRef(_refVal, refCode);
- }
- if (!isRoot && root.refs) {
- var rootRefId = root.refs[ref];
- if (rootRefId !== undefined) {
- _refVal = root.refVal[rootRefId];
- refCode = addLocalRef(ref, _refVal);
- return resolvedRef(_refVal, refCode);
- }
- }
-
- refCode = addLocalRef(ref);
- var v = resolve.call(self, localCompile, root, ref);
- if (v === undefined) {
- var localSchema = localRefs && localRefs[ref];
- if (localSchema) {
- v = resolve.inlineRef(localSchema, opts.inlineRefs)
- ? localSchema
- : compile.call(self, localSchema, root, localRefs, baseId);
- }
- }
-
- if (v === undefined) {
- removeLocalRef(ref);
- } else {
- replaceLocalRef(ref, v);
- return resolvedRef(v, refCode);
- }
- }
-
- function addLocalRef(ref, v) {
- var refId = refVal.length;
- refVal[refId] = v;
- refs[ref] = refId;
- return 'refVal' + refId;
- }
-
- function removeLocalRef(ref) {
- delete refs[ref];
- }
-
- function replaceLocalRef(ref, v) {
- var refId = refs[ref];
- refVal[refId] = v;
- }
-
- function resolvedRef(refVal, code) {
- return typeof refVal == 'object' || typeof refVal == 'boolean'
- ? { code: code, schema: refVal, inline: true }
- : { code: code, $async: refVal && !!refVal.$async };
- }
-
- function usePattern(regexStr) {
- var index = patternsHash[regexStr];
- if (index === undefined) {
- index = patternsHash[regexStr] = patterns.length;
- patterns[index] = regexStr;
- }
- return 'pattern' + index;
- }
-
- function useDefault(value) {
- switch (typeof value) {
- case 'boolean':
- case 'number':
- return '' + value;
- case 'string':
- return util.toQuotedString(value);
- case 'object':
- if (value === null) return 'null';
- var valueStr = stableStringify(value);
- var index = defaultsHash[valueStr];
- if (index === undefined) {
- index = defaultsHash[valueStr] = defaults.length;
- defaults[index] = value;
- }
- return 'default' + index;
- }
- }
-
- function useCustomRule(rule, schema, parentSchema, it) {
- if (self._opts.validateSchema !== false) {
- var deps = rule.definition.dependencies;
- if (deps && !deps.every(function(keyword) {
- return Object.prototype.hasOwnProperty.call(parentSchema, keyword);
- }))
- throw new Error('parent schema must have all required keywords: ' + deps.join(','));
-
- var validateSchema = rule.definition.validateSchema;
- if (validateSchema) {
- var valid = validateSchema(schema);
- if (!valid) {
- var message = 'keyword schema is invalid: ' + self.errorsText(validateSchema.errors);
- if (self._opts.validateSchema == 'log') self.logger.error(message);
- else throw new Error(message);
- }
- }
- }
-
- var compile = rule.definition.compile
- , inline = rule.definition.inline
- , macro = rule.definition.macro;
-
- var validate;
- if (compile) {
- validate = compile.call(self, schema, parentSchema, it);
- } else if (macro) {
- validate = macro.call(self, schema, parentSchema, it);
- if (opts.validateSchema !== false) self.validateSchema(validate, true);
- } else if (inline) {
- validate = inline.call(self, it, rule.keyword, schema, parentSchema);
- } else {
- validate = rule.definition.validate;
- if (!validate) return;
- }
-
- if (validate === undefined)
- throw new Error('custom keyword "' + rule.keyword + '"failed to compile');
-
- var index = customRules.length;
- customRules[index] = validate;
-
- return {
- code: 'customRule' + index,
- validate: validate
- };
- }
-}
-
-
-/**
- * Checks if the schema is currently compiled
- * @this Ajv
- * @param {Object} schema schema to compile
- * @param {Object} root root object
- * @param {String} baseId base schema ID
- * @return {Object} object with properties "index" (compilation index) and "compiling" (boolean)
- */
-function checkCompiling(schema, root, baseId) {
- /* jshint validthis: true */
- var index = compIndex.call(this, schema, root, baseId);
- if (index >= 0) return { index: index, compiling: true };
- index = this._compilations.length;
- this._compilations[index] = {
- schema: schema,
- root: root,
- baseId: baseId
- };
- return { index: index, compiling: false };
-}
-
-
-/**
- * Removes the schema from the currently compiled list
- * @this Ajv
- * @param {Object} schema schema to compile
- * @param {Object} root root object
- * @param {String} baseId base schema ID
- */
-function endCompiling(schema, root, baseId) {
- /* jshint validthis: true */
- var i = compIndex.call(this, schema, root, baseId);
- if (i >= 0) this._compilations.splice(i, 1);
-}
-
-
-/**
- * Index of schema compilation in the currently compiled list
- * @this Ajv
- * @param {Object} schema schema to compile
- * @param {Object} root root object
- * @param {String} baseId base schema ID
- * @return {Integer} compilation index
- */
-function compIndex(schema, root, baseId) {
- /* jshint validthis: true */
- for (var i=0; i<this._compilations.length; i++) {
- var c = this._compilations[i];
- if (c.schema == schema && c.root == root && c.baseId == baseId) return i;
- }
- return -1;
-}
-
-
-function patternCode(i, patterns) {
- return 'var pattern' + i + ' = new RegExp(' + util.toQuotedString(patterns[i]) + ');';
-}
-
-
-function defaultCode(i) {
- return 'var default' + i + ' = defaults[' + i + '];';
-}
-
-
-function refValCode(i, refVal) {
- return refVal[i] === undefined ? '' : 'var refVal' + i + ' = refVal[' + i + '];';
-}
-
-
-function customRuleCode(i) {
- return 'var customRule' + i + ' = customRules[' + i + '];';
-}
-
-
-function vars(arr, statement) {
- if (!arr.length) return '';
- var code = '';
- for (var i=0; i<arr.length; i++)
- code += statement(i, arr);
- return code;
-}
diff --git a/deps/npm/node_modules/ajv/lib/compile/resolve.js b/deps/npm/node_modules/ajv/lib/compile/resolve.js
deleted file mode 100644
index 66f2aee9b6a..00000000000
--- a/deps/npm/node_modules/ajv/lib/compile/resolve.js
+++ /dev/null
@@ -1,270 +0,0 @@
-'use strict';
-
-var URI = require('uri-js')
- , equal = require('fast-deep-equal')
- , util = require('./util')
- , SchemaObject = require('./schema_obj')
- , traverse = require('json-schema-traverse');
-
-module.exports = resolve;
-
-resolve.normalizeId = normalizeId;
-resolve.fullPath = getFullPath;
-resolve.url = resolveUrl;
-resolve.ids = resolveIds;
-resolve.inlineRef = inlineRef;
-resolve.schema = resolveSchema;
-
-/**
- * [resolve and compile the references ($ref)]
- * @this Ajv
- * @param {Function} compile reference to schema compilation funciton (localCompile)
- * @param {Object} root object with information about the root schema for the current schema
- * @param {String} ref reference to resolve
- * @return {Object|Function} schema object (if the schema can be inlined) or validation function
- */
-function resolve(compile, root, ref) {
- /* jshint validthis: true */
- var refVal = this._refs[ref];
- if (typeof refVal == 'string') {
- if (this._refs[refVal]) refVal = this._refs[refVal];
- else return resolve.call(this, compile, root, refVal);
- }
-
- refVal = refVal || this._schemas[ref];
- if (refVal instanceof SchemaObject) {
- return inlineRef(refVal.schema, this._opts.inlineRefs)
- ? refVal.schema
- : refVal.validate || this._compile(refVal);
- }
-
- var res = resolveSchema.call(this, root, ref);
- var schema, v, baseId;
- if (res) {
- schema = res.schema;
- root = res.root;
- baseId = res.baseId;
- }
-
- if (schema instanceof SchemaObject) {
- v = schema.validate || compile.call(this, schema.schema, root, undefined, baseId);
- } else if (schema !== undefined) {
- v = inlineRef(schema, this._opts.inlineRefs)
- ? schema
- : compile.call(this, schema, root, undefined, baseId);
- }
-
- return v;
-}
-
-
-/**
- * Resolve schema, its root and baseId
- * @this Ajv
- * @param {Object} root root object with properties schema, refVal, refs
- * @param {String} ref reference to resolve
- * @return {Object} object with properties schema, root, baseId
- */
-function resolveSchema(root, ref) {
- /* jshint validthis: true */
- var p = URI.parse(ref)
- , refPath = _getFullPath(p)
- , baseId = getFullPath(this._getId(root.schema));
- if (Object.keys(root.schema).length === 0 || refPath !== baseId) {
- var id = normalizeId(refPath);
- var refVal = this._refs[id];
- if (typeof refVal == 'string') {
- return resolveRecursive.call(this, root, refVal, p);
- } else if (refVal instanceof SchemaObject) {
- if (!refVal.validate) this._compile(refVal);
- root = refVal;
- } else {
- refVal = this._schemas[id];
- if (refVal instanceof SchemaObject) {
- if (!refVal.validate) this._compile(refVal);
- if (id == normalizeId(ref))
- return { schema: refVal, root: root, baseId: baseId };
- root = refVal;
- } else {
- return;
- }
- }
- if (!root.schema) return;
- baseId = getFullPath(this._getId(root.schema));
- }
- return getJsonPointer.call(this, p, baseId, root.schema, root);
-}
-
-
-/* @this Ajv */
-function resolveRecursive(root, ref, parsedRef) {
- /* jshint validthis: true */
- var res = resolveSchema.call(this, root, ref);
- if (res) {
- var schema = res.schema;
- var baseId = res.baseId;
- root = res.root;
- var id = this._getId(schema);
- if (id) baseId = resolveUrl(baseId, id);
- return getJsonPointer.call(this, parsedRef, baseId, schema, root);
- }
-}
-
-
-var PREVENT_SCOPE_CHANGE = util.toHash(['properties', 'patternProperties', 'enum', 'dependencies', 'definitions']);
-/* @this Ajv */
-function getJsonPointer(parsedRef, baseId, schema, root) {
- /* jshint validthis: true */
- parsedRef.fragment = parsedRef.fragment || '';
- if (parsedRef.fragment.slice(0,1) != '/') return;
- var parts = parsedRef.fragment.split('/');
-
- for (var i = 1; i < parts.length; i++) {
- var part = parts[i];
- if (part) {
- part = util.unescapeFragment(part);
- schema = schema[part];
- if (schema === undefined) break;
- var id;
- if (!PREVENT_SCOPE_CHANGE[part]) {
- id = this._getId(schema);
- if (id) baseId = resolveUrl(baseId, id);
- if (schema.$ref) {
- var $ref = resolveUrl(baseId, schema.$ref);
- var res = resolveSchema.call(this, root, $ref);
- if (res) {
- schema = res.schema;
- root = res.root;
- baseId = res.baseId;
- }
- }
- }
- }
- }
- if (schema !== undefined && schema !== root.schema)
- return { schema: schema, root: root, baseId: baseId };
-}
-
-
-var SIMPLE_INLINED = util.toHash([
- 'type', 'format', 'pattern',
- 'maxLength', 'minLength',
- 'maxProperties', 'minProperties',
- 'maxItems', 'minItems',
- 'maximum', 'minimum',
- 'uniqueItems', 'multipleOf',
- 'required', 'enum'
-]);
-function inlineRef(schema, limit) {
- if (limit === false) return false;
- if (limit === undefined || limit === true) return checkNoRef(schema);
- else if (limit) return countKeys(schema) <= limit;
-}
-
-
-function checkNoRef(schema) {
- var item;
- if (Array.isArray(schema)) {
- for (var i=0; i<schema.length; i++) {
- item = schema[i];
- if (typeof item == 'object' && !checkNoRef(item)) return false;
- }
- } else {
- for (var key in schema) {
- if (key == '$ref') return false;
- item = schema[key];
- if (typeof item == 'object' && !checkNoRef(item)) return false;
- }
- }
- return true;
-}
-
-
-function countKeys(schema) {
- var count = 0, item;
- if (Array.isArray(schema)) {
- for (var i=0; i<schema.length; i++) {
- item = schema[i];
- if (typeof item == 'object') count += countKeys(item);
- if (count == Infinity) return Infinity;
- }
- } else {
- for (var key in schema) {
- if (key == '$ref') return Infinity;
- if (SIMPLE_INLINED[key]) {
- count++;
- } else {
- item = schema[key];
- if (typeof item == 'object') count += countKeys(item) + 1;
- if (count == Infinity) return Infinity;
- }
- }
- }
- return count;
-}
-
-
-function getFullPath(id, normalize) {
- if (normalize !== false) id = normalizeId(id);
- var p = URI.parse(id);
- return _getFullPath(p);
-}
-
-
-function _getFullPath(p) {
- return URI.serialize(p).split('#')[0] + '#';
-}
-
-
-var TRAILING_SLASH_HASH = /#\/?$/;
-function normalizeId(id) {
- return id ? id.replace(TRAILING_SLASH_HASH, '') : '';
-}
-
-
-function resolveUrl(baseId, id) {
- id = normalizeId(id);
- return URI.resolve(baseId, id);
-}
-
-
-/* @this Ajv */
-function resolveIds(schema) {
- var schemaId = normalizeId(this._getId(schema));
- var baseIds = {'': schemaId};
- var fullPaths = {'': getFullPath(schemaId, false)};
- var localRefs = {};
- var self = this;
-
- traverse(schema, {allKeys: true}, function(sch, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {
- if (jsonPtr === '') return;
- var id = self._getId(sch);
- var baseId = baseIds[parentJsonPtr];
- var fullPath = fullPaths[parentJsonPtr] + '/' + parentKeyword;
- if (keyIndex !== undefined)
- fullPath += '/' + (typeof keyIndex == 'number' ? keyIndex : util.escapeFragment(keyIndex));
-
- if (typeof id == 'string') {
- id = baseId = normalizeId(baseId ? URI.resolve(baseId, id) : id);
-
- var refVal = self._refs[id];
- if (typeof refVal == 'string') refVal = self._refs[refVal];
- if (refVal && refVal.schema) {
- if (!equal(sch, refVal.schema))
- throw new Error('id "' + id + '" resolves to more than one schema');
- } else if (id != normalizeId(fullPath)) {
- if (id[0] == '#') {
- if (localRefs[id] && !equal(sch, localRefs[id]))
- throw new Error('id "' + id + '" resolves to more than one schema');
- localRefs[id] = sch;
- } else {
- self._refs[id] = fullPath;
- }
- }
- }
- baseIds[jsonPtr] = baseId;
- fullPaths[jsonPtr] = fullPath;
- });
-
- return localRefs;
-}
diff --git a/deps/npm/node_modules/ajv/lib/compile/rules.js b/deps/npm/node_modules/ajv/lib/compile/rules.js
deleted file mode 100644
index 08b25aeb912..00000000000
--- a/deps/npm/node_modules/ajv/lib/compile/rules.js
+++ /dev/null
@@ -1,66 +0,0 @@
-'use strict';
-
-var ruleModules = require('../dotjs')
- , toHash = require('./util').toHash;
-
-module.exports = function rules() {
- var RULES = [
- { type: 'number',
- rules: [ { 'maximum': ['exclusiveMaximum'] },
- { 'minimum': ['exclusiveMinimum'] }, 'multipleOf', 'format'] },
- { type: 'string',
- rules: [ 'maxLength', 'minLength', 'pattern', 'format' ] },
- { type: 'array',
- rules: [ 'maxItems', 'minItems', 'items', 'contains', 'uniqueItems' ] },
- { type: 'object',
- rules: [ 'maxProperties', 'minProperties', 'required', 'dependencies', 'propertyNames',
- { 'properties': ['additionalProperties', 'patternProperties'] } ] },
- { rules: [ '$ref', 'const', 'enum', 'not', 'anyOf', 'oneOf', 'allOf', 'if' ] }
- ];
-
- var ALL = [ 'type', '$comment' ];
- var KEYWORDS = [
- '$schema', '$id', 'id', '$data', '$async', 'title',
- 'description', 'default', 'definitions',
- 'examples', 'readOnly', 'writeOnly',
- 'contentMediaType', 'contentEncoding',
- 'additionalItems', 'then', 'else'
- ];
- var TYPES = [ 'number', 'integer', 'string', 'array', 'object', 'boolean', 'null' ];
- RULES.all = toHash(ALL);
- RULES.types = toHash(TYPES);
-
- RULES.forEach(function (group) {
- group.rules = group.rules.map(function (keyword) {
- var implKeywords;
- if (typeof keyword == 'object') {
- var key = Object.keys(keyword)[0];
- implKeywords = keyword[key];
- keyword = key;
- implKeywords.forEach(function (k) {
- ALL.push(k);
- RULES.all[k] = true;
- });
- }
- ALL.push(keyword);
- var rule = RULES.all[keyword] = {
- keyword: keyword,
- code: ruleModules[keyword],
- implements: implKeywords
- };
- return rule;
- });
-
- RULES.all.$comment = {
- keyword: '$comment',
- code: ruleModules.$comment
- };
-
- if (group.type) RULES.types[group.type] = group;
- });
-
- RULES.keywords = toHash(ALL.concat(KEYWORDS));
- RULES.custom = {};
-
- return RULES;
-};
diff --git a/deps/npm/node_modules/ajv/lib/compile/schema_obj.js b/deps/npm/node_modules/ajv/lib/compile/schema_obj.js
deleted file mode 100644
index e7903b0f46b..00000000000
--- a/deps/npm/node_modules/ajv/lib/compile/schema_obj.js
+++ /dev/null
@@ -1,9 +0,0 @@
-'use strict';
-
-var util = require('./util');
-
-module.exports = SchemaObject;
-
-function SchemaObject(obj) {
- util.copy(obj, this);
-}
diff --git a/deps/npm/node_modules/ajv/lib/compile/ucs2length.js b/deps/npm/node_modules/ajv/lib/compile/ucs2length.js
deleted file mode 100644
index d193fb17000..00000000000
--- a/deps/npm/node_modules/ajv/lib/compile/ucs2length.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-// https://mathiasbynens.be/notes/javascript-encoding
-// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode
-module.exports = function ucs2length(str) {
- var length = 0
- , len = str.length
- , pos = 0
- , value;
- while (pos < len) {
- length++;
- value = str.charCodeAt(pos++);
- if (value >= 0xD800 && value <= 0xDBFF && pos < len) {
- // high surrogate, and there is a next character
- value = str.charCodeAt(pos);
- if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate
- }
- }
- return length;
-};
diff --git a/deps/npm/node_modules/ajv/lib/compile/util.js b/deps/npm/node_modules/ajv/lib/compile/util.js
deleted file mode 100644
index ef07b8c7579..00000000000
--- a/deps/npm/node_modules/ajv/lib/compile/util.js
+++ /dev/null
@@ -1,239 +0,0 @@
-'use strict';
-
-
-module.exports = {
- copy: copy,
- checkDataType: checkDataType,
- checkDataTypes: checkDataTypes,
- coerceToTypes: coerceToTypes,
- toHash: toHash,
- getProperty: getProperty,
- escapeQuotes: escapeQuotes,
- equal: require('fast-deep-equal'),
- ucs2length: require('./ucs2length'),
- varOccurences: varOccurences,
- varReplace: varReplace,
- schemaHasRules: schemaHasRules,
- schemaHasRulesExcept: schemaHasRulesExcept,
- schemaUnknownRules: schemaUnknownRules,
- toQuotedString: toQuotedString,
- getPathExpr: getPathExpr,
- getPath: getPath,
- getData: getData,
- unescapeFragment: unescapeFragment,
- unescapeJsonPointer: unescapeJsonPointer,
- escapeFragment: escapeFragment,
- escapeJsonPointer: escapeJsonPointer
-};
-
-
-function copy(o, to) {
- to = to || {};
- for (var key in o) to[key] = o[key];
- return to;
-}
-
-
-function checkDataType(dataType, data, strictNumbers, negate) {
- var EQUAL = negate ? ' !== ' : ' === '
- , AND = negate ? ' || ' : ' && '
- , OK = negate ? '!' : ''
- , NOT = negate ? '' : '!';
- switch (dataType) {
- case 'null': return data + EQUAL + 'null';
- case 'array': return OK + 'Array.isArray(' + data + ')';
- case 'object': return '(' + OK + data + AND +
- 'typeof ' + data + EQUAL + '"object"' + AND +
- NOT + 'Array.isArray(' + data + '))';
- case 'integer': return '(typeof ' + data + EQUAL + '"number"' + AND +
- NOT + '(' + data + ' % 1)' +
- AND + data + EQUAL + data +
- (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';
- case 'number': return '(typeof ' + data + EQUAL + '"' + dataType + '"' +
- (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';
- default: return 'typeof ' + data + EQUAL + '"' + dataType + '"';
- }
-}
-
-
-function checkDataTypes(dataTypes, data, strictNumbers) {
- switch (dataTypes.length) {
- case 1: return checkDataType(dataTypes[0], data, strictNumbers, true);
- default:
- var code = '';
- var types = toHash(dataTypes);
- if (types.array && types.object) {
- code = types.null ? '(': '(!' + data + ' || ';
- code += 'typeof ' + data + ' !== "object")';
- delete types.null;
- delete types.array;
- delete types.object;
- }
- if (types.number) delete types.integer;
- for (var t in types)
- code += (code ? ' && ' : '' ) + checkDataType(t, data, strictNumbers, true);
-
- return code;
- }
-}
-
-
-var COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]);
-function coerceToTypes(optionCoerceTypes, dataTypes) {
- if (Array.isArray(dataTypes)) {
- var types = [];
- for (var i=0; i<dataTypes.length; i++) {
- var t = dataTypes[i];
- if (COERCE_TO_TYPES[t]) types[types.length] = t;
- else if (optionCoerceTypes === 'array' && t === 'array') types[types.length] = t;
- }
- if (types.length) return types;
- } else if (COERCE_TO_TYPES[dataTypes]) {
- return [dataTypes];
- } else if (optionCoerceTypes === 'array' && dataTypes === 'array') {
- return ['array'];
- }
-}
-
-
-function toHash(arr) {
- var hash = {};
- for (var i=0; i<arr.length; i++) hash[arr[i]] = true;
- return hash;
-}
-
-
-var IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;
-var SINGLE_QUOTE = /'|\\/g;
-function getProperty(key) {
- return typeof key == 'number'
- ? '[' + key + ']'
- : IDENTIFIER.test(key)
- ? '.' + key
- : "['" + escapeQuotes(key) + "']";
-}
-
-
-function escapeQuotes(str) {
- return str.replace(SINGLE_QUOTE, '\\$&')
- .replace(/\n/g, '\\n')
- .replace(/\r/g, '\\r')
- .replace(/\f/g, '\\f')
- .replace(/\t/g, '\\t');
-}
-
-
-function varOccurences(str, dataVar) {
- dataVar += '[^0-9]';
- var matches = str.match(new RegExp(dataVar, 'g'));
- return matches ? matches.length : 0;
-}
-
-
-function varReplace(str, dataVar, expr) {
- dataVar += '([^0-9])';
- expr = expr.replace(/\$/g, '$$$$');
- return str.replace(new RegExp(dataVar, 'g'), expr + '$1');
-}
-
-
-function schemaHasRules(schema, rules) {
- if (typeof schema == 'boolean') return !schema;
- for (var key in schema) if (rules[key]) return true;
-}
-
-
-function schemaHasRulesExcept(schema, rules, exceptKeyword) {
- if (typeof schema == 'boolean') return !schema && exceptKeyword != 'not';
- for (var key in schema) if (key != exceptKeyword && rules[key]) return true;
-}
-
-
-function schemaUnknownRules(schema, rules) {
- if (typeof schema == 'boolean') return;
- for (var key in schema) if (!rules[key]) return key;
-}
-
-
-function toQuotedString(str) {
- return '\'' + escapeQuotes(str) + '\'';
-}
-
-
-function getPathExpr(currentPath, expr, jsonPointers, isNumber) {
- var path = jsonPointers // false by default
- ? '\'/\' + ' + expr + (isNumber ? '' : '.replace(/~/g, \'~0\').replace(/\\//g, \'~1\')')
- : (isNumber ? '\'[\' + ' + expr + ' + \']\'' : '\'[\\\'\' + ' + expr + ' + \'\\\']\'');
- return joinPaths(currentPath, path);
-}
-
-
-function getPath(currentPath, prop, jsonPointers) {
- var path = jsonPointers // false by default
- ? toQuotedString('/' + escapeJsonPointer(prop))
- : toQuotedString(getProperty(prop));
- return joinPaths(currentPath, path);
-}
-
-
-var JSON_POINTER = /^\/(?:[^~]|~0|~1)*$/;
-var RELATIVE_JSON_POINTER = /^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;
-function getData($data, lvl, paths) {
- var up, jsonPointer, data, matches;
- if ($data === '') return 'rootData';
- if ($data[0] == '/') {
- if (!JSON_POINTER.test($data)) throw new Error('Invalid JSON-pointer: ' + $data);
- jsonPointer = $data;
- data = 'rootData';
- } else {
- matches = $data.match(RELATIVE_JSON_POINTER);
- if (!matches) throw new Error('Invalid JSON-pointer: ' + $data);
- up = +matches[1];
- jsonPointer = matches[2];
- if (jsonPointer == '#') {
- if (up >= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl);
- return paths[lvl - up];
- }
-
- if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl);
- data = 'data' + ((lvl - up) || '');
- if (!jsonPointer) return data;
- }
-
- var expr = data;
- var segments = jsonPointer.split('/');
- for (var i=0; i<segments.length; i++) {
- var segment = segments[i];
- if (segment) {
- data += getProperty(unescapeJsonPointer(segment));
- expr += ' && ' + data;
- }
- }
- return expr;
-}
-
-
-function joinPaths (a, b) {
- if (a == '""') return b;
- return (a + ' + ' + b).replace(/([^\\])' \+ '/g, '$1');
-}
-
-
-function unescapeFragment(str) {
- return unescapeJsonPointer(decodeURIComponent(str));
-}
-
-
-function escapeFragment(str) {
- return encodeURIComponent(escapeJsonPointer(str));
-}
-
-
-function escapeJsonPointer(str) {
- return str.replace(/~/g, '~0').replace(/\//g, '~1');
-}
-
-
-function unescapeJsonPointer(str) {
- return str.replace(/~1/g, '/').replace(/~0/g, '~');
-}
diff --git a/deps/npm/node_modules/ajv/lib/data.js b/deps/npm/node_modules/ajv/lib/data.js
deleted file mode 100644
index f11142bec75..00000000000
--- a/deps/npm/node_modules/ajv/lib/data.js
+++ /dev/null
@@ -1,49 +0,0 @@
-'use strict';
-
-var KEYWORDS = [
- 'multipleOf',
- 'maximum',
- 'exclusiveMaximum',
- 'minimum',
- 'exclusiveMinimum',
- 'maxLength',
- 'minLength',
- 'pattern',
- 'additionalItems',
- 'maxItems',
- 'minItems',
- 'uniqueItems',
- 'maxProperties',
- 'minProperties',
- 'required',
- 'additionalProperties',
- 'enum',
- 'format',
- 'const'
-];
-
-module.exports = function (metaSchema, keywordsJsonPointers) {
- for (var i=0; i<keywordsJsonPointers.length; i++) {
- metaSchema = JSON.parse(JSON.stringify(metaSchema));
- var segments = keywordsJsonPointers[i].split('/');
- var keywords = metaSchema;
- var j;
- for (j=1; j<segments.length; j++)
- keywords = keywords[segments[j]];
-
- for (j=0; j<KEYWORDS.length; j++) {
- var key = KEYWORDS[j];
- var schema = keywords[key];
- if (schema) {
- keywords[key] = {
- anyOf: [
- schema,
- { $ref: 'https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#' }
- ]
- };
- }
- }
- }
-
- return metaSchema;
-};
diff --git a/deps/npm/node_modules/ajv/lib/definition_schema.js b/deps/npm/node_modules/ajv/lib/definition_schema.js
deleted file mode 100644
index ad86d4f0b1f..00000000000
--- a/deps/npm/node_modules/ajv/lib/definition_schema.js
+++ /dev/null
@@ -1,37 +0,0 @@
-'use strict';
-
-var metaSchema = require('./refs/json-schema-draft-07.json');
-
-module.exports = {
- $id: 'https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js',
- definitions: {
- simpleTypes: metaSchema.definitions.simpleTypes
- },
- type: 'object',
- dependencies: {
- schema: ['validate'],
- $data: ['validate'],
- statements: ['inline'],
- valid: {not: {required: ['macro']}}
- },
- properties: {
- type: metaSchema.properties.type,
- schema: {type: 'boolean'},
- statements: {type: 'boolean'},
- dependencies: {
- type: 'array',
- items: {type: 'string'}
- },
- metaSchema: {type: 'object'},
- modifying: {type: 'boolean'},
- valid: {type: 'boolean'},
- $data: {type: 'boolean'},
- async: {type: 'boolean'},
- errors: {
- anyOf: [
- {type: 'boolean'},
- {const: 'full'}
- ]
- }
- }
-};
diff --git a/deps/npm/node_modules/ajv/lib/dot/_limit.jst b/deps/npm/node_modules/ajv/lib/dot/_limit.jst
deleted file mode 100644
index f1521892229..00000000000
--- a/deps/npm/node_modules/ajv/lib/dot/_limit.jst
+++ /dev/null
@@ -1,113 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.$data }}
-
-{{## def.setExclusiveLimit:
- $exclusive = true;
- $errorKeyword = $exclusiveKeyword;
- $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;
-#}}
-
-{{
- var $isMax = $keyword == 'maximum'
- , $exclusiveKeyword = $isMax ? 'exclusiveMaximum' : 'exclusiveMinimum'
- , $schemaExcl = it.schema[$exclusiveKeyword]
- , $isDataExcl = it.opts.$data && $schemaExcl && $schemaExcl.$data
- , $op = $isMax ? '<' : '>'
- , $notOp = $isMax ? '>' : '<'
- , $errorKeyword = undefined;
-
- if (!($isData || typeof $schema == 'number' || $schema === undefined)) {
- throw new Error($keyword + ' must be number');
- }
- if (!($isDataExcl || $schemaExcl === undefined
- || typeof $schemaExcl == 'number'
- || typeof $schemaExcl == 'boolean')) {
- throw new Error($exclusiveKeyword + ' must be number or boolean');
- }
-}}
-
-{{? $isDataExcl }}
- {{
- var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr)
- , $exclusive = 'exclusive' + $lvl
- , $exclType = 'exclType' + $lvl
- , $exclIsNumber = 'exclIsNumber' + $lvl
- , $opExpr = 'op' + $lvl
- , $opStr = '\' + ' + $opExpr + ' + \'';
- }}
- var schemaExcl{{=$lvl}} = {{=$schemaValueExcl}};
- {{ $schemaValueExcl = 'schemaExcl' + $lvl; }}
-
- var {{=$exclusive}};
- var {{=$exclType}} = typeof {{=$schemaValueExcl}};
- if ({{=$exclType}} != 'boolean' && {{=$exclType}} != 'undefined' && {{=$exclType}} != 'number') {
- {{ var $errorKeyword = $exclusiveKeyword; }}
- {{# def.error:'_exclusiveLimit' }}
- } else if ({{# def.$dataNotType:'number' }}
- {{=$exclType}} == 'number'
- ? (
- ({{=$exclusive}} = {{=$schemaValue}} === undefined || {{=$schemaValueExcl}} {{=$op}}= {{=$schemaValue}})
- ? {{=$data}} {{=$notOp}}= {{=$schemaValueExcl}}
- : {{=$data}} {{=$notOp}} {{=$schemaValue}}
- )
- : (
- ({{=$exclusive}} = {{=$schemaValueExcl}} === true)
- ? {{=$data}} {{=$notOp}}= {{=$schemaValue}}
- : {{=$data}} {{=$notOp}} {{=$schemaValue}}
- )
- || {{=$data}} !== {{=$data}}) {
- var op{{=$lvl}} = {{=$exclusive}} ? '{{=$op}}' : '{{=$op}}=';
- {{
- if ($schema === undefined) {
- $errorKeyword = $exclusiveKeyword;
- $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;
- $schemaValue = $schemaValueExcl;
- $isData = $isDataExcl;
- }
- }}
-{{??}}
- {{
- var $exclIsNumber = typeof $schemaExcl == 'number'
- , $opStr = $op; /*used in error*/
- }}
-
- {{? $exclIsNumber && $isData }}
- {{ var $opExpr = '\'' + $opStr + '\''; /*used in error*/ }}
- if ({{# def.$dataNotType:'number' }}
- ( {{=$schemaValue}} === undefined
- || {{=$schemaExcl}} {{=$op}}= {{=$schemaValue}}
- ? {{=$data}} {{=$notOp}}= {{=$schemaExcl}}
- : {{=$data}} {{=$notOp}} {{=$schemaValue}} )
- || {{=$data}} !== {{=$data}}) {
- {{??}}
- {{
- if ($exclIsNumber && $schema === undefined) {
- {{# def.setExclusiveLimit }}
- $schemaValue = $schemaExcl;
- $notOp += '=';
- } else {
- if ($exclIsNumber)
- $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema);
-
- if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) {
- {{# def.setExclusiveLimit }}
- $notOp += '=';
- } else {
- $exclusive = false;
- $opStr += '=';
- }
- }
-
- var $opExpr = '\'' + $opStr + '\''; /*used in error*/
- }}
-
- if ({{# def.$dataNotType:'number' }}
- {{=$data}} {{=$notOp}} {{=$schemaValue}}
- || {{=$data}} !== {{=$data}}) {
- {{?}}
-{{?}}
- {{ $errorKeyword = $errorKeyword || $keyword; }}
- {{# def.error:'_limit' }}
- } {{? $breakOnError }} else { {{?}}
diff --git a/deps/npm/node_modules/ajv/lib/dot/_limitItems.jst b/deps/npm/node_modules/ajv/lib/dot/_limitItems.jst
deleted file mode 100644
index 741329e7769..00000000000
--- a/deps/npm/node_modules/ajv/lib/dot/_limitItems.jst
+++ /dev/null
@@ -1,12 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.$data }}
-
-{{# def.numberKeyword }}
-
-{{ var $op = $keyword == 'maxItems' ? '>' : '<'; }}
-if ({{# def.$dataNotType:'number' }} {{=$data}}.length {{=$op}} {{=$schemaValue}}) {
- {{ var $errorKeyword = $keyword; }}
- {{# def.error:'_limitItems' }}
-} {{? $breakOnError }} else { {{?}}
diff --git a/deps/npm/node_modules/ajv/lib/dot/_limitLength.jst b/deps/npm/node_modules/ajv/lib/dot/_limitLength.jst
deleted file mode 100644
index 285c66bd2ee..00000000000
--- a/deps/npm/node_modules/ajv/lib/dot/_limitLength.jst
+++ /dev/null
@@ -1,12 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.$data }}
-
-{{# def.numberKeyword }}
-
-{{ var $op = $keyword == 'maxLength' ? '>' : '<'; }}
-if ({{# def.$dataNotType:'number' }} {{# def.strLength }} {{=$op}} {{=$schemaValue}}) {
- {{ var $errorKeyword = $keyword; }}
- {{# def.error:'_limitLength' }}
-} {{? $breakOnError }} else { {{?}}
diff --git a/deps/npm/node_modules/ajv/lib/dot/_limitProperties.jst b/deps/npm/node_modules/ajv/lib/dot/_limitProperties.jst
deleted file mode 100644
index c4c21551abc..00000000000
--- a/deps/npm/node_modules/ajv/lib/dot/_limitProperties.jst
+++ /dev/null
@@ -1,12 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.$data }}
-
-{{# def.numberKeyword }}
-
-{{ var $op = $keyword == 'maxProperties' ? '>' : '<'; }}
-if ({{# def.$dataNotType:'number' }} Object.keys({{=$data}}).length {{=$op}} {{=$schemaValue}}) {
- {{ var $errorKeyword = $keyword; }}
- {{# def.error:'_limitProperties' }}
-} {{? $breakOnError }} else { {{?}}
diff --git a/deps/npm/node_modules/ajv/lib/dot/allOf.jst b/deps/npm/node_modules/ajv/lib/dot/allOf.jst
deleted file mode 100644
index 0e782fe98e2..00000000000
--- a/deps/npm/node_modules/ajv/lib/dot/allOf.jst
+++ /dev/null
@@ -1,32 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.setupNextLevel }}
-
-{{
- 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;
- }}
-
- {{# def.insertSubschemaCode }}
-
- {{# def.ifResultValid }}
- {{?}}
-{{~}}
-
-{{? $breakOnError }}
- {{? $allSchemasEmpty }}
- if (true) {
- {{??}}
- {{= $closingBraces.slice(0,-1) }}
- {{?}}
-{{?}}
diff --git a/deps/npm/node_modules/ajv/lib/dot/anyOf.jst b/deps/npm/node_modules/ajv/lib/dot/anyOf.jst
deleted file mode 100644
index ea909ee628e..00000000000
--- a/deps/npm/node_modules/ajv/lib/dot/anyOf.jst
+++ /dev/null
@@ -1,46 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.setupNextLevel }}
-
-{{
- var $noEmptySchema = $schema.every(function($sch) {
- return {{# def.nonEmptySchema:$sch }};
- });
-}}
-{{? $noEmptySchema }}
- {{ var $currentBaseId = $it.baseId; }}
- var {{=$errs}} = errors;
- var {{=$valid}} = false;
-
- {{# def.setCompositeRule }}
-
- {{~ $schema:$sch:$i }}
- {{
- $it.schema = $sch;
- $it.schemaPath = $schemaPath + '[' + $i + ']';
- $it.errSchemaPath = $errSchemaPath + '/' + $i;
- }}
-
- {{# def.insertSubschemaCode }}
-
- {{=$valid}} = {{=$valid}} || {{=$nextValid}};
-
- if (!{{=$valid}}) {
- {{ $closingBraces += '}'; }}
- {{~}}
-
- {{# def.resetCompositeRule }}
-
- {{= $closingBraces }}
-
- if (!{{=$valid}}) {
- {{# def.extraError:'anyOf' }}
- } else {
- {{# def.resetErrors }}
- {{? it.opts.allErrors }} } {{?}}
-{{??}}
- {{? $breakOnError }}
- if (true) {
- {{?}}
-{{?}}
diff --git a/deps/npm/node_modules/ajv/lib/dot/coerce.def b/deps/npm/node_modules/ajv/lib/dot/coerce.def
deleted file mode 100644
index c947ed6af81..00000000000
--- a/deps/npm/node_modules/ajv/lib/dot/coerce.def
+++ /dev/null
@@ -1,51 +0,0 @@
-{{## def.coerceType:
- {{
- var $dataType = 'dataType' + $lvl
- , $coerced = 'coerced' + $lvl;
- }}
- var {{=$dataType}} = typeof {{=$data}};
- var {{=$coerced}} = undefined;
-
- {{? it.opts.coerceTypes == 'array' }}
- if ({{=$dataType}} == 'object' && Array.isArray({{=$data}}) && {{=$data}}.length == 1) {
- {{=$data}} = {{=$data}}[0];
- {{=$dataType}} = typeof {{=$data}};
- if ({{=it.util.checkDataType(it.schema.type, $data, it.opts.strictNumbers)}}) {{=$coerced}} = {{=$data}};
- }
- {{?}}
-
- if ({{=$coerced}} !== undefined) ;
- {{~ $coerceToTypes:$type:$i }}
- {{? $type == 'string' }}
- else if ({{=$dataType}} == 'number' || {{=$dataType}} == 'boolean')
- {{=$coerced}} = '' + {{=$data}};
- else if ({{=$data}} === null) {{=$coerced}} = '';
- {{?? $type == 'number' || $type == 'integer' }}
- else if ({{=$dataType}} == 'boolean' || {{=$data}} === null
- || ({{=$dataType}} == 'string' && {{=$data}} && {{=$data}} == +{{=$data}}
- {{? $type == 'integer' }} && !({{=$data}} % 1){{?}}))
- {{=$coerced}} = +{{=$data}};
- {{?? $type == 'boolean' }}
- else if ({{=$data}} === 'false' || {{=$data}} === 0 || {{=$data}} === null)
- {{=$coerced}} = false;
- else if ({{=$data}} === 'true' || {{=$data}} === 1)
- {{=$coerced}} = true;
- {{?? $type == 'null' }}
- else if ({{=$data}} === '' || {{=$data}} === 0 || {{=$data}} === false)
- {{=$coerced}} = null;
- {{?? it.opts.coerceTypes == 'array' && $type == 'array' }}
- else if ({{=$dataType}} == 'string' || {{=$dataType}} == 'number' || {{=$dataType}} == 'boolean' || {{=$data}} == null)
- {{=$coerced}} = [{{=$data}}];
- {{?}}
- {{~}}
- else {
- {{# def.error:'type' }}
- }
-
- if ({{=$coerced}} !== undefined) {
- {{# def.setParentData }}
- {{=$data}} = {{=$coerced}};
- {{? !$dataLvl }}if ({{=$parentData}} !== undefined){{?}}
- {{=$parentData}}[{{=$parentDataProperty}}] = {{=$coerced}};
- }
-#}}
diff --git a/deps/npm/node_modules/ajv/lib/dot/comment.jst b/deps/npm/node_modules/ajv/lib/dot/comment.jst
deleted file mode 100644
index f95915035c6..00000000000
--- a/deps/npm/node_modules/ajv/lib/dot/comment.jst
+++ /dev/null
@@ -1,9 +0,0 @@
-{{# def.definitions }}
-{{# def.setupKeyword }}
-
-{{ var $comment = it.util.toQuotedString($schema); }}
-{{? it.opts.$comment === true }}
- console.log({{=$comment}});
-{{?? typeof it.opts.$comment == 'function' }}
- self._opts.$comment({{=$comment}}, {{=it.util.toQuotedString($errSchemaPath)}}, validate.root.schema);
-{{?}}
diff --git a/deps/npm/node_modules/ajv/lib/dot/const.jst b/deps/npm/node_modules/ajv/lib/dot/const.jst
deleted file mode 100644
index 2aa22980d7f..00000000000
--- a/deps/npm/node_modules/ajv/lib/dot/const.jst
+++ /dev/null
@@ -1,11 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.$data }}
-
-{{? !$isData }}
- var schema{{=$lvl}} = validate.schema{{=$schemaPath}};
-{{?}}
-var {{=$valid}} = equal({{=$data}}, schema{{=$lvl}});
-{{# def.checkError:'const' }}
-{{? $breakOnError }} else { {{?}}
diff --git a/deps/npm/node_modules/ajv/lib/dot/contains.jst b/deps/npm/node_modules/ajv/lib/dot/contains.jst
deleted file mode 100644
index 4dc9967418d..00000000000
--- a/deps/npm/node_modules/ajv/lib/dot/contains.jst
+++ /dev/null
@@ -1,55 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.setupNextLevel }}
-
-
-{{
- var $idx = 'i' + $lvl
- , $dataNxt = $it.dataLevel = it.dataLevel + 1
- , $nextData = 'data' + $dataNxt
- , $currentBaseId = it.baseId
- , $nonEmptySchema = {{# def.nonEmptySchema:$schema }};
-}}
-
-var {{=$errs}} = errors;
-var {{=$valid}};
-
-{{? $nonEmptySchema }}
- {{# def.setCompositeRule }}
-
- {{
- $it.schema = $schema;
- $it.schemaPath = $schemaPath;
- $it.errSchemaPath = $errSchemaPath;
- }}
-
- var {{=$nextValid}} = false;
-
- 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;
- }}
-
- {{# def.generateSubschemaCode }}
- {{# def.optimizeValidate }}
-
- if ({{=$nextValid}}) break;
- }
-
- {{# def.resetCompositeRule }}
- {{= $closingBraces }}
-
- if (!{{=$nextValid}}) {
-{{??}}
- if ({{=$data}}.length == 0) {
-{{?}}
-
- {{# def.error:'contains' }}
- } else {
- {{? $nonEmptySchema }}
- {{# def.resetErrors }}
- {{?}}
- {{? it.opts.allErrors }} } {{?}}
diff --git a/deps/npm/node_modules/ajv/lib/dot/custom.jst b/deps/npm/node_modules/ajv/lib/dot/custom.jst
deleted file mode 100644
index d30588fb0b4..00000000000
--- a/deps/npm/node_modules/ajv/lib/dot/custom.jst
+++ /dev/null
@@ -1,191 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.$data }}
-
-{{
- var $rule = this
- , $definition = 'definition' + $lvl
- , $rDef = $rule.definition
- , $closingBraces = '';
- var $validate = $rDef.validate;
- var $compile, $inline, $macro, $ruleValidate, $validateCode;
-}}
-
-{{? $isData && $rDef.$data }}
- {{
- $validateCode = 'keywordValidate' + $lvl;
- var $validateSchema = $rDef.validateSchema;
- }}
- var {{=$definition}} = RULES.custom['{{=$keyword}}'].definition;
- var {{=$validateCode}} = {{=$definition}}.validate;
-{{??}}
- {{
- $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it);
- if (!$ruleValidate) return;
- $schemaValue = 'validate.schema' + $schemaPath;
- $validateCode = $ruleValidate.code;
- $compile = $rDef.compile;
- $inline = $rDef.inline;
- $macro = $rDef.macro;
- }}
-{{?}}
-
-{{
- var $ruleErrs = $validateCode + '.errors'
- , $i = 'i' + $lvl
- , $ruleErr = 'ruleErr' + $lvl
- , $asyncKeyword = $rDef.async;
-
- if ($asyncKeyword && !it.async)
- throw new Error('async keyword in sync schema');
-}}
-
-
-{{? !($inline || $macro) }}{{=$ruleErrs}} = null;{{?}}
-var {{=$errs}} = errors;
-var {{=$valid}};
-
-{{## def.callRuleValidate:
- {{=$validateCode}}.call(
- {{? it.opts.passContext }}this{{??}}self{{?}}
- {{? $compile || $rDef.schema === false }}
- , {{=$data}}
- {{??}}
- , {{=$schemaValue}}
- , {{=$data}}
- , validate.schema{{=it.schemaPath}}
- {{?}}
- , {{# def.dataPath }}
- {{# def.passParentData }}
- , rootData
- )
-#}}
-
-{{## def.extendErrors:_inline:
- for (var {{=$i}}={{=$errs}}; {{=$i}}<errors; {{=$i}}++) {
- var {{=$ruleErr}} = vErrors[{{=$i}}];
- if ({{=$ruleErr}}.dataPath === undefined)
- {{=$ruleErr}}.dataPath = (dataPath || '') + {{= it.errorPath }};
- {{# _inline ? 'if (\{\{=$ruleErr\}\}.schemaPath === undefined) {' : '' }}
- {{=$ruleErr}}.schemaPath = "{{=$errSchemaPath}}";
- {{# _inline ? '}' : '' }}
- {{? it.opts.verbose }}
- {{=$ruleErr}}.schema = {{=$schemaValue}};
- {{=$ruleErr}}.data = {{=$data}};
- {{?}}
- }
-#}}
-
-
-{{? $isData && $rDef.$data }}
- {{ $closingBraces += '}'; }}
- if ({{=$schemaValue}} === undefined) {
- {{=$valid}} = true;
- } else {
- {{? $validateSchema }}
- {{ $closingBraces += '}'; }}
- {{=$valid}} = {{=$definition}}.validateSchema({{=$schemaValue}});
- if ({{=$valid}}) {
- {{?}}
-{{?}}
-
-{{? $inline }}
- {{? $rDef.statements }}
- {{= $ruleValidate.validate }}
- {{??}}
- {{=$valid}} = {{= $ruleValidate.validate }};
- {{?}}
-{{?? $macro }}
- {{# def.setupNextLevel }}
- {{
- $it.schema = $ruleValidate.validate;
- $it.schemaPath = '';
- }}
- {{# def.setCompositeRule }}
- {{ var $code = it.validate($it).replace(/validate\.schema/g, $validateCode); }}
- {{# def.resetCompositeRule }}
- {{= $code }}
-{{??}}
- {{# def.beginDefOut}}
- {{# def.callRuleValidate }}
- {{# def.storeDefOut:def_callRuleValidate }}
-
- {{? $rDef.errors === false }}
- {{=$valid}} = {{? $asyncKeyword }}await {{?}}{{= def_callRuleValidate }};
- {{??}}
- {{? $asyncKeyword }}
- {{ $ruleErrs = 'customErrors' + $lvl; }}
- var {{=$ruleErrs}} = null;
- try {
- {{=$valid}} = await {{= def_callRuleValidate }};
- } catch (e) {
- {{=$valid}} = false;
- if (e instanceof ValidationError) {{=$ruleErrs}} = e.errors;
- else throw e;
- }
- {{??}}
- {{=$ruleErrs}} = null;
- {{=$valid}} = {{= def_callRuleValidate }};
- {{?}}
- {{?}}
-{{?}}
-
-{{? $rDef.modifying }}
- if ({{=$parentData}}) {{=$data}} = {{=$parentData}}[{{=$parentDataProperty}}];
-{{?}}
-
-{{= $closingBraces }}
-
-{{## def.notValidationResult:
- {{? $rDef.valid === undefined }}
- !{{? $macro }}{{=$nextValid}}{{??}}{{=$valid}}{{?}}
- {{??}}
- {{= !$rDef.valid }}
- {{?}}
-#}}
-
-{{? $rDef.valid }}
- {{? $breakOnError }} if (true) { {{?}}
-{{??}}
- if ({{# def.notValidationResult }}) {
- {{ $errorKeyword = $rule.keyword; }}
- {{# def.beginDefOut}}
- {{# def.error:'custom' }}
- {{# def.storeDefOut:def_customError }}
-
- {{? $inline }}
- {{? $rDef.errors }}
- {{? $rDef.errors != 'full' }}
- {{# def.extendErrors:true }}
- {{?}}
- {{??}}
- {{? $rDef.errors === false}}
- {{= def_customError }}
- {{??}}
- if ({{=$errs}} == errors) {
- {{= def_customError }}
- } else {
- {{# def.extendErrors:true }}
- }
- {{?}}
- {{?}}
- {{?? $macro }}
- {{# def.extraError:'custom' }}
- {{??}}
- {{? $rDef.errors === false}}
- {{= def_customError }}
- {{??}}
- if (Array.isArray({{=$ruleErrs}})) {
- if (vErrors === null) vErrors = {{=$ruleErrs}};
- else vErrors = vErrors.concat({{=$ruleErrs}});
- errors = vErrors.length;
- {{# def.extendErrors:false }}
- } else {
- {{= def_customError }}
- }
- {{?}}
- {{?}}
-
- } {{? $breakOnError }} else { {{?}}
-{{?}}
diff --git a/deps/npm/node_modules/ajv/lib/dot/defaults.def b/deps/npm/node_modules/ajv/lib/dot/defaults.def
deleted file mode 100644
index a844cf28544..00000000000
--- a/deps/npm/node_modules/ajv/lib/dot/defaults.def
+++ /dev/null
@@ -1,47 +0,0 @@
-{{## def.assignDefault:
- {{? it.compositeRule }}
- {{
- if (it.opts.strictDefaults) {
- var $defaultMsg = 'default is ignored for: ' + $passData;
- if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);
- else throw new Error($defaultMsg);
- }
- }}
- {{??}}
- if ({{=$passData}} === undefined
- {{? it.opts.useDefaults == 'empty' }}
- || {{=$passData}} === null
- || {{=$passData}} === ''
- {{?}}
- )
- {{=$passData}} = {{? it.opts.useDefaults == 'shared' }}
- {{= it.useDefault($sch.default) }}
- {{??}}
- {{= JSON.stringify($sch.default) }}
- {{?}};
- {{?}}
-#}}
-
-
-{{## def.defaultProperties:
- {{
- var $schema = it.schema.properties
- , $schemaKeys = Object.keys($schema); }}
- {{~ $schemaKeys:$propertyKey }}
- {{ var $sch = $schema[$propertyKey]; }}
- {{? $sch.default !== undefined }}
- {{ var $passData = $data + it.util.getProperty($propertyKey); }}
- {{# def.assignDefault }}
- {{?}}
- {{~}}
-#}}
-
-
-{{## def.defaultItems:
- {{~ it.schema.items:$sch:$i }}
- {{? $sch.default !== undefined }}
- {{ var $passData = $data + '[' + $i + ']'; }}
- {{# def.assignDefault }}
- {{?}}
- {{~}}
-#}}
diff --git a/deps/npm/node_modules/ajv/lib/dot/definitions.def b/deps/npm/node_modules/ajv/lib/dot/definitions.def
deleted file mode 100644
index 709cce36d2b..00000000000
--- a/deps/npm/node_modules/ajv/lib/dot/definitions.def
+++ /dev/null
@@ -1,203 +0,0 @@
-{{## def.setupKeyword:
- {{
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($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;
- }}
-#}}
-
-
-{{## def.setCompositeRule:
- {{
- var $wasComposite = it.compositeRule;
- it.compositeRule = $it.compositeRule = true;
- }}
-#}}
-
-
-{{## def.resetCompositeRule:
- {{ it.compositeRule = $it.compositeRule = $wasComposite; }}
-#}}
-
-
-{{## def.setupNextLevel:
- {{
- var $it = it.util.copy(it);
- var $closingBraces = '';
- $it.level++;
- var $nextValid = 'valid' + $it.level;
- }}
-#}}
-
-
-{{## def.ifValid:
- {{? $breakOnError }}
- if ({{=$valid}}) {
- {{ $closingBraces += '}'; }}
- {{?}}
-#}}
-
-
-{{## def.ifResultValid:
- {{? $breakOnError }}
- if ({{=$nextValid}}) {
- {{ $closingBraces += '}'; }}
- {{?}}
-#}}
-
-
-{{## def.elseIfValid:
- {{? $breakOnError }}
- {{ $closingBraces += '}'; }}
- else {
- {{?}}
-#}}
-
-
-{{## def.nonEmptySchema:_schema:
- (it.opts.strictKeywords
- ? (typeof _schema == 'object' && Object.keys(_schema).length > 0)
- || _schema === false
- : it.util.schemaHasRules(_schema, it.RULES.all))
-#}}
-
-
-{{## def.strLength:
- {{? it.opts.unicode === false }}
- {{=$data}}.length
- {{??}}
- ucs2length({{=$data}})
- {{?}}
-#}}
-
-
-{{## def.willOptimize:
- it.util.varOccurences($code, $nextData) < 2
-#}}
-
-
-{{## def.generateSubschemaCode:
- {{
- var $code = it.validate($it);
- $it.baseId = $currentBaseId;
- }}
-#}}
-
-
-{{## def.insertSubschemaCode:
- {{= it.validate($it) }}
- {{ $it.baseId = $currentBaseId; }}
-#}}
-
-
-{{## def._optimizeValidate:
- it.util.varReplace($code, $nextData, $passData)
-#}}
-
-
-{{## def.optimizeValidate:
- {{? {{# def.willOptimize}} }}
- {{= {{# def._optimizeValidate }} }}
- {{??}}
- var {{=$nextData}} = {{=$passData}};
- {{= $code }}
- {{?}}
-#}}
-
-
-{{## def.$data:
- {{
- var $isData = it.opts.$data && $schema && $schema.$data
- , $schemaValue;
- }}
- {{? $isData }}
- var schema{{=$lvl}} = {{= it.util.getData($schema.$data, $dataLvl, it.dataPathArr) }};
- {{ $schemaValue = 'schema' + $lvl; }}
- {{??}}
- {{ $schemaValue = $schema; }}
- {{?}}
-#}}
-
-
-{{## def.$dataNotType:_type:
- {{?$isData}} ({{=$schemaValue}} !== undefined && typeof {{=$schemaValue}} != _type) || {{?}}
-#}}
-
-
-{{## def.check$dataIsArray:
- if (schema{{=$lvl}} === undefined) {{=$valid}} = true;
- else if (!Array.isArray(schema{{=$lvl}})) {{=$valid}} = false;
- else {
-#}}
-
-
-{{## def.numberKeyword:
- {{? !($isData || typeof $schema == 'number') }}
- {{ throw new Error($keyword + ' must be number'); }}
- {{?}}
-#}}
-
-
-{{## def.beginDefOut:
- {{
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = '';
- }}
-#}}
-
-
-{{## def.storeDefOut:_variable:
- {{
- var _variable = out;
- out = $$outStack.pop();
- }}
-#}}
-
-
-{{## def.dataPath:(dataPath || ''){{? it.errorPath != '""'}} + {{= it.errorPath }}{{?}}#}}
-
-{{## def.setParentData:
- {{
- var $parentData = $dataLvl ? 'data' + (($dataLvl-1)||'') : 'parentData'
- , $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';
- }}
-#}}
-
-{{## def.passParentData:
- {{# def.setParentData }}
- , {{= $parentData }}
- , {{= $parentDataProperty }}
-#}}
-
-
-{{## def.iterateProperties:
- {{? $ownProperties }}
- {{=$dataProperties}} = {{=$dataProperties}} || Object.keys({{=$data}});
- for (var {{=$idx}}=0; {{=$idx}}<{{=$dataProperties}}.length; {{=$idx}}++) {
- var {{=$key}} = {{=$dataProperties}}[{{=$idx}}];
- {{??}}
- for (var {{=$key}} in {{=$data}}) {
- {{?}}
-#}}
-
-
-{{## def.noPropertyInData:
- {{=$useData}} === undefined
- {{? $ownProperties }}
- || !{{# def.isOwnProperty }}
- {{?}}
-#}}
-
-
-{{## def.isOwnProperty:
- Object.prototype.hasOwnProperty.call({{=$data}}, '{{=it.util.escapeQuotes($propertyKey)}}')
-#}}
diff --git a/deps/npm/node_modules/ajv/lib/dot/dependencies.jst b/deps/npm/node_modules/ajv/lib/dot/dependencies.jst
deleted file mode 100644
index e4bdddec8eb..00000000000
--- a/deps/npm/node_modules/ajv/lib/dot/dependencies.jst
+++ /dev/null
@@ -1,79 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.missing }}
-{{# def.setupKeyword }}
-{{# def.setupNextLevel }}
-
-
-{{## def.propertyInData:
- {{=$data}}{{= it.util.getProperty($property) }} !== undefined
- {{? $ownProperties }}
- && Object.prototype.hasOwnProperty.call({{=$data}}, '{{=it.util.escapeQuotes($property)}}')
- {{?}}
-#}}
-
-
-{{
- var $schemaDeps = {}
- , $propertyDeps = {}
- , $ownProperties = it.opts.ownProperties;
-
- for ($property in $schema) {
- if ($property == '__proto__') continue;
- var $sch = $schema[$property];
- var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps;
- $deps[$property] = $sch;
- }
-}}
-
-var {{=$errs}} = errors;
-
-{{ var $currentErrorPath = it.errorPath; }}
-
-var missing{{=$lvl}};
-{{ for (var $property in $propertyDeps) { }}
- {{ $deps = $propertyDeps[$property]; }}
- {{? $deps.length }}
- if ({{# def.propertyInData }}
- {{? $breakOnError }}
- && ({{# def.checkMissingProperty:$deps }})) {
- {{# def.errorMissingProperty:'dependencies' }}
- {{??}}
- ) {
- {{~ $deps:$propertyKey }}
- {{# def.allErrorsMissingProperty:'dependencies' }}
- {{~}}
- {{?}}
- } {{# def.elseIfValid }}
- {{?}}
-{{ } }}
-
-{{
- it.errorPath = $currentErrorPath;
- var $currentBaseId = $it.baseId;
-}}
-
-
-{{ for (var $property in $schemaDeps) { }}
- {{ var $sch = $schemaDeps[$property]; }}
- {{? {{# def.nonEmptySchema:$sch }} }}
- {{=$nextValid}} = true;
-
- if ({{# def.propertyInData }}) {
- {{
- $it.schema = $sch;
- $it.schemaPath = $schemaPath + it.util.getProperty($property);
- $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property);
- }}
-
- {{# def.insertSubschemaCode }}
- }
-
- {{# def.ifResultValid }}
- {{?}}
-{{ } }}
-
-{{? $breakOnError }}
- {{= $closingBraces }}
- if ({{=$errs}} == errors) {
-{{?}}
diff --git a/deps/npm/node_modules/ajv/lib/dot/enum.jst b/deps/npm/node_modules/ajv/lib/dot/enum.jst
deleted file mode 100644
index 357c2e8c081..00000000000
--- a/deps/npm/node_modules/ajv/lib/dot/enum.jst
+++ /dev/null
@@ -1,30 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.$data }}
-
-{{
- var $i = 'i' + $lvl
- , $vSchema = 'schema' + $lvl;
-}}
-
-{{? !$isData }}
- var {{=$vSchema}} = validate.schema{{=$schemaPath}};
-{{?}}
-var {{=$valid}};
-
-{{?$isData}}{{# def.check$dataIsArray }}{{?}}
-
-{{=$valid}} = false;
-
-for (var {{=$i}}=0; {{=$i}}<{{=$vSchema}}.length; {{=$i}}++)
- if (equal({{=$data}}, {{=$vSchema}}[{{=$i}}])) {
- {{=$valid}} = true;
- break;
- }
-
-{{? $isData }} } {{?}}
-
-{{# def.checkError:'enum' }}
-
-{{? $breakOnError }} else { {{?}}
diff --git a/deps/npm/node_modules/ajv/lib/dot/errors.def b/deps/npm/node_modules/ajv/lib/dot/errors.def
deleted file mode 100644
index 5c5752cb04d..00000000000
--- a/deps/npm/node_modules/ajv/lib/dot/errors.def
+++ /dev/null
@@ -1,194 +0,0 @@
-{{# def.definitions }}
-
-{{## def._error:_rule:
- {{ 'istanbul ignore else'; }}
- {{? it.createErrors !== false }}
- {
- keyword: '{{= $errorKeyword || _rule }}'
- , dataPath: (dataPath || '') + {{= it.errorPath }}
- , schemaPath: {{=it.util.toQuotedString($errSchemaPath)}}
- , params: {{# def._errorParams[_rule] }}
- {{? it.opts.messages !== false }}
- , message: {{# def._errorMessages[_rule] }}
- {{?}}
- {{? it.opts.verbose }}
- , schema: {{# def._errorSchemas[_rule] }}
- , parentSchema: validate.schema{{=it.schemaPath}}
- , data: {{=$data}}
- {{?}}
- }
- {{??}}
- {}
- {{?}}
-#}}
-
-
-{{## def._addError:_rule:
- if (vErrors === null) vErrors = [err];
- else vErrors.push(err);
- errors++;
-#}}
-
-
-{{## def.addError:_rule:
- var err = {{# def._error:_rule }};
- {{# def._addError:_rule }}
-#}}
-
-
-{{## def.error:_rule:
- {{# def.beginDefOut}}
- {{# def._error:_rule }}
- {{# def.storeDefOut:__err }}
-
- {{? !it.compositeRule && $breakOnError }}
- {{ 'istanbul ignore if'; }}
- {{? it.async }}
- throw new ValidationError([{{=__err}}]);
- {{??}}
- validate.errors = [{{=__err}}];
- return false;
- {{?}}
- {{??}}
- var err = {{=__err}};
- {{# def._addError:_rule }}
- {{?}}
-#}}
-
-
-{{## def.extraError:_rule:
- {{# def.addError:_rule}}
- {{? !it.compositeRule && $breakOnError }}
- {{ 'istanbul ignore if'; }}
- {{? it.async }}
- throw new ValidationError(vErrors);
- {{??}}
- validate.errors = vErrors;
- return false;
- {{?}}
- {{?}}
-#}}
-
-
-{{## def.checkError:_rule:
- if (!{{=$valid}}) {
- {{# def.error:_rule }}
- }
-#}}
-
-
-{{## def.resetErrors:
- errors = {{=$errs}};
- if (vErrors !== null) {
- if ({{=$errs}}) vErrors.length = {{=$errs}};
- else vErrors = null;
- }
-#}}
-
-
-{{## def.concatSchema:{{?$isData}}' + {{=$schemaValue}} + '{{??}}{{=$schema}}{{?}}#}}
-{{## def.appendSchema:{{?$isData}}' + {{=$schemaValue}}{{??}}{{=$schemaValue}}'{{?}}#}}
-{{## def.concatSchemaEQ:{{?$isData}}' + {{=$schemaValue}} + '{{??}}{{=it.util.escapeQuotes($schema)}}{{?}}#}}
-
-{{## def._errorMessages = {
- 'false schema': "'boolean schema is false'",
- $ref: "'can\\\'t resolve reference {{=it.util.escapeQuotes($schema)}}'",
- additionalItems: "'should NOT have more than {{=$schema.length}} items'",
- additionalProperties: "'{{? it.opts._errorDataPathProperty }}is an invalid additional property{{??}}should NOT have additional properties{{?}}'",
- anyOf: "'should match some schema in anyOf'",
- const: "'should be equal to constant'",
- contains: "'should contain a valid item'",
- dependencies: "'should have {{? $deps.length == 1 }}property {{= it.util.escapeQuotes($deps[0]) }}{{??}}properties {{= it.util.escapeQuotes($deps.join(\", \")) }}{{?}} when property {{= it.util.escapeQuotes($property) }} is present'",
- 'enum': "'should be equal to one of the allowed values'",
- format: "'should match format \"{{#def.concatSchemaEQ}}\"'",
- 'if': "'should match \"' + {{=$ifClause}} + '\" schema'",
- _limit: "'should be {{=$opStr}} {{#def.appendSchema}}",
- _exclusiveLimit: "'{{=$exclusiveKeyword}} should be boolean'",
- _limitItems: "'should NOT have {{?$keyword=='maxItems'}}more{{??}}fewer{{?}} than {{#def.concatSchema}} items'",
- _limitLength: "'should NOT be {{?$keyword=='maxLength'}}longer{{??}}shorter{{?}} than {{#def.concatSchema}} characters'",
- _limitProperties:"'should NOT have {{?$keyword=='maxProperties'}}more{{??}}fewer{{?}} than {{#def.concatSchema}} properties'",
- multipleOf: "'should be multiple of {{#def.appendSchema}}",
- not: "'should NOT be valid'",
- oneOf: "'should match exactly one schema in oneOf'",
- pattern: "'should match pattern \"{{#def.concatSchemaEQ}}\"'",
- propertyNames: "'property name \\'{{=$invalidName}}\\' is invalid'",
- required: "'{{? it.opts._errorDataPathProperty }}is a required property{{??}}should have required property \\'{{=$missingProperty}}\\'{{?}}'",
- type: "'should be {{? $typeIsArray }}{{= $typeSchema.join(\",\") }}{{??}}{{=$typeSchema}}{{?}}'",
- uniqueItems: "'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)'",
- custom: "'should pass \"{{=$rule.keyword}}\" keyword validation'",
- patternRequired: "'should have property matching pattern \\'{{=$missingPattern}}\\''",
- switch: "'should pass \"switch\" keyword validation'",
- _formatLimit: "'should be {{=$opStr}} \"{{#def.concatSchemaEQ}}\"'",
- _formatExclusiveLimit: "'{{=$exclusiveKeyword}} should be boolean'"
-} #}}
-
-
-{{## def.schemaRefOrVal: {{?$isData}}validate.schema{{=$schemaPath}}{{??}}{{=$schema}}{{?}} #}}
-{{## def.schemaRefOrQS: {{?$isData}}validate.schema{{=$schemaPath}}{{??}}{{=it.util.toQuotedString($schema)}}{{?}} #}}
-
-{{## def._errorSchemas = {
- 'false schema': "false",
- $ref: "{{=it.util.toQuotedString($schema)}}",
- additionalItems: "false",
- additionalProperties: "false",
- anyOf: "validate.schema{{=$schemaPath}}",
- const: "validate.schema{{=$schemaPath}}",
- contains: "validate.schema{{=$schemaPath}}",
- dependencies: "validate.schema{{=$schemaPath}}",
- 'enum': "validate.schema{{=$schemaPath}}",
- format: "{{#def.schemaRefOrQS}}",
- 'if': "validate.schema{{=$schemaPath}}",
- _limit: "{{#def.schemaRefOrVal}}",
- _exclusiveLimit: "validate.schema{{=$schemaPath}}",
- _limitItems: "{{#def.schemaRefOrVal}}",
- _limitLength: "{{#def.schemaRefOrVal}}",
- _limitProperties:"{{#def.schemaRefOrVal}}",
- multipleOf: "{{#def.schemaRefOrVal}}",
- not: "validate.schema{{=$schemaPath}}",
- oneOf: "validate.schema{{=$schemaPath}}",
- pattern: "{{#def.schemaRefOrQS}}",
- propertyNames: "validate.schema{{=$schemaPath}}",
- required: "validate.schema{{=$schemaPath}}",
- type: "validate.schema{{=$schemaPath}}",
- uniqueItems: "{{#def.schemaRefOrVal}}",
- custom: "validate.schema{{=$schemaPath}}",
- patternRequired: "validate.schema{{=$schemaPath}}",
- switch: "validate.schema{{=$schemaPath}}",
- _formatLimit: "{{#def.schemaRefOrQS}}",
- _formatExclusiveLimit: "validate.schema{{=$schemaPath}}"
-} #}}
-
-
-{{## def.schemaValueQS: {{?$isData}}{{=$schemaValue}}{{??}}{{=it.util.toQuotedString($schema)}}{{?}} #}}
-
-{{## def._errorParams = {
- 'false schema': "{}",
- $ref: "{ ref: '{{=it.util.escapeQuotes($schema)}}' }",
- additionalItems: "{ limit: {{=$schema.length}} }",
- additionalProperties: "{ additionalProperty: '{{=$additionalProperty}}' }",
- anyOf: "{}",
- const: "{ allowedValue: schema{{=$lvl}} }",
- contains: "{}",
- dependencies: "{ property: '{{= it.util.escapeQuotes($property) }}', missingProperty: '{{=$missingProperty}}', depsCount: {{=$deps.length}}, deps: '{{= it.util.escapeQuotes($deps.length==1 ? $deps[0] : $deps.join(\", \")) }}' }",
- 'enum': "{ allowedValues: schema{{=$lvl}} }",
- format: "{ format: {{#def.schemaValueQS}} }",
- 'if': "{ failingKeyword: {{=$ifClause}} }",
- _limit: "{ comparison: {{=$opExpr}}, limit: {{=$schemaValue}}, exclusive: {{=$exclusive}} }",
- _exclusiveLimit: "{}",
- _limitItems: "{ limit: {{=$schemaValue}} }",
- _limitLength: "{ limit: {{=$schemaValue}} }",
- _limitProperties:"{ limit: {{=$schemaValue}} }",
- multipleOf: "{ multipleOf: {{=$schemaValue}} }",
- not: "{}",
- oneOf: "{ passingSchemas: {{=$passingSchemas}} }",
- pattern: "{ pattern: {{#def.schemaValueQS}} }",
- propertyNames: "{ propertyName: '{{=$invalidName}}' }",
- required: "{ missingProperty: '{{=$missingProperty}}' }",
- type: "{ type: '{{? $typeIsArray }}{{= $typeSchema.join(\",\") }}{{??}}{{=$typeSchema}}{{?}}' }",
- uniqueItems: "{ i: i, j: j }",
- custom: "{ keyword: '{{=$rule.keyword}}' }",
- patternRequired: "{ missingPattern: '{{=$missingPattern}}' }",
- switch: "{ caseIndex: {{=$caseIndex}} }",
- _formatLimit: "{ comparison: {{=$opExpr}}, limit: {{#def.schemaValueQS}}, exclusive: {{=$exclusive}} }",
- _formatExclusiveLimit: "{}"
-} #}}
diff --git a/deps/npm/node_modules/ajv/lib/dot/format.jst b/deps/npm/node_modules/ajv/lib/dot/format.jst
deleted file mode 100644
index 37f14da80ef..00000000000
--- a/deps/npm/node_modules/ajv/lib/dot/format.jst
+++ /dev/null
@@ -1,106 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-
-{{## def.skipFormat:
- {{? $breakOnError }} if (true) { {{?}}
- {{ return out; }}
-#}}
-
-{{? it.opts.format === false }}{{# def.skipFormat }}{{?}}
-
-
-{{# def.$data }}
-
-
-{{## def.$dataCheckFormat:
- {{# def.$dataNotType:'string' }}
- ({{? $unknownFormats != 'ignore' }}
- ({{=$schemaValue}} && !{{=$format}}
- {{? $allowUnknown }}
- && self._opts.unknownFormats.indexOf({{=$schemaValue}}) == -1
- {{?}}) ||
- {{?}}
- ({{=$format}} && {{=$formatType}} == '{{=$ruleType}}'
- && !(typeof {{=$format}} == 'function'
- ? {{? it.async}}
- (async{{=$lvl}} ? await {{=$format}}({{=$data}}) : {{=$format}}({{=$data}}))
- {{??}}
- {{=$format}}({{=$data}})
- {{?}}
- : {{=$format}}.test({{=$data}}))))
-#}}
-
-{{## def.checkFormat:
- {{
- var $formatRef = 'formats' + it.util.getProperty($schema);
- if ($isObject) $formatRef += '.validate';
- }}
- {{? typeof $format == 'function' }}
- {{=$formatRef}}({{=$data}})
- {{??}}
- {{=$formatRef}}.test({{=$data}})
- {{?}}
-#}}
-
-
-{{
- var $unknownFormats = it.opts.unknownFormats
- , $allowUnknown = Array.isArray($unknownFormats);
-}}
-
-{{? $isData }}
- {{
- var $format = 'format' + $lvl
- , $isObject = 'isObject' + $lvl
- , $formatType = 'formatType' + $lvl;
- }}
- var {{=$format}} = formats[{{=$schemaValue}}];
- var {{=$isObject}} = typeof {{=$format}} == 'object'
- && !({{=$format}} instanceof RegExp)
- && {{=$format}}.validate;
- var {{=$formatType}} = {{=$isObject}} && {{=$format}}.type || 'string';
- if ({{=$isObject}}) {
- {{? it.async}}
- var async{{=$lvl}} = {{=$format}}.async;
- {{?}}
- {{=$format}} = {{=$format}}.validate;
- }
- if ({{# def.$dataCheckFormat }}) {
-{{??}}
- {{ var $format = it.formats[$schema]; }}
- {{? !$format }}
- {{? $unknownFormats == 'ignore' }}
- {{ it.logger.warn('unknown format "' + $schema + '" ignored in schema at path "' + it.errSchemaPath + '"'); }}
- {{# def.skipFormat }}
- {{?? $allowUnknown && $unknownFormats.indexOf($schema) >= 0 }}
- {{# def.skipFormat }}
- {{??}}
- {{ throw new Error('unknown format "' + $schema + '" is used in schema at path "' + it.errSchemaPath + '"'); }}
- {{?}}
- {{?}}
- {{
- var $isObject = typeof $format == 'object'
- && !($format instanceof RegExp)
- && $format.validate;
- var $formatType = $isObject && $format.type || 'string';
- if ($isObject) {
- var $async = $format.async === true;
- $format = $format.validate;
- }
- }}
- {{? $formatType != $ruleType }}
- {{# def.skipFormat }}
- {{?}}
- {{? $async }}
- {{
- if (!it.async) throw new Error('async format in sync schema');
- var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate';
- }}
- if (!(await {{=$formatRef}}({{=$data}}))) {
- {{??}}
- if (!{{# def.checkFormat }}) {
- {{?}}
-{{?}}
- {{# def.error:'format' }}
- } {{? $breakOnError }} else { {{?}}
diff --git a/deps/npm/node_modules/ajv/lib/dot/if.jst b/deps/npm/node_modules/ajv/lib/dot/if.jst
deleted file mode 100644
index adb50361245..00000000000
--- a/deps/npm/node_modules/ajv/lib/dot/if.jst
+++ /dev/null
@@ -1,73 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.setupNextLevel }}
-
-
-{{## def.validateIfClause:_clause:
- {{
- $it.schema = it.schema['_clause'];
- $it.schemaPath = it.schemaPath + '._clause';
- $it.errSchemaPath = it.errSchemaPath + '/_clause';
- }}
- {{# def.insertSubschemaCode }}
- {{=$valid}} = {{=$nextValid}};
- {{? $thenPresent && $elsePresent }}
- {{ $ifClause = 'ifClause' + $lvl; }}
- var {{=$ifClause}} = '_clause';
- {{??}}
- {{ $ifClause = '\'_clause\''; }}
- {{?}}
-#}}
-
-{{
- var $thenSch = it.schema['then']
- , $elseSch = it.schema['else']
- , $thenPresent = $thenSch !== undefined && {{# def.nonEmptySchema:$thenSch }}
- , $elsePresent = $elseSch !== undefined && {{# def.nonEmptySchema:$elseSch }}
- , $currentBaseId = $it.baseId;
-}}
-
-{{? $thenPresent || $elsePresent }}
- {{
- var $ifClause;
- $it.createErrors = false;
- $it.schema = $schema;
- $it.schemaPath = $schemaPath;
- $it.errSchemaPath = $errSchemaPath;
- }}
- var {{=$errs}} = errors;
- var {{=$valid}} = true;
-
- {{# def.setCompositeRule }}
- {{# def.insertSubschemaCode }}
- {{ $it.createErrors = true; }}
- {{# def.resetErrors }}
- {{# def.resetCompositeRule }}
-
- {{? $thenPresent }}
- if ({{=$nextValid}}) {
- {{# def.validateIfClause:then }}
- }
- {{? $elsePresent }}
- else {
- {{?}}
- {{??}}
- if (!{{=$nextValid}}) {
- {{?}}
-
- {{? $elsePresent }}
- {{# def.validateIfClause:else }}
- }
- {{?}}
-
- if (!{{=$valid}}) {
- {{# def.extraError:'if' }}
- }
- {{? $breakOnError }} else { {{?}}
-{{??}}
- {{? $breakOnError }}
- if (true) {
- {{?}}
-{{?}}
-
diff --git a/deps/npm/node_modules/ajv/lib/dot/items.jst b/deps/npm/node_modules/ajv/lib/dot/items.jst
deleted file mode 100644
index acc932a26ee..00000000000
--- a/deps/npm/node_modules/ajv/lib/dot/items.jst
+++ /dev/null
@@ -1,98 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.setupNextLevel }}
-
-
-{{## def.validateItems:startFrom:
- for (var {{=$idx}} = {{=startFrom}}; {{=$idx}} < {{=$data}}.length; {{=$idx}}++) {
- {{
- $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 (!{{=$nextValid}}) break;
- {{?}}
- }
-#}}
-
-{{
- var $idx = 'i' + $lvl
- , $dataNxt = $it.dataLevel = it.dataLevel + 1
- , $nextData = 'data' + $dataNxt
- , $currentBaseId = it.baseId;
-}}
-
-var {{=$errs}} = errors;
-var {{=$valid}};
-
-{{? Array.isArray($schema) }}
- {{ /* 'items' is an array of schemas */}}
- {{ var $additionalItems = it.schema.additionalItems; }}
- {{? $additionalItems === false }}
- {{=$valid}} = {{=$data}}.length <= {{= $schema.length }};
- {{
- var $currErrSchemaPath = $errSchemaPath;
- $errSchemaPath = it.errSchemaPath + '/additionalItems';
- }}
- {{# def.checkError:'additionalItems' }}
- {{ $errSchemaPath = $currErrSchemaPath; }}
- {{# def.elseIfValid}}
- {{?}}
-
- {{~ $schema:$sch:$i }}
- {{? {{# def.nonEmptySchema:$sch }} }}
- {{=$nextValid}} = true;
-
- if ({{=$data}}.length > {{=$i}}) {
- {{
- var $passData = $data + '[' + $i + ']';
- $it.schema = $sch;
- $it.schemaPath = $schemaPath + '[' + $i + ']';
- $it.errSchemaPath = $errSchemaPath + '/' + $i;
- $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true);
- $it.dataPathArr[$dataNxt] = $i;
- }}
-
- {{# def.generateSubschemaCode }}
- {{# def.optimizeValidate }}
- }
-
- {{# def.ifResultValid }}
- {{?}}
- {{~}}
-
- {{? typeof $additionalItems == 'object' && {{# def.nonEmptySchema:$additionalItems }} }}
- {{
- $it.schema = $additionalItems;
- $it.schemaPath = it.schemaPath + '.additionalItems';
- $it.errSchemaPath = it.errSchemaPath + '/additionalItems';
- }}
- {{=$nextValid}} = true;
-
- if ({{=$data}}.length > {{= $schema.length }}) {
- {{# def.validateItems: $schema.length }}
- }
-
- {{# def.ifResultValid }}
- {{?}}
-
-{{?? {{# def.nonEmptySchema:$schema }} }}
- {{ /* 'items' is a single schema */}}
- {{
- $it.schema = $schema;
- $it.schemaPath = $schemaPath;
- $it.errSchemaPath = $errSchemaPath;
- }}
- {{# def.validateItems: 0 }}
-{{?}}
-
-{{? $breakOnError }}
- {{= $closingBraces }}
- if ({{=$errs}} == errors) {
-{{?}}
diff --git a/deps/npm/node_modules/ajv/lib/dot/missing.def b/deps/npm/node_modules/ajv/lib/dot/missing.def
deleted file mode 100644
index a73b9f966e9..00000000000
--- a/deps/npm/node_modules/ajv/lib/dot/missing.def
+++ /dev/null
@@ -1,39 +0,0 @@
-{{## def.checkMissingProperty:_properties:
- {{~ _properties:$propertyKey:$i }}
- {{?$i}} || {{?}}
- {{
- var $prop = it.util.getProperty($propertyKey)
- , $useData = $data + $prop;
- }}
- ( ({{# def.noPropertyInData }}) && (missing{{=$lvl}} = {{= it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop) }}) )
- {{~}}
-#}}
-
-
-{{## def.errorMissingProperty:_error:
- {{
- var $propertyPath = 'missing' + $lvl
- , $missingProperty = '\' + ' + $propertyPath + ' + \'';
- if (it.opts._errorDataPathProperty) {
- it.errorPath = it.opts.jsonPointers
- ? it.util.getPathExpr($currentErrorPath, $propertyPath, true)
- : $currentErrorPath + ' + ' + $propertyPath;
- }
- }}
- {{# def.error:_error }}
-#}}
-
-
-{{## def.allErrorsMissingProperty:_error:
- {{
- var $prop = it.util.getProperty($propertyKey)
- , $missingProperty = it.util.escapeQuotes($propertyKey)
- , $useData = $data + $prop;
- if (it.opts._errorDataPathProperty) {
- it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);
- }
- }}
- if ({{# def.noPropertyInData }}) {
- {{# def.addError:_error }}
- }
-#}}
diff --git a/deps/npm/node_modules/ajv/lib/dot/multipleOf.jst b/deps/npm/node_modules/ajv/lib/dot/multipleOf.jst
deleted file mode 100644
index 6d88a456f38..00000000000
--- a/deps/npm/node_modules/ajv/lib/dot/multipleOf.jst
+++ /dev/null
@@ -1,22 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.$data }}
-
-{{# def.numberKeyword }}
-
-var division{{=$lvl}};
-if ({{?$isData}}
- {{=$schemaValue}} !== undefined && (
- typeof {{=$schemaValue}} != 'number' ||
- {{?}}
- (division{{=$lvl}} = {{=$data}} / {{=$schemaValue}},
- {{? it.opts.multipleOfPrecision }}
- Math.abs(Math.round(division{{=$lvl}}) - division{{=$lvl}}) > 1e-{{=it.opts.multipleOfPrecision}}
- {{??}}
- division{{=$lvl}} !== parseInt(division{{=$lvl}})
- {{?}}
- )
- {{?$isData}} ) {{?}} ) {
- {{# def.error:'multipleOf' }}
-} {{? $breakOnError }} else { {{?}}
diff --git a/deps/npm/node_modules/ajv/lib/dot/not.jst b/deps/npm/node_modules/ajv/lib/dot/not.jst
deleted file mode 100644
index e03185ae874..00000000000
--- a/deps/npm/node_modules/ajv/lib/dot/not.jst
+++ /dev/null
@@ -1,43 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.setupNextLevel }}
-
-{{? {{# def.nonEmptySchema:$schema }} }}
- {{
- $it.schema = $schema;
- $it.schemaPath = $schemaPath;
- $it.errSchemaPath = $errSchemaPath;
- }}
-
- var {{=$errs}} = errors;
-
- {{# def.setCompositeRule }}
-
- {{
- $it.createErrors = false;
- var $allErrorsOption;
- if ($it.opts.allErrors) {
- $allErrorsOption = $it.opts.allErrors;
- $it.opts.allErrors = false;
- }
- }}
- {{= it.validate($it) }}
- {{
- $it.createErrors = true;
- if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;
- }}
-
- {{# def.resetCompositeRule }}
-
- if ({{=$nextValid}}) {
- {{# def.error:'not' }}
- } else {
- {{# def.resetErrors }}
- {{? it.opts.allErrors }} } {{?}}
-{{??}}
- {{# def.addError:'not' }}
- {{? $breakOnError}}
- if (false) {
- {{?}}
-{{?}}
diff --git a/deps/npm/node_modules/ajv/lib/dot/oneOf.jst b/deps/npm/node_modules/ajv/lib/dot/oneOf.jst
deleted file mode 100644
index bcce2c6ed5a..00000000000
--- a/deps/npm/node_modules/ajv/lib/dot/oneOf.jst
+++ /dev/null
@@ -1,54 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.setupNextLevel }}
-
-{{
- var $currentBaseId = $it.baseId
- , $prevValid = 'prevValid' + $lvl
- , $passingSchemas = 'passingSchemas' + $lvl;
-}}
-
-var {{=$errs}} = errors
- , {{=$prevValid}} = false
- , {{=$valid}} = false
- , {{=$passingSchemas}} = null;
-
-{{# def.setCompositeRule }}
-
-{{~ $schema:$sch:$i }}
- {{? {{# def.nonEmptySchema:$sch }} }}
- {{
- $it.schema = $sch;
- $it.schemaPath = $schemaPath + '[' + $i + ']';
- $it.errSchemaPath = $errSchemaPath + '/' + $i;
- }}
-
- {{# def.insertSubschemaCode }}
- {{??}}
- var {{=$nextValid}} = true;
- {{?}}
-
- {{? $i }}
- if ({{=$nextValid}} && {{=$prevValid}}) {
- {{=$valid}} = false;
- {{=$passingSchemas}} = [{{=$passingSchemas}}, {{=$i}}];
- } else {
- {{ $closingBraces += '}'; }}
- {{?}}
-
- if ({{=$nextValid}}) {
- {{=$valid}} = {{=$prevValid}} = true;
- {{=$passingSchemas}} = {{=$i}};
- }
-{{~}}
-
-{{# def.resetCompositeRule }}
-
-{{= $closingBraces }}
-
-if (!{{=$valid}}) {
- {{# def.extraError:'oneOf' }}
-} else {
- {{# def.resetErrors }}
-{{? it.opts.allErrors }} } {{?}}
diff --git a/deps/npm/node_modules/ajv/lib/dot/pattern.jst b/deps/npm/node_modules/ajv/lib/dot/pattern.jst
deleted file mode 100644
index 3a37ef6cb85..00000000000
--- a/deps/npm/node_modules/ajv/lib/dot/pattern.jst
+++ /dev/null
@@ -1,14 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.$data }}
-
-{{
- var $regexp = $isData
- ? '(new RegExp(' + $schemaValue + '))'
- : it.usePattern($schema);
-}}
-
-if ({{# def.$dataNotType:'string' }} !{{=$regexp}}.test({{=$data}}) ) {
- {{# def.error:'pattern' }}
-} {{? $breakOnError }} else { {{?}}
diff --git a/deps/npm/node_modules/ajv/lib/dot/properties.jst b/deps/npm/node_modules/ajv/lib/dot/properties.jst
deleted file mode 100644
index 5cebb9b12e9..00000000000
--- a/deps/npm/node_modules/ajv/lib/dot/properties.jst
+++ /dev/null
@@ -1,245 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.setupNextLevel }}
-
-
-{{## def.validateAdditional:
- {{ /* additionalProperties is schema */
- $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, it.opts.jsonPointers);
- var $passData = $data + '[' + $key + ']';
- $it.dataPathArr[$dataNxt] = $key;
- }}
-
- {{# def.generateSubschemaCode }}
- {{# def.optimizeValidate }}
-#}}
-
-
-{{
- var $key = 'key' + $lvl
- , $idx = 'idx' + $lvl
- , $dataNxt = $it.dataLevel = it.dataLevel + 1
- , $nextData = 'data' + $dataNxt
- , $dataProperties = 'dataProperties' + $lvl;
-
- var $schemaKeys = Object.keys($schema || {}).filter(notProto)
- , $pProperties = it.schema.patternProperties || {}
- , $pPropertyKeys = Object.keys($pProperties).filter(notProto)
- , $aProperties = it.schema.additionalProperties
- , $someProperties = $schemaKeys.length || $pPropertyKeys.length
- , $noAdditional = $aProperties === false
- , $additionalIsSchema = typeof $aProperties == 'object'
- && Object.keys($aProperties).length
- , $removeAdditional = it.opts.removeAdditional
- , $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional
- , $ownProperties = it.opts.ownProperties
- , $currentBaseId = it.baseId;
-
- var $required = it.schema.required;
- if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) {
- var $requiredHash = it.util.toHash($required);
- }
-
- function notProto(p) { return p !== '__proto__'; }
-}}
-
-
-var {{=$errs}} = errors;
-var {{=$nextValid}} = true;
-{{? $ownProperties }}
- var {{=$dataProperties}} = undefined;
-{{?}}
-
-{{? $checkAdditional }}
- {{# def.iterateProperties }}
- {{? $someProperties }}
- var isAdditional{{=$lvl}} = !(false
- {{? $schemaKeys.length }}
- {{? $schemaKeys.length > 8 }}
- || validate.schema{{=$schemaPath}}.hasOwnProperty({{=$key}})
- {{??}}
- {{~ $schemaKeys:$propertyKey }}
- || {{=$key}} == {{= it.util.toQuotedString($propertyKey) }}
- {{~}}
- {{?}}
- {{?}}
- {{? $pPropertyKeys.length }}
- {{~ $pPropertyKeys:$pProperty:$i }}
- || {{= it.usePattern($pProperty) }}.test({{=$key}})
- {{~}}
- {{?}}
- );
-
- if (isAdditional{{=$lvl}}) {
- {{?}}
- {{? $removeAdditional == 'all' }}
- delete {{=$data}}[{{=$key}}];
- {{??}}
- {{
- var $currentErrorPath = it.errorPath;
- var $additionalProperty = '\' + ' + $key + ' + \'';
- if (it.opts._errorDataPathProperty) {
- it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
- }
- }}
- {{? $noAdditional }}
- {{? $removeAdditional }}
- delete {{=$data}}[{{=$key}}];
- {{??}}
- {{=$nextValid}} = false;
- {{
- var $currErrSchemaPath = $errSchemaPath;
- $errSchemaPath = it.errSchemaPath + '/additionalProperties';
- }}
- {{# def.error:'additionalProperties' }}
- {{ $errSchemaPath = $currErrSchemaPath; }}
- {{? $breakOnError }} break; {{?}}
- {{?}}
- {{?? $additionalIsSchema }}
- {{? $removeAdditional == 'failing' }}
- var {{=$errs}} = errors;
- {{# def.setCompositeRule }}
-
- {{# def.validateAdditional }}
-
- if (!{{=$nextValid}}) {
- errors = {{=$errs}};
- if (validate.errors !== null) {
- if (errors) validate.errors.length = errors;
- else validate.errors = null;
- }
- delete {{=$data}}[{{=$key}}];
- }
-
- {{# def.resetCompositeRule }}
- {{??}}
- {{# def.validateAdditional }}
- {{? $breakOnError }} if (!{{=$nextValid}}) break; {{?}}
- {{?}}
- {{?}}
- {{ it.errorPath = $currentErrorPath; }}
- {{?}}
- {{? $someProperties }}
- }
- {{?}}
- }
-
- {{# def.ifResultValid }}
-{{?}}
-
-{{ var $useDefaults = it.opts.useDefaults && !it.compositeRule; }}
-
-{{? $schemaKeys.length }}
- {{~ $schemaKeys:$propertyKey }}
- {{ var $sch = $schema[$propertyKey]; }}
-
- {{? {{# def.nonEmptySchema:$sch}} }}
- {{
- var $prop = it.util.getProperty($propertyKey)
- , $passData = $data + $prop
- , $hasDefault = $useDefaults && $sch.default !== undefined;
- $it.schema = $sch;
- $it.schemaPath = $schemaPath + $prop;
- $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey);
- $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers);
- $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey);
- }}
-
- {{# def.generateSubschemaCode }}
-
- {{? {{# def.willOptimize }} }}
- {{
- $code = {{# def._optimizeValidate }};
- var $useData = $passData;
- }}
- {{??}}
- {{ var $useData = $nextData; }}
- var {{=$nextData}} = {{=$passData}};
- {{?}}
-
- {{? $hasDefault }}
- {{= $code }}
- {{??}}
- {{? $requiredHash && $requiredHash[$propertyKey] }}
- if ({{# def.noPropertyInData }}) {
- {{=$nextValid}} = false;
- {{
- var $currentErrorPath = it.errorPath
- , $currErrSchemaPath = $errSchemaPath
- , $missingProperty = it.util.escapeQuotes($propertyKey);
- if (it.opts._errorDataPathProperty) {
- it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);
- }
- $errSchemaPath = it.errSchemaPath + '/required';
- }}
- {{# def.error:'required' }}
- {{ $errSchemaPath = $currErrSchemaPath; }}
- {{ it.errorPath = $currentErrorPath; }}
- } else {
- {{??}}
- {{? $breakOnError }}
- if ({{# def.noPropertyInData }}) {
- {{=$nextValid}} = true;
- } else {
- {{??}}
- if ({{=$useData}} !== undefined
- {{? $ownProperties }}
- && {{# def.isOwnProperty }}
- {{?}}
- ) {
- {{?}}
- {{?}}
-
- {{= $code }}
- }
- {{?}} {{ /* $hasDefault */ }}
- {{?}} {{ /* def.nonEmptySchema */ }}
-
- {{# def.ifResultValid }}
- {{~}}
-{{?}}
-
-{{? $pPropertyKeys.length }}
- {{~ $pPropertyKeys:$pProperty }}
- {{ var $sch = $pProperties[$pProperty]; }}
-
- {{? {{# def.nonEmptySchema:$sch}} }}
- {{
- $it.schema = $sch;
- $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty);
- $it.errSchemaPath = it.errSchemaPath + '/patternProperties/'
- + it.util.escapeFragment($pProperty);
- }}
-
- {{# def.iterateProperties }}
- if ({{= it.usePattern($pProperty) }}.test({{=$key}})) {
- {{
- $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 (!{{=$nextValid}}) break; {{?}}
- }
- {{? $breakOnError }} else {{=$nextValid}} = true; {{?}}
- }
-
- {{# def.ifResultValid }}
- {{?}} {{ /* def.nonEmptySchema */ }}
- {{~}}
-{{?}}
-
-
-{{? $breakOnError }}
- {{= $closingBraces }}
- if ({{=$errs}} == errors) {
-{{?}}
diff --git a/deps/npm/node_modules/ajv/lib/dot/propertyNames.jst b/deps/npm/node_modules/ajv/lib/dot/propertyNames.jst
deleted file mode 100644
index d456ccafc4b..00000000000
--- a/deps/npm/node_modules/ajv/lib/dot/propertyNames.jst
+++ /dev/null
@@ -1,52 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.setupNextLevel }}
-
-var {{=$errs}} = errors;
-
-{{? {{# def.nonEmptySchema:$schema }} }}
- {{
- $it.schema = $schema;
- $it.schemaPath = $schemaPath;
- $it.errSchemaPath = $errSchemaPath;
- }}
-
- {{
- var $key = 'key' + $lvl
- , $idx = 'idx' + $lvl
- , $i = 'i' + $lvl
- , $invalidName = '\' + ' + $key + ' + \''
- , $dataNxt = $it.dataLevel = it.dataLevel + 1
- , $nextData = 'data' + $dataNxt
- , $dataProperties = 'dataProperties' + $lvl
- , $ownProperties = it.opts.ownProperties
- , $currentBaseId = it.baseId;
- }}
-
- {{? $ownProperties }}
- var {{=$dataProperties}} = undefined;
- {{?}}
- {{# def.iterateProperties }}
- var startErrs{{=$lvl}} = errors;
-
- {{ var $passData = $key; }}
- {{# def.setCompositeRule }}
- {{# def.generateSubschemaCode }}
- {{# def.optimizeValidate }}
- {{# def.resetCompositeRule }}
-
- if (!{{=$nextValid}}) {
- for (var {{=$i}}=startErrs{{=$lvl}}; {{=$i}}<errors; {{=$i}}++) {
- vErrors[{{=$i}}].propertyName = {{=$key}};
- }
- {{# def.extraError:'propertyNames' }}
- {{? $breakOnError }} break; {{?}}
- }
- }
-{{?}}
-
-{{? $breakOnError }}
- {{= $closingBraces }}
- if ({{=$errs}} == errors) {
-{{?}}
diff --git a/deps/npm/node_modules/ajv/lib/dot/ref.jst b/deps/npm/node_modules/ajv/lib/dot/ref.jst
deleted file mode 100644
index 253e3507cb4..00000000000
--- a/deps/npm/node_modules/ajv/lib/dot/ref.jst
+++ /dev/null
@@ -1,85 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-
-{{## def._validateRef:_v:
- {{? it.opts.passContext }}
- {{=_v}}.call(this,
- {{??}}
- {{=_v}}(
- {{?}}
- {{=$data}}, {{# def.dataPath }}{{# def.passParentData }}, rootData)
-#}}
-
-{{ var $async, $refCode; }}
-{{? $schema == '#' || $schema == '#/' }}
- {{
- if (it.isRoot) {
- $async = it.async;
- $refCode = 'validate';
- } else {
- $async = it.root.schema.$async === true;
- $refCode = 'root.refVal[0]';
- }
- }}
-{{??}}
- {{ var $refVal = it.resolveRef(it.baseId, $schema, it.isRoot); }}
- {{? $refVal === undefined }}
- {{ var $message = it.MissingRefError.message(it.baseId, $schema); }}
- {{? it.opts.missingRefs == 'fail' }}
- {{ it.logger.error($message); }}
- {{# def.error:'$ref' }}
- {{? $breakOnError }} if (false) { {{?}}
- {{?? it.opts.missingRefs == 'ignore' }}
- {{ it.logger.warn($message); }}
- {{? $breakOnError }} if (true) { {{?}}
- {{??}}
- {{ throw new it.MissingRefError(it.baseId, $schema, $message); }}
- {{?}}
- {{?? $refVal.inline }}
- {{# def.setupNextLevel }}
- {{
- $it.schema = $refVal.schema;
- $it.schemaPath = '';
- $it.errSchemaPath = $schema;
- }}
- {{ var $code = it.validate($it).replace(/validate\.schema/g, $refVal.code); }}
- {{= $code }}
- {{? $breakOnError}}
- if ({{=$nextValid}}) {
- {{?}}
- {{??}}
- {{
- $async = $refVal.$async === true || (it.async && $refVal.$async !== false);
- $refCode = $refVal.code;
- }}
- {{?}}
-{{?}}
-
-{{? $refCode }}
- {{# def.beginDefOut}}
- {{# def._validateRef:$refCode }}
- {{# def.storeDefOut:__callValidate }}
-
- {{? $async }}
- {{ if (!it.async) throw new Error('async schema referenced by sync schema'); }}
- {{? $breakOnError }} var {{=$valid}}; {{?}}
- try {
- await {{=__callValidate}};
- {{? $breakOnError }} {{=$valid}} = true; {{?}}
- } catch (e) {
- if (!(e instanceof ValidationError)) throw e;
- if (vErrors === null) vErrors = e.errors;
- else vErrors = vErrors.concat(e.errors);
- errors = vErrors.length;
- {{? $breakOnError }} {{=$valid}} = false; {{?}}
- }
- {{? $breakOnError }} if ({{=$valid}}) { {{?}}
- {{??}}
- if (!{{=__callValidate}}) {
- if (vErrors === null) vErrors = {{=$refCode}}.errors;
- else vErrors = vErrors.concat({{=$refCode}}.errors);
- errors = vErrors.length;
- } {{? $breakOnError }} else { {{?}}
- {{?}}
-{{?}}
diff --git a/deps/npm/node_modules/ajv/lib/dot/required.jst b/deps/npm/node_modules/ajv/lib/dot/required.jst
deleted file mode 100644
index 80fde35e8cf..00000000000
--- a/deps/npm/node_modules/ajv/lib/dot/required.jst
+++ /dev/null
@@ -1,108 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.missing }}
-{{# def.setupKeyword }}
-{{# def.$data }}
-
-{{ var $vSchema = 'schema' + $lvl; }}
-
-{{## def.setupLoop:
- {{? !$isData }}
- var {{=$vSchema}} = validate.schema{{=$schemaPath}};
- {{?}}
-
- {{
- var $i = 'i' + $lvl
- , $propertyPath = 'schema' + $lvl + '[' + $i + ']'
- , $missingProperty = '\' + ' + $propertyPath + ' + \'';
- if (it.opts._errorDataPathProperty) {
- it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);
- }
- }}
-#}}
-
-
-{{## def.isRequiredOwnProperty:
- Object.prototype.hasOwnProperty.call({{=$data}}, {{=$vSchema}}[{{=$i}}])
-#}}
-
-
-{{? !$isData }}
- {{? $schema.length < it.opts.loopRequired &&
- it.schema.properties && Object.keys(it.schema.properties).length }}
- {{ var $required = []; }}
- {{~ $schema:$property }}
- {{ var $propertySch = it.schema.properties[$property]; }}
- {{? !($propertySch && {{# def.nonEmptySchema:$propertySch}}) }}
- {{ $required[$required.length] = $property; }}
- {{?}}
- {{~}}
- {{??}}
- {{ var $required = $schema; }}
- {{?}}
-{{?}}
-
-
-{{? $isData || $required.length }}
- {{
- var $currentErrorPath = it.errorPath
- , $loopRequired = $isData || $required.length >= it.opts.loopRequired
- , $ownProperties = it.opts.ownProperties;
- }}
-
- {{? $breakOnError }}
- var missing{{=$lvl}};
- {{? $loopRequired }}
- {{# def.setupLoop }}
- var {{=$valid}} = true;
-
- {{?$isData}}{{# def.check$dataIsArray }}{{?}}
-
- for (var {{=$i}} = 0; {{=$i}} < {{=$vSchema}}.length; {{=$i}}++) {
- {{=$valid}} = {{=$data}}[{{=$vSchema}}[{{=$i}}]] !== undefined
- {{? $ownProperties }}
- && {{# def.isRequiredOwnProperty }}
- {{?}};
- if (!{{=$valid}}) break;
- }
-
- {{? $isData }} } {{?}}
-
- {{# def.checkError:'required' }}
- else {
- {{??}}
- if ({{# def.checkMissingProperty:$required }}) {
- {{# def.errorMissingProperty:'required' }}
- } else {
- {{?}}
- {{??}}
- {{? $loopRequired }}
- {{# def.setupLoop }}
- {{? $isData }}
- if ({{=$vSchema}} && !Array.isArray({{=$vSchema}})) {
- {{# def.addError:'required' }}
- } else if ({{=$vSchema}} !== undefined) {
- {{?}}
-
- for (var {{=$i}} = 0; {{=$i}} < {{=$vSchema}}.length; {{=$i}}++) {
- if ({{=$data}}[{{=$vSchema}}[{{=$i}}]] === undefined
- {{? $ownProperties }}
- || !{{# def.isRequiredOwnProperty }}
- {{?}}) {
- {{# def.addError:'required' }}
- }
- }
-
- {{? $isData }} } {{?}}
- {{??}}
- {{~ $required:$propertyKey }}
- {{# def.allErrorsMissingProperty:'required' }}
- {{~}}
- {{?}}
- {{?}}
-
- {{ it.errorPath = $currentErrorPath; }}
-
-{{?? $breakOnError }}
- if (true) {
-{{?}}
diff --git a/deps/npm/node_modules/ajv/lib/dot/uniqueItems.jst b/deps/npm/node_modules/ajv/lib/dot/uniqueItems.jst
deleted file mode 100644
index e69b8308d2c..00000000000
--- a/deps/npm/node_modules/ajv/lib/dot/uniqueItems.jst
+++ /dev/null
@@ -1,62 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.$data }}
-
-
-{{? ($schema || $isData) && it.opts.uniqueItems !== false }}
- {{? $isData }}
- var {{=$valid}};
- if ({{=$schemaValue}} === false || {{=$schemaValue}} === undefined)
- {{=$valid}} = true;
- else if (typeof {{=$schemaValue}} != 'boolean')
- {{=$valid}} = false;
- else {
- {{?}}
-
- var i = {{=$data}}.length
- , {{=$valid}} = true
- , j;
- if (i > 1) {
- {{
- var $itemType = it.schema.items && it.schema.items.type
- , $typeIsArray = Array.isArray($itemType);
- }}
- {{? !$itemType || $itemType == 'object' || $itemType == 'array' ||
- ($typeIsArray && ($itemType.indexOf('object') >= 0 || $itemType.indexOf('array') >= 0)) }}
- outer:
- for (;i--;) {
- for (j = i; j--;) {
- if (equal({{=$data}}[i], {{=$data}}[j])) {
- {{=$valid}} = false;
- break outer;
- }
- }
- }
- {{??}}
- var itemIndices = {}, item;
- for (;i--;) {
- var item = {{=$data}}[i];
- {{ var $method = 'checkDataType' + ($typeIsArray ? 's' : ''); }}
- if ({{= it.util[$method]($itemType, 'item', it.opts.strictNumbers, true) }}) continue;
- {{? $typeIsArray}}
- if (typeof item == 'string') item = '"' + item;
- {{?}}
- if (typeof itemIndices[item] == 'number') {
- {{=$valid}} = false;
- j = itemIndices[item];
- break;
- }
- itemIndices[item] = i;
- }
- {{?}}
- }
-
- {{? $isData }} } {{?}}
-
- if (!{{=$valid}}) {
- {{# def.error:'uniqueItems' }}
- } {{? $breakOnError }} else { {{?}}
-{{??}}
- {{? $breakOnError }} if (true) { {{?}}
-{{?}}
diff --git a/deps/npm/node_modules/ajv/lib/dot/validate.jst b/deps/npm/node_modules/ajv/lib/dot/validate.jst
deleted file mode 100644
index 32087e71c0d..00000000000
--- a/deps/npm/node_modules/ajv/lib/dot/validate.jst
+++ /dev/null
@@ -1,276 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.defaults }}
-{{# def.coerce }}
-
-{{ /**
- * schema compilation (render) time:
- * it = { schema, RULES, _validate, opts }
- * it.validate - this template function,
- * it is used recursively to generate code for subschemas
- *
- * runtime:
- * "validate" is a variable name to which this function will be assigned
- * validateRef etc. are defined in the parent scope in index.js
- */ }}
-
-{{
- var $async = it.schema.$async === true
- , $refKeywords = it.util.schemaHasRulesExcept(it.schema, it.RULES.all, '$ref')
- , $id = it.self._getId(it.schema);
-}}
-
-{{
- if (it.opts.strictKeywords) {
- var $unknownKwd = it.util.schemaUnknownRules(it.schema, it.RULES.keywords);
- if ($unknownKwd) {
- var $keywordsMsg = 'unknown keyword: ' + $unknownKwd;
- if (it.opts.strictKeywords === 'log') it.logger.warn($keywordsMsg);
- else throw new Error($keywordsMsg);
- }
- }
-}}
-
-{{? it.isTop }}
- var validate = {{?$async}}{{it.async = true;}}async {{?}}function(data, dataPath, parentData, parentDataProperty, rootData) {
- 'use strict';
- {{? $id && (it.opts.sourceCode || it.opts.processCode) }}
- {{= '/\*# sourceURL=' + $id + ' */' }}
- {{?}}
-{{?}}
-
-{{? typeof it.schema == 'boolean' || !($refKeywords || it.schema.$ref) }}
- {{ var $keyword = 'false schema'; }}
- {{# def.setupKeyword }}
- {{? it.schema === false}}
- {{? it.isTop}}
- {{ $breakOnError = true; }}
- {{??}}
- var {{=$valid}} = false;
- {{?}}
- {{# def.error:'false schema' }}
- {{??}}
- {{? it.isTop}}
- {{? $async }}
- return data;
- {{??}}
- validate.errors = null;
- return true;
- {{?}}
- {{??}}
- var {{=$valid}} = true;
- {{?}}
- {{?}}
-
- {{? it.isTop}}
- };
- return validate;
- {{?}}
-
- {{ return out; }}
-{{?}}
-
-
-{{? it.isTop }}
- {{
- var $top = it.isTop
- , $lvl = it.level = 0
- , $dataLvl = it.dataLevel = 0
- , $data = 'data';
- it.rootId = it.resolve.fullPath(it.self._getId(it.root.schema));
- it.baseId = it.baseId || it.rootId;
- delete it.isTop;
-
- it.dataPathArr = [""];
-
- if (it.schema.default !== undefined && it.opts.useDefaults && it.opts.strictDefaults) {
- var $defaultMsg = 'default is ignored in the schema root';
- if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);
- else throw new Error($defaultMsg);
- }
- }}
-
- var vErrors = null; {{ /* don't edit, used in replace */ }}
- var errors = 0; {{ /* don't edit, used in replace */ }}
- if (rootData === undefined) rootData = data; {{ /* don't edit, used in replace */ }}
-{{??}}
- {{
- var $lvl = it.level
- , $dataLvl = it.dataLevel
- , $data = 'data' + ($dataLvl || '');
-
- if ($id) it.baseId = it.resolve.url(it.baseId, $id);
-
- if ($async && !it.async) throw new Error('async schema in sync schema');
- }}
-
- var errs_{{=$lvl}} = errors;
-{{?}}
-
-{{
- var $valid = 'valid' + $lvl
- , $breakOnError = !it.opts.allErrors
- , $closingBraces1 = ''
- , $closingBraces2 = '';
-
- var $errorKeyword;
- var $typeSchema = it.schema.type
- , $typeIsArray = Array.isArray($typeSchema);
-
- if ($typeSchema && it.opts.nullable && it.schema.nullable === true) {
- if ($typeIsArray) {
- if ($typeSchema.indexOf('null') == -1)
- $typeSchema = $typeSchema.concat('null');
- } else if ($typeSchema != 'null') {
- $typeSchema = [$typeSchema, 'null'];
- $typeIsArray = true;
- }
- }
-
- if ($typeIsArray && $typeSchema.length == 1) {
- $typeSchema = $typeSchema[0];
- $typeIsArray = false;
- }
-}}
-
-{{## def.checkType:
- {{
- var $schemaPath = it.schemaPath + '.type'
- , $errSchemaPath = it.errSchemaPath + '/type'
- , $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType';
- }}
-
- if ({{= it.util[$method]($typeSchema, $data, it.opts.strictNumbers, true) }}) {
-#}}
-
-{{? it.schema.$ref && $refKeywords }}
- {{? it.opts.extendRefs == 'fail' }}
- {{ throw new Error('$ref: validation keywords used in schema at path "' + it.errSchemaPath + '" (see option extendRefs)'); }}
- {{?? it.opts.extendRefs !== true }}
- {{
- $refKeywords = false;
- it.logger.warn('$ref: keywords ignored in schema at path "' + it.errSchemaPath + '"');
- }}
- {{?}}
-{{?}}
-
-{{? it.schema.$comment && it.opts.$comment }}
- {{= it.RULES.all.$comment.code(it, '$comment') }}
-{{?}}
-
-{{? $typeSchema }}
- {{? it.opts.coerceTypes }}
- {{ var $coerceToTypes = it.util.coerceToTypes(it.opts.coerceTypes, $typeSchema); }}
- {{?}}
-
- {{ var $rulesGroup = it.RULES.types[$typeSchema]; }}
- {{? $coerceToTypes || $typeIsArray || $rulesGroup === true ||
- ($rulesGroup && !$shouldUseGroup($rulesGroup)) }}
- {{
- var $schemaPath = it.schemaPath + '.type'
- , $errSchemaPath = it.errSchemaPath + '/type';
- }}
- {{# def.checkType }}
- {{? $coerceToTypes }}
- {{# def.coerceType }}
- {{??}}
- {{# def.error:'type' }}
- {{?}}
- }
- {{?}}
-{{?}}
-
-
-{{? it.schema.$ref && !$refKeywords }}
- {{= it.RULES.all.$ref.code(it, '$ref') }}
- {{? $breakOnError }}
- }
- if (errors === {{?$top}}0{{??}}errs_{{=$lvl}}{{?}}) {
- {{ $closingBraces2 += '}'; }}
- {{?}}
-{{??}}
- {{~ it.RULES:$rulesGroup }}
- {{? $shouldUseGroup($rulesGroup) }}
- {{? $rulesGroup.type }}
- if ({{= it.util.checkDataType($rulesGroup.type, $data, it.opts.strictNumbers) }}) {
- {{?}}
- {{? it.opts.useDefaults }}
- {{? $rulesGroup.type == 'object' && it.schema.properties }}
- {{# def.defaultProperties }}
- {{?? $rulesGroup.type == 'array' && Array.isArray(it.schema.items) }}
- {{# def.defaultItems }}
- {{?}}
- {{?}}
- {{~ $rulesGroup.rules:$rule }}
- {{? $shouldUseRule($rule) }}
- {{ var $code = $rule.code(it, $rule.keyword, $rulesGroup.type); }}
- {{? $code }}
- {{= $code }}
- {{? $breakOnError }}
- {{ $closingBraces1 += '}'; }}
- {{?}}
- {{?}}
- {{?}}
- {{~}}
- {{? $breakOnError }}
- {{= $closingBraces1 }}
- {{ $closingBraces1 = ''; }}
- {{?}}
- {{? $rulesGroup.type }}
- }
- {{? $typeSchema && $typeSchema === $rulesGroup.type && !$coerceToTypes }}
- else {
- {{
- var $schemaPath = it.schemaPath + '.type'
- , $errSchemaPath = it.errSchemaPath + '/type';
- }}
- {{# def.error:'type' }}
- }
- {{?}}
- {{?}}
-
- {{? $breakOnError }}
- if (errors === {{?$top}}0{{??}}errs_{{=$lvl}}{{?}}) {
- {{ $closingBraces2 += '}'; }}
- {{?}}
- {{?}}
- {{~}}
-{{?}}
-
-{{? $breakOnError }} {{= $closingBraces2 }} {{?}}
-
-{{? $top }}
- {{? $async }}
- if (errors === 0) return data; {{ /* don't edit, used in replace */ }}
- else throw new ValidationError(vErrors); {{ /* don't edit, used in replace */ }}
- {{??}}
- validate.errors = vErrors; {{ /* don't edit, used in replace */ }}
- return errors === 0; {{ /* don't edit, used in replace */ }}
- {{?}}
- };
-
- return validate;
-{{??}}
- var {{=$valid}} = errors === errs_{{=$lvl}};
-{{?}}
-
-{{
- function $shouldUseGroup($rulesGroup) {
- var rules = $rulesGroup.rules;
- for (var i=0; i < rules.length; i++)
- if ($shouldUseRule(rules[i]))
- return true;
- }
-
- function $shouldUseRule($rule) {
- return it.schema[$rule.keyword] !== undefined ||
- ($rule.implements && $ruleImplementsSomeKeyword($rule));
- }
-
- function $ruleImplementsSomeKeyword($rule) {
- var impl = $rule.implements;
- for (var i=0; i < impl.length; i++)
- if (it.schema[impl[i]] !== undefined)
- return true;
- }
-}}
diff --git a/deps/npm/node_modules/ajv/lib/dotjs/_limit.js b/deps/npm/node_modules/ajv/lib/dotjs/_limit.js
deleted file mode 100644
index 05a1979dcb8..00000000000
--- a/deps/npm/node_modules/ajv/lib/dotjs/_limit.js
+++ /dev/null
@@ -1,163 +0,0 @@
-'use strict';
-module.exports = function generate__limit(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $errorKeyword;
- var $data = 'data' + ($dataLvl || '');
- var $isData = it.opts.$data && $schema && $schema.$data,
- $schemaValue;
- if ($isData) {
- out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
- $schemaValue = 'schema' + $lvl;
- } else {
- $schemaValue = $schema;
- }
- var $isMax = $keyword == 'maximum',
- $exclusiveKeyword = $isMax ? 'exclusiveMaximum' : 'exclusiveMinimum',
- $schemaExcl = it.schema[$exclusiveKeyword],
- $isDataExcl = it.opts.$data && $schemaExcl && $schemaExcl.$data,
- $op = $isMax ? '<' : '>',
- $notOp = $isMax ? '>' : '<',
- $errorKeyword = undefined;
- if (!($isData || typeof $schema == 'number' || $schema === undefined)) {
- throw new Error($keyword + ' must be number');
- }
- if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) {
- throw new Error($exclusiveKeyword + ' must be number or boolean');
- }
- if ($isDataExcl) {
- var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),
- $exclusive = 'exclusive' + $lvl,
- $exclType = 'exclType' + $lvl,
- $exclIsNumber = 'exclIsNumber' + $lvl,
- $opExpr = 'op' + $lvl,
- $opStr = '\' + ' + $opExpr + ' + \'';
- out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; ';
- $schemaValueExcl = 'schemaExcl' + $lvl;
- out += ' var ' + ($exclusive) + '; var ' + ($exclType) + ' = typeof ' + ($schemaValueExcl) + '; if (' + ($exclType) + ' != \'boolean\' && ' + ($exclType) + ' != \'undefined\' && ' + ($exclType) + ' != \'number\') { ';
- var $errorKeyword = $exclusiveKeyword;
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ($errorKeyword || '_exclusiveLimit') + '\' , 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 += ' } else if ( ';
- if ($isData) {
- out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || ';
- }
- out += ' ' + ($exclType) + ' == \'number\' ? ( (' + ($exclusive) + ' = ' + ($schemaValue) + ' === undefined || ' + ($schemaValueExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ') ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValueExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) : ( (' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \'' + ($op) + '\' : \'' + ($op) + '=\'; ';
- if ($schema === undefined) {
- $errorKeyword = $exclusiveKeyword;
- $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;
- $schemaValue = $schemaValueExcl;
- $isData = $isDataExcl;
- }
- } else {
- var $exclIsNumber = typeof $schemaExcl == 'number',
- $opStr = $op;
- if ($exclIsNumber && $isData) {
- var $opExpr = '\'' + $opStr + '\'';
- out += ' if ( ';
- if ($isData) {
- out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || ';
- }
- out += ' ( ' + ($schemaValue) + ' === undefined || ' + ($schemaExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ' ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { ';
- } else {
- if ($exclIsNumber && $schema === undefined) {
- $exclusive = true;
- $errorKeyword = $exclusiveKeyword;
- $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;
- $schemaValue = $schemaExcl;
- $notOp += '=';
- } else {
- if ($exclIsNumber) $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema);
- if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) {
- $exclusive = true;
- $errorKeyword = $exclusiveKeyword;
- $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;
- $notOp += '=';
- } else {
- $exclusive = false;
- $opStr += '=';
- }
- }
- var $opExpr = '\'' + $opStr + '\'';
- out += ' if ( ';
- if ($isData) {
- out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || ';
- }
- out += ' ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') { ';
- }
- }
- $errorKeyword = $errorKeyword || $keyword;
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ($errorKeyword || '_limit') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should be ' + ($opStr) + ' ';
- if ($isData) {
- out += '\' + ' + ($schemaValue);
- } else {
- out += '' + ($schemaValue) + '\'';
- }
- }
- if (it.opts.verbose) {
- out += ' , schema: ';
- if ($isData) {
- out += 'validate.schema' + ($schemaPath);
- } else {
- out += '' + ($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 += ' } ';
- if ($breakOnError) {
- out += ' else { ';
- }
- return out;
-}
diff --git a/deps/npm/node_modules/ajv/lib/dotjs/_limitItems.js b/deps/npm/node_modules/ajv/lib/dotjs/_limitItems.js
deleted file mode 100644
index e092a559ea0..00000000000
--- a/deps/npm/node_modules/ajv/lib/dotjs/_limitItems.js
+++ /dev/null
@@ -1,80 +0,0 @@
-'use strict';
-module.exports = function generate__limitItems(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $errorKeyword;
- var $data = 'data' + ($dataLvl || '');
- var $isData = it.opts.$data && $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 (!($isData || typeof $schema == 'number')) {
- throw new Error($keyword + ' must be number');
- }
- var $op = $keyword == 'maxItems' ? '>' : '<';
- out += 'if ( ';
- if ($isData) {
- out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || ';
- }
- out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { ';
- var $errorKeyword = $keyword;
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ($errorKeyword || '_limitItems') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should NOT have ';
- if ($keyword == 'maxItems') {
- out += 'more';
- } else {
- out += 'fewer';
- }
- out += ' than ';
- if ($isData) {
- out += '\' + ' + ($schemaValue) + ' + \'';
- } else {
- out += '' + ($schema);
- }
- out += ' items\' ';
- }
- if (it.opts.verbose) {
- out += ' , schema: ';
- if ($isData) {
- out += 'validate.schema' + ($schemaPath);
- } else {
- out += '' + ($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 += '} ';
- if ($breakOnError) {
- out += ' else { ';
- }
- return out;
-}
diff --git a/deps/npm/node_modules/ajv/lib/dotjs/_limitLength.js b/deps/npm/node_modules/ajv/lib/dotjs/_limitLength.js
deleted file mode 100644
index ecbd3fe1906..00000000000
--- a/deps/npm/node_modules/ajv/lib/dotjs/_limitLength.js
+++ /dev/null
@@ -1,85 +0,0 @@
-'use strict';
-module.exports = function generate__limitLength(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $errorKeyword;
- var $data = 'data' + ($dataLvl || '');
- var $isData = it.opts.$data && $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 (!($isData || typeof $schema == 'number')) {
- throw new Error($keyword + ' must be number');
- }
- var $op = $keyword == 'maxLength' ? '>' : '<';
- out += 'if ( ';
- if ($isData) {
- out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || ';
- }
- if (it.opts.unicode === false) {
- out += ' ' + ($data) + '.length ';
- } else {
- out += ' ucs2length(' + ($data) + ') ';
- }
- out += ' ' + ($op) + ' ' + ($schemaValue) + ') { ';
- var $errorKeyword = $keyword;
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ($errorKeyword || '_limitLength') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should NOT be ';
- if ($keyword == 'maxLength') {
- out += 'longer';
- } else {
- out += 'shorter';
- }
- out += ' than ';
- if ($isData) {
- out += '\' + ' + ($schemaValue) + ' + \'';
- } else {
- out += '' + ($schema);
- }
- out += ' characters\' ';
- }
- if (it.opts.verbose) {
- out += ' , schema: ';
- if ($isData) {
- out += 'validate.schema' + ($schemaPath);
- } else {
- out += '' + ($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 += '} ';
- if ($breakOnError) {
- out += ' else { ';
- }
- return out;
-}
diff --git a/deps/npm/node_modules/ajv/lib/dotjs/_limitProperties.js b/deps/npm/node_modules/ajv/lib/dotjs/_limitProperties.js
deleted file mode 100644
index d232755ad0b..00000000000
--- a/deps/npm/node_modules/ajv/lib/dotjs/_limitProperties.js
+++ /dev/null
@@ -1,80 +0,0 @@
-'use strict';
-module.exports = function generate__limitProperties(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $errorKeyword;
- var $data = 'data' + ($dataLvl || '');
- var $isData = it.opts.$data && $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 (!($isData || typeof $schema == 'number')) {
- throw new Error($keyword + ' must be number');
- }
- var $op = $keyword == 'maxProperties' ? '>' : '<';
- out += 'if ( ';
- if ($isData) {
- out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || ';
- }
- out += ' Object.keys(' + ($data) + ').length ' + ($op) + ' ' + ($schemaValue) + ') { ';
- var $errorKeyword = $keyword;
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ($errorKeyword || '_limitProperties') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should NOT have ';
- if ($keyword == 'maxProperties') {
- out += 'more';
- } else {
- out += 'fewer';
- }
- out += ' than ';
- if ($isData) {
- out += '\' + ' + ($schemaValue) + ' + \'';
- } else {
- out += '' + ($schema);
- }
- out += ' properties\' ';
- }
- if (it.opts.verbose) {
- out += ' , schema: ';
- if ($isData) {
- out += 'validate.schema' + ($schemaPath);
- } else {
- out += '' + ($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 += '} ';
- if ($breakOnError) {
- out += ' else { ';
- }
- return out;
-}
diff --git a/deps/npm/node_modules/ajv/lib/dotjs/allOf.js b/deps/npm/node_modules/ajv/lib/dotjs/allOf.js
deleted file mode 100644
index fb8c2e4bbef..00000000000
--- a/deps/npm/node_modules/ajv/lib/dotjs/allOf.js
+++ /dev/null
@@ -1,42 +0,0 @@
-'use strict';
-module.exports = function generate_allOf(it, $keyword, $ruleType) {
- var out = ' ';
- var $schema = it.schema[$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 $nextValid = 'valid' + $it.level;
- var $currentBaseId = $it.baseId,
- $allSchemasEmpty = true;
- var arr1 = $schema;
- if (arr1) {
- var $sch, $i = -1,
- l1 = arr1.length - 1;
- while ($i < l1) {
- $sch = arr1[$i += 1];
- if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : 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 (' + ($nextValid) + ') { ';
- $closingBraces += '}';
- }
- }
- }
- }
- if ($breakOnError) {
- if ($allSchemasEmpty) {
- out += ' if (true) { ';
- } else {
- out += ' ' + ($closingBraces.slice(0, -1)) + ' ';
- }
- }
- return out;
-}
diff --git a/deps/npm/node_modules/ajv/lib/dotjs/anyOf.js b/deps/npm/node_modules/ajv/lib/dotjs/anyOf.js
deleted file mode 100644
index 0600a9d42bc..00000000000
--- a/deps/npm/node_modules/ajv/lib/dotjs/anyOf.js
+++ /dev/null
@@ -1,73 +0,0 @@
-'use strict';
-module.exports = function generate_anyOf(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- 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 $noEmptySchema = $schema.every(function($sch) {
- return (it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all));
- });
- if ($noEmptySchema) {
- var $currentBaseId = $it.baseId;
- out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = false; ';
- var $wasComposite = it.compositeRule;
- it.compositeRule = $it.compositeRule = true;
- var arr1 = $schema;
- if (arr1) {
- var $sch, $i = -1,
- l1 = arr1.length - 1;
- while ($i < l1) {
- $sch = arr1[$i += 1];
- $it.schema = $sch;
- $it.schemaPath = $schemaPath + '[' + $i + ']';
- $it.errSchemaPath = $errSchemaPath + '/' + $i;
- out += ' ' + (it.validate($it)) + ' ';
- $it.baseId = $currentBaseId;
- out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { ';
- $closingBraces += '}';
- }
- }
- it.compositeRule = $it.compositeRule = $wasComposite;
- out += ' ' + ($closingBraces) + ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('anyOf') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should match some schema in anyOf\' ';
- }
- 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 (!it.compositeRule && $breakOnError) {
- /* istanbul ignore if */
- if (it.async) {
- out += ' throw new ValidationError(vErrors); ';
- } else {
- out += ' validate.errors = vErrors; return false; ';
- }
- }
- out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';
- if (it.opts.allErrors) {
- out += ' } ';
- }
- } else {
- if ($breakOnError) {
- out += ' if (true) { ';
- }
- }
- return out;
-}
diff --git a/deps/npm/node_modules/ajv/lib/dotjs/comment.js b/deps/npm/node_modules/ajv/lib/dotjs/comment.js
deleted file mode 100644
index dd66bb8f0f9..00000000000
--- a/deps/npm/node_modules/ajv/lib/dotjs/comment.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-module.exports = function generate_comment(it, $keyword, $ruleType) {
- var out = ' ';
- var $schema = it.schema[$keyword];
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $comment = it.util.toQuotedString($schema);
- if (it.opts.$comment === true) {
- out += ' console.log(' + ($comment) + ');';
- } else if (typeof it.opts.$comment == 'function') {
- out += ' self._opts.$comment(' + ($comment) + ', ' + (it.util.toQuotedString($errSchemaPath)) + ', validate.root.schema);';
- }
- return out;
-}
diff --git a/deps/npm/node_modules/ajv/lib/dotjs/const.js b/deps/npm/node_modules/ajv/lib/dotjs/const.js
deleted file mode 100644
index 15b7c619fff..00000000000
--- a/deps/npm/node_modules/ajv/lib/dotjs/const.js
+++ /dev/null
@@ -1,56 +0,0 @@
-'use strict';
-module.exports = function generate_const(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $data = 'data' + ($dataLvl || '');
- var $valid = 'valid' + $lvl;
- var $isData = it.opts.$data && $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 (!$isData) {
- out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';';
- }
- out += 'var ' + ($valid) + ' = equal(' + ($data) + ', schema' + ($lvl) + '); if (!' + ($valid) + ') { ';
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('const') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValue: schema' + ($lvl) + ' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should be equal to constant\' ';
- }
- 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) {
- out += ' else { ';
- }
- return out;
-}
diff --git a/deps/npm/node_modules/ajv/lib/dotjs/contains.js b/deps/npm/node_modules/ajv/lib/dotjs/contains.js
deleted file mode 100644
index 7d763009073..00000000000
--- a/deps/npm/node_modules/ajv/lib/dotjs/contains.js
+++ /dev/null
@@ -1,81 +0,0 @@
-'use strict';
-module.exports = function generate_contains(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- 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 $idx = 'i' + $lvl,
- $dataNxt = $it.dataLevel = it.dataLevel + 1,
- $nextData = 'data' + $dataNxt,
- $currentBaseId = it.baseId,
- $nonEmptySchema = (it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all));
- out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';
- if ($nonEmptySchema) {
- var $wasComposite = it.compositeRule;
- it.compositeRule = $it.compositeRule = true;
- $it.schema = $schema;
- $it.schemaPath = $schemaPath;
- $it.errSchemaPath = $errSchemaPath;
- out += ' var ' + ($nextValid) + ' = false; 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) {
- out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';
- } else {
- out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
- }
- out += ' if (' + ($nextValid) + ') break; } ';
- it.compositeRule = $it.compositeRule = $wasComposite;
- out += ' ' + ($closingBraces) + ' if (!' + ($nextValid) + ') {';
- } else {
- out += ' if (' + ($data) + '.length == 0) {';
- }
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('contains') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should contain a valid item\' ';
- }
- 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 += ' } else { ';
- if ($nonEmptySchema) {
- out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';
- }
- if (it.opts.allErrors) {
- out += ' } ';
- }
- return out;
-}
diff --git a/deps/npm/node_modules/ajv/lib/dotjs/custom.js b/deps/npm/node_modules/ajv/lib/dotjs/custom.js
deleted file mode 100644
index f3e641e7017..00000000000
--- a/deps/npm/node_modules/ajv/lib/dotjs/custom.js
+++ /dev/null
@@ -1,228 +0,0 @@
-'use strict';
-module.exports = function generate_custom(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($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 $isData = it.opts.$data && $schema && $schema.$data,
- $schemaValue;
- if ($isData) {
- out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
- $schemaValue = 'schema' + $lvl;
- } else {
- $schemaValue = $schema;
- }
- var $rule = this,
- $definition = 'definition' + $lvl,
- $rDef = $rule.definition,
- $closingBraces = '';
- var $compile, $inline, $macro, $ruleValidate, $validateCode;
- if ($isData && $rDef.$data) {
- $validateCode = 'keywordValidate' + $lvl;
- var $validateSchema = $rDef.validateSchema;
- out += ' var ' + ($definition) + ' = RULES.custom[\'' + ($keyword) + '\'].definition; var ' + ($validateCode) + ' = ' + ($definition) + '.validate;';
- } else {
- $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it);
- if (!$ruleValidate) return;
- $schemaValue = 'validate.schema' + $schemaPath;
- $validateCode = $ruleValidate.code;
- $compile = $rDef.compile;
- $inline = $rDef.inline;
- $macro = $rDef.macro;
- }
- var $ruleErrs = $validateCode + '.errors',
- $i = 'i' + $lvl,
- $ruleErr = 'ruleErr' + $lvl,
- $asyncKeyword = $rDef.async;
- if ($asyncKeyword && !it.async) throw new Error('async keyword in sync schema');
- if (!($inline || $macro)) {
- out += '' + ($ruleErrs) + ' = null;';
- }
- out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';
- if ($isData && $rDef.$data) {
- $closingBraces += '}';
- out += ' if (' + ($schemaValue) + ' === undefined) { ' + ($valid) + ' = true; } else { ';
- if ($validateSchema) {
- $closingBraces += '}';
- out += ' ' + ($valid) + ' = ' + ($definition) + '.validateSchema(' + ($schemaValue) + '); if (' + ($valid) + ') { ';
- }
- }
- if ($inline) {
- if ($rDef.statements) {
- out += ' ' + ($ruleValidate.validate) + ' ';
- } else {
- out += ' ' + ($valid) + ' = ' + ($ruleValidate.validate) + '; ';
- }
- } else if ($macro) {
- var $it = it.util.copy(it);
- var $closingBraces = '';
- $it.level++;
- var $nextValid = 'valid' + $it.level;
- $it.schema = $ruleValidate.validate;
- $it.schemaPath = '';
- var $wasComposite = it.compositeRule;
- it.compositeRule = $it.compositeRule = true;
- var $code = it.validate($it).replace(/validate\.schema/g, $validateCode);
- it.compositeRule = $it.compositeRule = $wasComposite;
- out += ' ' + ($code);
- } else {
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = '';
- out += ' ' + ($validateCode) + '.call( ';
- if (it.opts.passContext) {
- out += 'this';
- } else {
- out += 'self';
- }
- if ($compile || $rDef.schema === false) {
- out += ' , ' + ($data) + ' ';
- } else {
- out += ' , ' + ($schemaValue) + ' , ' + ($data) + ' , validate.schema' + (it.schemaPath) + ' ';
- }
- out += ' , (dataPath || \'\')';
- if (it.errorPath != '""') {
- out += ' + ' + (it.errorPath);
- }
- var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',
- $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';
- out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ' , rootData ) ';
- var def_callRuleValidate = out;
- out = $$outStack.pop();
- if ($rDef.errors === false) {
- out += ' ' + ($valid) + ' = ';
- if ($asyncKeyword) {
- out += 'await ';
- }
- out += '' + (def_callRuleValidate) + '; ';
- } else {
- if ($asyncKeyword) {
- $ruleErrs = 'customErrors' + $lvl;
- out += ' var ' + ($ruleErrs) + ' = null; try { ' + ($valid) + ' = await ' + (def_callRuleValidate) + '; } catch (e) { ' + ($valid) + ' = false; if (e instanceof ValidationError) ' + ($ruleErrs) + ' = e.errors; else throw e; } ';
- } else {
- out += ' ' + ($ruleErrs) + ' = null; ' + ($valid) + ' = ' + (def_callRuleValidate) + '; ';
- }
- }
- }
- if ($rDef.modifying) {
- out += ' if (' + ($parentData) + ') ' + ($data) + ' = ' + ($parentData) + '[' + ($parentDataProperty) + '];';
- }
- out += '' + ($closingBraces);
- if ($rDef.valid) {
- if ($breakOnError) {
- out += ' if (true) { ';
- }
- } else {
- out += ' if ( ';
- if ($rDef.valid === undefined) {
- out += ' !';
- if ($macro) {
- out += '' + ($nextValid);
- } else {
- out += '' + ($valid);
- }
- } else {
- out += ' ' + (!$rDef.valid) + ' ';
- }
- out += ') { ';
- $errorKeyword = $rule.keyword;
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = '';
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ($errorKeyword || 'custom') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \'' + ($rule.keyword) + '\' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should pass "' + ($rule.keyword) + '" 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++; ';
- }
- var def_customError = out;
- out = $$outStack.pop();
- if ($inline) {
- if ($rDef.errors) {
- if ($rDef.errors != 'full') {
- out += ' for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \'\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = "' + ($errSchemaPath) + '"; } ';
- if (it.opts.verbose) {
- out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';
- }
- out += ' } ';
- }
- } else {
- if ($rDef.errors === false) {
- out += ' ' + (def_customError) + ' ';
- } else {
- out += ' if (' + ($errs) + ' == errors) { ' + (def_customError) + ' } else { for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \'\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = "' + ($errSchemaPath) + '"; } ';
- if (it.opts.verbose) {
- out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';
- }
- out += ' } } ';
- }
- }
- } else if ($macro) {
- out += ' var err = '; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ($errorKeyword || 'custom') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \'' + ($rule.keyword) + '\' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should pass "' + ($rule.keyword) + '" keyword validation\' ';
- }
- 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 (!it.compositeRule && $breakOnError) {
- /* istanbul ignore if */
- if (it.async) {
- out += ' throw new ValidationError(vErrors); ';
- } else {
- out += ' validate.errors = vErrors; return false; ';
- }
- }
- } else {
- if ($rDef.errors === false) {
- out += ' ' + (def_customError) + ' ';
- } else {
- out += ' if (Array.isArray(' + ($ruleErrs) + ')) { if (vErrors === null) vErrors = ' + ($ruleErrs) + '; else vErrors = vErrors.concat(' + ($ruleErrs) + '); errors = vErrors.length; for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \'\') + ' + (it.errorPath) + '; ' + ($ruleErr) + '.schemaPath = "' + ($errSchemaPath) + '"; ';
- if (it.opts.verbose) {
- out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';
- }
- out += ' } } else { ' + (def_customError) + ' } ';
- }
- }
- out += ' } ';
- if ($breakOnError) {
- out += ' else { ';
- }
- }
- return out;
-}
diff --git a/deps/npm/node_modules/ajv/lib/dotjs/dependencies.js b/deps/npm/node_modules/ajv/lib/dotjs/dependencies.js
deleted file mode 100644
index e4829497b07..00000000000
--- a/deps/npm/node_modules/ajv/lib/dotjs/dependencies.js
+++ /dev/null
@@ -1,168 +0,0 @@
-'use strict';
-module.exports = function generate_dependencies(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $data = 'data' + ($dataLvl || '');
- var $errs = 'errs__' + $lvl;
- var $it = it.util.copy(it);
- var $closingBraces = '';
- $it.level++;
- var $nextValid = 'valid' + $it.level;
- var $schemaDeps = {},
- $propertyDeps = {},
- $ownProperties = it.opts.ownProperties;
- for ($property in $schema) {
- if ($property == '__proto__') continue;
- var $sch = $schema[$property];
- var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps;
- $deps[$property] = $sch;
- }
- out += 'var ' + ($errs) + ' = errors;';
- var $currentErrorPath = it.errorPath;
- out += 'var missing' + ($lvl) + ';';
- for (var $property in $propertyDeps) {
- $deps = $propertyDeps[$property];
- if ($deps.length) {
- out += ' if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';
- if ($ownProperties) {
- out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($property)) + '\') ';
- }
- if ($breakOnError) {
- out += ' && ( ';
- var arr1 = $deps;
- if (arr1) {
- var $propertyKey, $i = -1,
- l1 = arr1.length - 1;
- while ($i < l1) {
- $propertyKey = arr1[$i += 1];
- if ($i) {
- out += ' || ';
- }
- var $prop = it.util.getProperty($propertyKey),
- $useData = $data + $prop;
- out += ' ( ( ' + ($useData) + ' === undefined ';
- if ($ownProperties) {
- out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') ';
- }
- out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';
- }
- }
- out += ')) { ';
- var $propertyPath = 'missing' + $lvl,
- $missingProperty = '\' + ' + $propertyPath + ' + \'';
- if (it.opts._errorDataPathProperty) {
- it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;
- }
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('dependencies') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \'' + (it.util.escapeQuotes($property)) + '\', missingProperty: \'' + ($missingProperty) + '\', depsCount: ' + ($deps.length) + ', deps: \'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(", "))) + '\' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should have ';
- if ($deps.length == 1) {
- out += 'property ' + (it.util.escapeQuotes($deps[0]));
- } else {
- out += 'properties ' + (it.util.escapeQuotes($deps.join(", ")));
- }
- out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\' ';
- }
- 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++; ';
- }
- } else {
- out += ' ) { ';
- var arr2 = $deps;
- if (arr2) {
- var $propertyKey, i2 = -1,
- l2 = arr2.length - 1;
- while (i2 < l2) {
- $propertyKey = arr2[i2 += 1];
- var $prop = it.util.getProperty($propertyKey),
- $missingProperty = it.util.escapeQuotes($propertyKey),
- $useData = $data + $prop;
- if (it.opts._errorDataPathProperty) {
- it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);
- }
- out += ' if ( ' + ($useData) + ' === undefined ';
- if ($ownProperties) {
- out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') ';
- }
- out += ') { var err = '; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('dependencies') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \'' + (it.util.escapeQuotes($property)) + '\', missingProperty: \'' + ($missingProperty) + '\', depsCount: ' + ($deps.length) + ', deps: \'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(", "))) + '\' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should have ';
- if ($deps.length == 1) {
- out += 'property ' + (it.util.escapeQuotes($deps[0]));
- } else {
- out += 'properties ' + (it.util.escapeQuotes($deps.join(", ")));
- }
- out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\' ';
- }
- 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++; } ';
- }
- }
- }
- out += ' } ';
- if ($breakOnError) {
- $closingBraces += '}';
- out += ' else { ';
- }
- }
- }
- it.errorPath = $currentErrorPath;
- var $currentBaseId = $it.baseId;
- for (var $property in $schemaDeps) {
- var $sch = $schemaDeps[$property];
- if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {
- out += ' ' + ($nextValid) + ' = true; if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';
- if ($ownProperties) {
- out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($property)) + '\') ';
- }
- out += ') { ';
- $it.schema = $sch;
- $it.schemaPath = $schemaPath + it.util.getProperty($property);
- $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property);
- out += ' ' + (it.validate($it)) + ' ';
- $it.baseId = $currentBaseId;
- out += ' } ';
- if ($breakOnError) {
- out += ' if (' + ($nextValid) + ') { ';
- $closingBraces += '}';
- }
- }
- }
- if ($breakOnError) {
- out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';
- }
- return out;
-}
diff --git a/deps/npm/node_modules/ajv/lib/dotjs/enum.js b/deps/npm/node_modules/ajv/lib/dotjs/enum.js
deleted file mode 100644
index 90580b9ff79..00000000000
--- a/deps/npm/node_modules/ajv/lib/dotjs/enum.js
+++ /dev/null
@@ -1,66 +0,0 @@
-'use strict';
-module.exports = function generate_enum(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $data = 'data' + ($dataLvl || '');
- var $valid = 'valid' + $lvl;
- var $isData = it.opts.$data && $schema && $schema.$data,
- $schemaValue;
- if ($isData) {
- out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
- $schemaValue = 'schema' + $lvl;
- } else {
- $schemaValue = $schema;
- }
- var $i = 'i' + $lvl,
- $vSchema = 'schema' + $lvl;
- if (!$isData) {
- 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) + '<' + ($vSchema) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }';
- if ($isData) {
- out += ' } ';
- }
- out += ' if (!' + ($valid) + ') { ';
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('enum') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValues: schema' + ($lvl) + ' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should be equal to one of the allowed values\' ';
- }
- 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) {
- out += ' else { ';
- }
- return out;
-}
diff --git a/deps/npm/node_modules/ajv/lib/dotjs/format.js b/deps/npm/node_modules/ajv/lib/dotjs/format.js
deleted file mode 100644
index cd9a5693e70..00000000000
--- a/deps/npm/node_modules/ajv/lib/dotjs/format.js
+++ /dev/null
@@ -1,150 +0,0 @@
-'use strict';
-module.exports = function generate_format(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $data = 'data' + ($dataLvl || '');
- if (it.opts.format === false) {
- if ($breakOnError) {
- out += ' if (true) { ';
- }
- return out;
- }
- var $isData = it.opts.$data && $schema && $schema.$data,
- $schemaValue;
- if ($isData) {
- out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
- $schemaValue = 'schema' + $lvl;
- } else {
- $schemaValue = $schema;
- }
- var $unknownFormats = it.opts.unknownFormats,
- $allowUnknown = Array.isArray($unknownFormats);
- if ($isData) {
- var $format = 'format' + $lvl,
- $isObject = 'isObject' + $lvl,
- $formatType = 'formatType' + $lvl;
- out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var ' + ($isObject) + ' = typeof ' + ($format) + ' == \'object\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; var ' + ($formatType) + ' = ' + ($isObject) + ' && ' + ($format) + '.type || \'string\'; if (' + ($isObject) + ') { ';
- 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 != 'ignore') {
- out += ' (' + ($schemaValue) + ' && !' + ($format) + ' ';
- if ($allowUnknown) {
- out += ' && self._opts.unknownFormats.indexOf(' + ($schemaValue) + ') == -1 ';
- }
- out += ') || ';
- }
- out += ' (' + ($format) + ' && ' + ($formatType) + ' == \'' + ($ruleType) + '\' && !(typeof ' + ($format) + ' == \'function\' ? ';
- if (it.async) {
- out += ' (async' + ($lvl) + ' ? await ' + ($format) + '(' + ($data) + ') : ' + ($format) + '(' + ($data) + ')) ';
- } else {
- out += ' ' + ($format) + '(' + ($data) + ') ';
- }
- out += ' : ' + ($format) + '.test(' + ($data) + '))))) {';
- } else {
- var $format = it.formats[$schema];
- if (!$format) {
- if ($unknownFormats == 'ignore') {
- it.logger.warn('unknown format "' + $schema + '" ignored in schema at path "' + it.errSchemaPath + '"');
- if ($breakOnError) {
- out += ' if (true) { ';
- }
- return out;
- } else if ($allowUnknown && $unknownFormats.indexOf($schema) >= 0) {
- if ($breakOnError) {
- out += ' if (true) { ';
- }
- return out;
- } else {
- throw new Error('unknown format "' + $schema + '" is used in schema at path "' + it.errSchemaPath + '"');
- }
- }
- var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate;
- var $formatType = $isObject && $format.type || 'string';
- if ($isObject) {
- var $async = $format.async === true;
- $format = $format.validate;
- }
- if ($formatType != $ruleType) {
- if ($breakOnError) {
- out += ' if (true) { ';
- }
- return out;
- }
- if ($async) {
- if (!it.async) throw new Error('async format in sync schema');
- var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate';
- out += ' if (!(await ' + ($formatRef) + '(' + ($data) + '))) { ';
- } else {
- out += ' if (! ';
- var $formatRef = 'formats' + it.util.getProperty($schema);
- if ($isObject) $formatRef += '.validate';
- if (typeof $format == 'function') {
- out += ' ' + ($formatRef) + '(' + ($data) + ') ';
- } else {
- out += ' ' + ($formatRef) + '.test(' + ($data) + ') ';
- }
- out += ') { ';
- }
- }
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('format') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { format: ';
- if ($isData) {
- out += '' + ($schemaValue);
- } else {
- out += '' + (it.util.toQuotedString($schema));
- }
- out += ' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should match format "';
- 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 += ' } ';
- if ($breakOnError) {
- out += ' else { ';
- }
- return out;
-}
diff --git a/deps/npm/node_modules/ajv/lib/dotjs/if.js b/deps/npm/node_modules/ajv/lib/dotjs/if.js
deleted file mode 100644
index 94d27ad8538..00000000000
--- a/deps/npm/node_modules/ajv/lib/dotjs/if.js
+++ /dev/null
@@ -1,103 +0,0 @@
-'use strict';
-module.exports = function generate_if(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $data = 'data' + ($dataLvl || '');
- var $valid = 'valid' + $lvl;
- var $errs = 'errs__' + $lvl;
- var $it = it.util.copy(it);
- $it.level++;
- var $nextValid = 'valid' + $it.level;
- var $thenSch = it.schema['then'],
- $elseSch = it.schema['else'],
- $thenPresent = $thenSch !== undefined && (it.opts.strictKeywords ? (typeof $thenSch == 'object' && Object.keys($thenSch).length > 0) || $thenSch === false : it.util.schemaHasRules($thenSch, it.RULES.all)),
- $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? (typeof $elseSch == 'object' && Object.keys($elseSch).length > 0) || $elseSch === false : it.util.schemaHasRules($elseSch, it.RULES.all)),
- $currentBaseId = $it.baseId;
- if ($thenPresent || $elsePresent) {
- var $ifClause;
- $it.createErrors = false;
- $it.schema = $schema;
- $it.schemaPath = $schemaPath;
- $it.errSchemaPath = $errSchemaPath;
- out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = true; ';
- var $wasComposite = it.compositeRule;
- it.compositeRule = $it.compositeRule = true;
- out += ' ' + (it.validate($it)) + ' ';
- $it.baseId = $currentBaseId;
- $it.createErrors = true;
- out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';
- it.compositeRule = $it.compositeRule = $wasComposite;
- if ($thenPresent) {
- out += ' if (' + ($nextValid) + ') { ';
- $it.schema = it.schema['then'];
- $it.schemaPath = it.schemaPath + '.then';
- $it.errSchemaPath = it.errSchemaPath + '/then';
- out += ' ' + (it.validate($it)) + ' ';
- $it.baseId = $currentBaseId;
- out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';
- if ($thenPresent && $elsePresent) {
- $ifClause = 'ifClause' + $lvl;
- out += ' var ' + ($ifClause) + ' = \'then\'; ';
- } else {
- $ifClause = '\'then\'';
- }
- out += ' } ';
- if ($elsePresent) {
- out += ' else { ';
- }
- } else {
- out += ' if (!' + ($nextValid) + ') { ';
- }
- if ($elsePresent) {
- $it.schema = it.schema['else'];
- $it.schemaPath = it.schemaPath + '.else';
- $it.errSchemaPath = it.errSchemaPath + '/else';
- out += ' ' + (it.validate($it)) + ' ';
- $it.baseId = $currentBaseId;
- out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';
- if ($thenPresent && $elsePresent) {
- $ifClause = 'ifClause' + $lvl;
- out += ' var ' + ($ifClause) + ' = \'else\'; ';
- } else {
- $ifClause = '\'else\'';
- }
- out += ' } ';
- }
- out += ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('if') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { failingKeyword: ' + ($ifClause) + ' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should match "\' + ' + ($ifClause) + ' + \'" schema\' ';
- }
- 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 (!it.compositeRule && $breakOnError) {
- /* istanbul ignore if */
- if (it.async) {
- out += ' throw new ValidationError(vErrors); ';
- } else {
- out += ' validate.errors = vErrors; return false; ';
- }
- }
- out += ' } ';
- if ($breakOnError) {
- out += ' else { ';
- }
- } else {
- if ($breakOnError) {
- out += ' if (true) { ';
- }
- }
- return out;
-}
diff --git a/deps/npm/node_modules/ajv/lib/dotjs/index.js b/deps/npm/node_modules/ajv/lib/dotjs/index.js
deleted file mode 100644
index 2fb1b00ef69..00000000000
--- a/deps/npm/node_modules/ajv/lib/dotjs/index.js
+++ /dev/null
@@ -1,33 +0,0 @@
-'use strict';
-
-//all requires must be explicit because browserify won't work with dynamic requires
-module.exports = {
- '$ref': require('./ref'),
- allOf: require('./allOf'),
- anyOf: require('./anyOf'),
- '$comment': require('./comment'),
- const: require('./const'),
- contains: require('./contains'),
- dependencies: require('./dependencies'),
- 'enum': require('./enum'),
- format: require('./format'),
- 'if': require('./if'),
- items: require('./items'),
- maximum: require('./_limit'),
- minimum: require('./_limit'),
- maxItems: require('./_limitItems'),
- minItems: require('./_limitItems'),
- maxLength: require('./_limitLength'),
- minLength: require('./_limitLength'),
- maxProperties: require('./_limitProperties'),
- minProperties: require('./_limitProperties'),
- multipleOf: require('./multipleOf'),
- not: require('./not'),
- oneOf: require('./oneOf'),
- pattern: require('./pattern'),
- properties: require('./properties'),
- propertyNames: require('./propertyNames'),
- required: require('./required'),
- uniqueItems: require('./uniqueItems'),
- validate: require('./validate')
-};
diff --git a/deps/npm/node_modules/ajv/lib/dotjs/items.js b/deps/npm/node_modules/ajv/lib/dotjs/items.js
deleted file mode 100644
index bee5d67da24..00000000000
--- a/deps/npm/node_modules/ajv/lib/dotjs/items.js
+++ /dev/null
@@ -1,140 +0,0 @@
-'use strict';
-module.exports = function generate_items(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- 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 $idx = 'i' + $lvl,
- $dataNxt = $it.dataLevel = it.dataLevel + 1,
- $nextData = 'data' + $dataNxt,
- $currentBaseId = it.baseId;
- out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';
- if (Array.isArray($schema)) {
- var $additionalItems = it.schema.additionalItems;
- if ($additionalItems === false) {
- out += ' ' + ($valid) + ' = ' + ($data) + '.length <= ' + ($schema.length) + '; ';
- var $currErrSchemaPath = $errSchemaPath;
- $errSchemaPath = it.errSchemaPath + '/additionalItems';
- out += ' if (!' + ($valid) + ') { ';
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('additionalItems') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schema.length) + ' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should NOT have more than ' + ($schema.length) + ' items\' ';
- }
- if (it.opts.verbose) {
- out += ' , schema: false , 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 += ' } ';
- $errSchemaPath = $currErrSchemaPath;
- if ($breakOnError) {
- $closingBraces += '}';
- out += ' else { ';
- }
- }
- var arr1 = $schema;
- if (arr1) {
- var $sch, $i = -1,
- l1 = arr1.length - 1;
- while ($i < l1) {
- $sch = arr1[$i += 1];
- if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {
- out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { ';
- var $passData = $data + '[' + $i + ']';
- $it.schema = $sch;
- $it.schemaPath = $schemaPath + '[' + $i + ']';
- $it.errSchemaPath = $errSchemaPath + '/' + $i;
- $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true);
- $it.dataPathArr[$dataNxt] = $i;
- var $code = it.validate($it);
- $it.baseId = $currentBaseId;
- if (it.util.varOccurences($code, $nextData) < 2) {
- out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';
- } else {
- out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
- }
- out += ' } ';
- if ($breakOnError) {
- out += ' if (' + ($nextValid) + ') { ';
- $closingBraces += '}';
- }
- }
- }
- }
- if (typeof $additionalItems == 'object' && (it.opts.strictKeywords ? (typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0) || $additionalItems === false : it.util.schemaHasRules($additionalItems, it.RULES.all))) {
- $it.schema = $additionalItems;
- $it.schemaPath = it.schemaPath + '.additionalItems';
- $it.errSchemaPath = it.errSchemaPath + '/additionalItems';
- 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) {
- out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';
- } else {
- out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
- }
- if ($breakOnError) {
- out += ' if (!' + ($nextValid) + ') break; ';
- }
- out += ' } } ';
- if ($breakOnError) {
- out += ' if (' + ($nextValid) + ') { ';
- $closingBraces += '}';
- }
- }
- } else if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {
- $it.schema = $schema;
- $it.schemaPath = $schemaPath;
- $it.errSchemaPath = $errSchemaPath;
- 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) {
- out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';
- } else {
- out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
- }
- if ($breakOnError) {
- out += ' if (!' + ($nextValid) + ') break; ';
- }
- out += ' }';
- }
- if ($breakOnError) {
- out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';
- }
- return out;
-}
diff --git a/deps/npm/node_modules/ajv/lib/dotjs/multipleOf.js b/deps/npm/node_modules/ajv/lib/dotjs/multipleOf.js
deleted file mode 100644
index 9d6401b8f72..00000000000
--- a/deps/npm/node_modules/ajv/lib/dotjs/multipleOf.js
+++ /dev/null
@@ -1,80 +0,0 @@
-'use strict';
-module.exports = function generate_multipleOf(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $data = 'data' + ($dataLvl || '');
- var $isData = it.opts.$data && $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 (!($isData || typeof $schema == 'number')) {
- throw new Error($keyword + ' must be number');
- }
- out += 'var division' + ($lvl) + ';if (';
- if ($isData) {
- out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \'number\' || ';
- }
- out += ' (division' + ($lvl) + ' = ' + ($data) + ' / ' + ($schemaValue) + ', ';
- if (it.opts.multipleOfPrecision) {
- out += ' Math.abs(Math.round(division' + ($lvl) + ') - division' + ($lvl) + ') > 1e-' + (it.opts.multipleOfPrecision) + ' ';
- } else {
- out += ' division' + ($lvl) + ' !== parseInt(division' + ($lvl) + ') ';
- }
- out += ' ) ';
- if ($isData) {
- out += ' ) ';
- }
- out += ' ) { ';
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('multipleOf') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { multipleOf: ' + ($schemaValue) + ' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should be multiple of ';
- if ($isData) {
- out += '\' + ' + ($schemaValue);
- } else {
- out += '' + ($schemaValue) + '\'';
- }
- }
- if (it.opts.verbose) {
- out += ' , schema: ';
- if ($isData) {
- out += 'validate.schema' + ($schemaPath);
- } else {
- out += '' + ($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 += '} ';
- if ($breakOnError) {
- out += ' else { ';
- }
- return out;
-}
diff --git a/deps/npm/node_modules/ajv/lib/dotjs/not.js b/deps/npm/node_modules/ajv/lib/dotjs/not.js
deleted file mode 100644
index f50c93785b7..00000000000
--- a/deps/npm/node_modules/ajv/lib/dotjs/not.js
+++ /dev/null
@@ -1,84 +0,0 @@
-'use strict';
-module.exports = function generate_not(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $data = 'data' + ($dataLvl || '');
- var $errs = 'errs__' + $lvl;
- var $it = it.util.copy(it);
- $it.level++;
- var $nextValid = 'valid' + $it.level;
- if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {
- $it.schema = $schema;
- $it.schemaPath = $schemaPath;
- $it.errSchemaPath = $errSchemaPath;
- out += ' var ' + ($errs) + ' = errors; ';
- var $wasComposite = it.compositeRule;
- it.compositeRule = $it.compositeRule = true;
- $it.createErrors = false;
- var $allErrorsOption;
- if ($it.opts.allErrors) {
- $allErrorsOption = $it.opts.allErrors;
- $it.opts.allErrors = false;
- }
- out += ' ' + (it.validate($it)) + ' ';
- $it.createErrors = true;
- if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;
- it.compositeRule = $it.compositeRule = $wasComposite;
- out += ' if (' + ($nextValid) + ') { ';
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('not') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should NOT be valid\' ';
- }
- 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 += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';
- if (it.opts.allErrors) {
- out += ' } ';
- }
- } else {
- out += ' var err = '; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('not') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should NOT be valid\' ';
- }
- 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) {
- out += ' if (false) { ';
- }
- }
- return out;
-}
diff --git a/deps/npm/node_modules/ajv/lib/dotjs/oneOf.js b/deps/npm/node_modules/ajv/lib/dotjs/oneOf.js
deleted file mode 100644
index dfe2fd550ef..00000000000
--- a/deps/npm/node_modules/ajv/lib/dotjs/oneOf.js
+++ /dev/null
@@ -1,73 +0,0 @@
-'use strict';
-module.exports = function generate_oneOf(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- 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 $currentBaseId = $it.baseId,
- $prevValid = 'prevValid' + $lvl,
- $passingSchemas = 'passingSchemas' + $lvl;
- out += 'var ' + ($errs) + ' = errors , ' + ($prevValid) + ' = false , ' + ($valid) + ' = false , ' + ($passingSchemas) + ' = null; ';
- var $wasComposite = it.compositeRule;
- it.compositeRule = $it.compositeRule = true;
- var arr1 = $schema;
- if (arr1) {
- var $sch, $i = -1,
- l1 = arr1.length - 1;
- while ($i < l1) {
- $sch = arr1[$i += 1];
- if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {
- $it.schema = $sch;
- $it.schemaPath = $schemaPath + '[' + $i + ']';
- $it.errSchemaPath = $errSchemaPath + '/' + $i;
- out += ' ' + (it.validate($it)) + ' ';
- $it.baseId = $currentBaseId;
- } else {
- out += ' var ' + ($nextValid) + ' = true; ';
- }
- if ($i) {
- out += ' if (' + ($nextValid) + ' && ' + ($prevValid) + ') { ' + ($valid) + ' = false; ' + ($passingSchemas) + ' = [' + ($passingSchemas) + ', ' + ($i) + ']; } else { ';
- $closingBraces += '}';
- }
- out += ' if (' + ($nextValid) + ') { ' + ($valid) + ' = ' + ($prevValid) + ' = true; ' + ($passingSchemas) + ' = ' + ($i) + '; }';
- }
- }
- it.compositeRule = $it.compositeRule = $wasComposite;
- out += '' + ($closingBraces) + 'if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('oneOf') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { passingSchemas: ' + ($passingSchemas) + ' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should match exactly one schema in oneOf\' ';
- }
- 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 (!it.compositeRule && $breakOnError) {
- /* istanbul ignore if */
- if (it.async) {
- out += ' throw new ValidationError(vErrors); ';
- } else {
- out += ' validate.errors = vErrors; return false; ';
- }
- }
- out += '} else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; }';
- if (it.opts.allErrors) {
- out += ' } ';
- }
- return out;
-}
diff --git a/deps/npm/node_modules/ajv/lib/dotjs/pattern.js b/deps/npm/node_modules/ajv/lib/dotjs/pattern.js
deleted file mode 100644
index 1d74d6b04be..00000000000
--- a/deps/npm/node_modules/ajv/lib/dotjs/pattern.js
+++ /dev/null
@@ -1,75 +0,0 @@
-'use strict';
-module.exports = function generate_pattern(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $data = 'data' + ($dataLvl || '');
- var $isData = it.opts.$data && $schema && $schema.$data,
- $schemaValue;
- if ($isData) {
- out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
- $schemaValue = 'schema' + $lvl;
- } else {
- $schemaValue = $schema;
- }
- var $regexp = $isData ? '(new RegExp(' + $schemaValue + '))' : it.usePattern($schema);
- out += 'if ( ';
- if ($isData) {
- out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'string\') || ';
- }
- out += ' !' + ($regexp) + '.test(' + ($data) + ') ) { ';
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('pattern') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { pattern: ';
- if ($isData) {
- out += '' + ($schemaValue);
- } else {
- out += '' + (it.util.toQuotedString($schema));
- }
- out += ' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should match pattern "';
- 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 += '} ';
- if ($breakOnError) {
- out += ' else { ';
- }
- return out;
-}
diff --git a/deps/npm/node_modules/ajv/lib/dotjs/properties.js b/deps/npm/node_modules/ajv/lib/dotjs/properties.js
deleted file mode 100644
index bc5ee554780..00000000000
--- a/deps/npm/node_modules/ajv/lib/dotjs/properties.js
+++ /dev/null
@@ -1,335 +0,0 @@
-'use strict';
-module.exports = function generate_properties(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $data = 'data' + ($dataLvl || '');
- var $errs = 'errs__' + $lvl;
- var $it = it.util.copy(it);
- var $closingBraces = '';
- $it.level++;
- var $nextValid = 'valid' + $it.level;
- var $key = 'key' + $lvl,
- $idx = 'idx' + $lvl,
- $dataNxt = $it.dataLevel = it.dataLevel + 1,
- $nextData = 'data' + $dataNxt,
- $dataProperties = 'dataProperties' + $lvl;
- var $schemaKeys = Object.keys($schema || {}).filter(notProto),
- $pProperties = it.schema.patternProperties || {},
- $pPropertyKeys = Object.keys($pProperties).filter(notProto),
- $aProperties = it.schema.additionalProperties,
- $someProperties = $schemaKeys.length || $pPropertyKeys.length,
- $noAdditional = $aProperties === false,
- $additionalIsSchema = typeof $aProperties == 'object' && Object.keys($aProperties).length,
- $removeAdditional = it.opts.removeAdditional,
- $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional,
- $ownProperties = it.opts.ownProperties,
- $currentBaseId = it.baseId;
- var $required = it.schema.required;
- if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) {
- var $requiredHash = it.util.toHash($required);
- }
-
- function notProto(p) {
- return p !== '__proto__';
- }
- out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;';
- if ($ownProperties) {
- out += ' var ' + ($dataProperties) + ' = undefined;';
- }
- if ($checkAdditional) {
- if ($ownProperties) {
- out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';
- } else {
- out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';
- }
- if ($someProperties) {
- out += ' var isAdditional' + ($lvl) + ' = !(false ';
- if ($schemaKeys.length) {
- if ($schemaKeys.length > 8) {
- out += ' || validate.schema' + ($schemaPath) + '.hasOwnProperty(' + ($key) + ') ';
- } else {
- var arr1 = $schemaKeys;
- if (arr1) {
- var $propertyKey, i1 = -1,
- l1 = arr1.length - 1;
- while (i1 < l1) {
- $propertyKey = arr1[i1 += 1];
- out += ' || ' + ($key) + ' == ' + (it.util.toQuotedString($propertyKey)) + ' ';
- }
- }
- }
- }
- if ($pPropertyKeys.length) {
- var arr2 = $pPropertyKeys;
- if (arr2) {
- var $pProperty, $i = -1,
- l2 = arr2.length - 1;
- while ($i < l2) {
- $pProperty = arr2[$i += 1];
- out += ' || ' + (it.usePattern($pProperty)) + '.test(' + ($key) + ') ';
- }
- }
- }
- out += ' ); if (isAdditional' + ($lvl) + ') { ';
- }
- if ($removeAdditional == 'all') {
- out += ' delete ' + ($data) + '[' + ($key) + ']; ';
- } else {
- var $currentErrorPath = it.errorPath;
- var $additionalProperty = '\' + ' + $key + ' + \'';
- if (it.opts._errorDataPathProperty) {
- it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
- }
- if ($noAdditional) {
- if ($removeAdditional) {
- out += ' delete ' + ($data) + '[' + ($key) + ']; ';
- } else {
- out += ' ' + ($nextValid) + ' = false; ';
- var $currErrSchemaPath = $errSchemaPath;
- $errSchemaPath = it.errSchemaPath + '/additionalProperties';
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('additionalProperties') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { additionalProperty: \'' + ($additionalProperty) + '\' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'';
- if (it.opts._errorDataPathProperty) {
- out += 'is an invalid additional property';
- } else {
- out += 'should NOT have additional properties';
- }
- out += '\' ';
- }
- if (it.opts.verbose) {
- out += ' , schema: false , 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++; ';
- }
- $errSchemaPath = $currErrSchemaPath;
- if ($breakOnError) {
- out += ' break; ';
- }
- }
- } else if ($additionalIsSchema) {
- if ($removeAdditional == 'failing') {
- out += ' var ' + ($errs) + ' = errors; ';
- var $wasComposite = it.compositeRule;
- it.compositeRule = $it.compositeRule = true;
- $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, 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) {
- out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';
- } else {
- out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
- }
- 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, 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) {
- out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';
- } else {
- out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
- }
- if ($breakOnError) {
- out += ' if (!' + ($nextValid) + ') break; ';
- }
- }
- }
- it.errorPath = $currentErrorPath;
- }
- if ($someProperties) {
- out += ' } ';
- }
- out += ' } ';
- if ($breakOnError) {
- out += ' if (' + ($nextValid) + ') { ';
- $closingBraces += '}';
- }
- }
- var $useDefaults = it.opts.useDefaults && !it.compositeRule;
- if ($schemaKeys.length) {
- var arr3 = $schemaKeys;
- if (arr3) {
- var $propertyKey, i3 = -1,
- l3 = arr3.length - 1;
- while (i3 < l3) {
- $propertyKey = arr3[i3 += 1];
- var $sch = $schema[$propertyKey];
- if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {
- var $prop = it.util.getProperty($propertyKey),
- $passData = $data + $prop,
- $hasDefault = $useDefaults && $sch.default !== undefined;
- $it.schema = $sch;
- $it.schemaPath = $schemaPath + $prop;
- $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey);
- $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers);
- $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey);
- var $code = it.validate($it);
- $it.baseId = $currentBaseId;
- if (it.util.varOccurences($code, $nextData) < 2) {
- $code = it.util.varReplace($code, $nextData, $passData);
- var $useData = $passData;
- } else {
- var $useData = $nextData;
- out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ';
- }
- if ($hasDefault) {
- out += ' ' + ($code) + ' ';
- } else {
- if ($requiredHash && $requiredHash[$propertyKey]) {
- out += ' if ( ' + ($useData) + ' === undefined ';
- if ($ownProperties) {
- out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') ';
- }
- out += ') { ' + ($nextValid) + ' = false; ';
- var $currentErrorPath = it.errorPath,
- $currErrSchemaPath = $errSchemaPath,
- $missingProperty = it.util.escapeQuotes($propertyKey);
- if (it.opts._errorDataPathProperty) {
- it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);
- }
- $errSchemaPath = it.errSchemaPath + '/required';
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'';
- if (it.opts._errorDataPathProperty) {
- out += 'is a required property';
- } else {
- out += 'should have required property \\\'' + ($missingProperty) + '\\\'';
- }
- out += '\' ';
- }
- 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++; ';
- }
- $errSchemaPath = $currErrSchemaPath;
- it.errorPath = $currentErrorPath;
- out += ' } else { ';
- } else {
- if ($breakOnError) {
- out += ' if ( ' + ($useData) + ' === undefined ';
- if ($ownProperties) {
- out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') ';
- }
- out += ') { ' + ($nextValid) + ' = true; } else { ';
- } else {
- out += ' if (' + ($useData) + ' !== undefined ';
- if ($ownProperties) {
- out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') ';
- }
- out += ' ) { ';
- }
- }
- out += ' ' + ($code) + ' } ';
- }
- }
- if ($breakOnError) {
- out += ' if (' + ($nextValid) + ') { ';
- $closingBraces += '}';
- }
- }
- }
- }
- if ($pPropertyKeys.length) {
- var arr4 = $pPropertyKeys;
- if (arr4) {
- var $pProperty, i4 = -1,
- l4 = arr4.length - 1;
- while (i4 < l4) {
- $pProperty = arr4[i4 += 1];
- var $sch = $pProperties[$pProperty];
- if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {
- $it.schema = $sch;
- $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty);
- $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty);
- if ($ownProperties) {
- out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';
- } else {
- out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';
- }
- out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { ';
- $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) {
- out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';
- } else {
- out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
- }
- if ($breakOnError) {
- out += ' if (!' + ($nextValid) + ') break; ';
- }
- out += ' } ';
- if ($breakOnError) {
- out += ' else ' + ($nextValid) + ' = true; ';
- }
- out += ' } ';
- if ($breakOnError) {
- out += ' if (' + ($nextValid) + ') { ';
- $closingBraces += '}';
- }
- }
- }
- }
- }
- if ($breakOnError) {
- out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';
- }
- return out;
-}
diff --git a/deps/npm/node_modules/ajv/lib/dotjs/propertyNames.js b/deps/npm/node_modules/ajv/lib/dotjs/propertyNames.js
deleted file mode 100644
index 2a54a08f45e..00000000000
--- a/deps/npm/node_modules/ajv/lib/dotjs/propertyNames.js
+++ /dev/null
@@ -1,81 +0,0 @@
-'use strict';
-module.exports = function generate_propertyNames(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $data = 'data' + ($dataLvl || '');
- var $errs = 'errs__' + $lvl;
- var $it = it.util.copy(it);
- var $closingBraces = '';
- $it.level++;
- var $nextValid = 'valid' + $it.level;
- out += 'var ' + ($errs) + ' = errors;';
- if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {
- $it.schema = $schema;
- $it.schemaPath = $schemaPath;
- $it.errSchemaPath = $errSchemaPath;
- var $key = 'key' + $lvl,
- $idx = 'idx' + $lvl,
- $i = 'i' + $lvl,
- $invalidName = '\' + ' + $key + ' + \'',
- $dataNxt = $it.dataLevel = it.dataLevel + 1,
- $nextData = 'data' + $dataNxt,
- $dataProperties = 'dataProperties' + $lvl,
- $ownProperties = it.opts.ownProperties,
- $currentBaseId = it.baseId;
- if ($ownProperties) {
- out += ' var ' + ($dataProperties) + ' = undefined; ';
- }
- if ($ownProperties) {
- out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';
- } else {
- out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';
- }
- out += ' var startErrs' + ($lvl) + ' = errors; ';
- var $passData = $key;
- var $wasComposite = it.compositeRule;
- it.compositeRule = $it.compositeRule = true;
- var $code = it.validate($it);
- $it.baseId = $currentBaseId;
- if (it.util.varOccurences($code, $nextData) < 2) {
- out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';
- } else {
- out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
- }
- it.compositeRule = $it.compositeRule = $wasComposite;
- out += ' if (!' + ($nextValid) + ') { for (var ' + ($i) + '=startErrs' + ($lvl) + '; ' + ($i) + '<errors; ' + ($i) + '++) { vErrors[' + ($i) + '].propertyName = ' + ($key) + '; } var err = '; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('propertyNames') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { propertyName: \'' + ($invalidName) + '\' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'property name \\\'' + ($invalidName) + '\\\' is invalid\' ';
- }
- 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 (!it.compositeRule && $breakOnError) {
- /* istanbul ignore if */
- if (it.async) {
- out += ' throw new ValidationError(vErrors); ';
- } else {
- out += ' validate.errors = vErrors; return false; ';
- }
- }
- if ($breakOnError) {
- out += ' break; ';
- }
- out += ' } }';
- }
- if ($breakOnError) {
- out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';
- }
- return out;
-}
diff --git a/deps/npm/node_modules/ajv/lib/dotjs/ref.js b/deps/npm/node_modules/ajv/lib/dotjs/ref.js
deleted file mode 100644
index 8042a478825..00000000000
--- a/deps/npm/node_modules/ajv/lib/dotjs/ref.js
+++ /dev/null
@@ -1,124 +0,0 @@
-'use strict';
-module.exports = function generate_ref(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $data = 'data' + ($dataLvl || '');
- var $valid = 'valid' + $lvl;
- var $async, $refCode;
- if ($schema == '#' || $schema == '#/') {
- if (it.isRoot) {
- $async = it.async;
- $refCode = 'validate';
- } else {
- $async = it.root.schema.$async === true;
- $refCode = 'root.refVal[0]';
- }
- } else {
- var $refVal = it.resolveRef(it.baseId, $schema, it.isRoot);
- if ($refVal === undefined) {
- var $message = it.MissingRefError.message(it.baseId, $schema);
- if (it.opts.missingRefs == 'fail') {
- it.logger.error($message);
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('$ref') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { ref: \'' + (it.util.escapeQuotes($schema)) + '\' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'can\\\'t resolve reference ' + (it.util.escapeQuotes($schema)) + '\' ';
- }
- if (it.opts.verbose) {
- out += ' , schema: ' + (it.util.toQuotedString($schema)) + ' , 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++; ';
- }
- if ($breakOnError) {
- out += ' if (false) { ';
- }
- } else if (it.opts.missingRefs == 'ignore') {
- it.logger.warn($message);
- if ($breakOnError) {
- out += ' if (true) { ';
- }
- } else {
- throw new it.MissingRefError(it.baseId, $schema, $message);
- }
- } 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 (' + ($nextValid) + ') { ';
- }
- } else {
- $async = $refVal.$async === true || (it.async && $refVal.$async !== false);
- $refCode = $refVal.code;
- }
- }
- if ($refCode) {
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = '';
- if (it.opts.passContext) {
- out += ' ' + ($refCode) + '.call(this, ';
- } else {
- out += ' ' + ($refCode) + '( ';
- }
- out += ' ' + ($data) + ', (dataPath || \'\')';
- if (it.errorPath != '""') {
- out += ' + ' + (it.errorPath);
- }
- var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',
- $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';
- out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ', rootData) ';
- var __callValidate = out;
- out = $$outStack.pop();
- if ($async) {
- if (!it.async) throw new Error('async schema referenced by sync schema');
- if ($breakOnError) {
- out += ' var ' + ($valid) + '; ';
- }
- out += ' try { await ' + (__callValidate) + '; ';
- if ($breakOnError) {
- out += ' ' + ($valid) + ' = true; ';
- }
- out += ' } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ';
- if ($breakOnError) {
- out += ' ' + ($valid) + ' = false; ';
- }
- out += ' } ';
- if ($breakOnError) {
- out += ' if (' + ($valid) + ') { ';
- }
- } else {
- out += ' if (!' + (__callValidate) + ') { if (vErrors === null) vErrors = ' + ($refCode) + '.errors; else vErrors = vErrors.concat(' + ($refCode) + '.errors); errors = vErrors.length; } ';
- if ($breakOnError) {
- out += ' else { ';
- }
- }
- }
- return out;
-}
diff --git a/deps/npm/node_modules/ajv/lib/dotjs/required.js b/deps/npm/node_modules/ajv/lib/dotjs/required.js
deleted file mode 100644
index 14873eee3d5..00000000000
--- a/deps/npm/node_modules/ajv/lib/dotjs/required.js
+++ /dev/null
@@ -1,270 +0,0 @@
-'use strict';
-module.exports = function generate_required(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $data = 'data' + ($dataLvl || '');
- var $valid = 'valid' + $lvl;
- var $isData = it.opts.$data && $schema && $schema.$data,
- $schemaValue;
- if ($isData) {
- out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
- $schemaValue = 'schema' + $lvl;
- } 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 = [];
- var arr1 = $schema;
- if (arr1) {
- var $property, i1 = -1,
- l1 = arr1.length - 1;
- while (i1 < l1) {
- $property = arr1[i1 += 1];
- var $propertySch = it.schema.properties[$property];
- if (!($propertySch && (it.opts.strictKeywords ? (typeof $propertySch == 'object' && Object.keys($propertySch).length > 0) || $propertySch === false : it.util.schemaHasRules($propertySch, it.RULES.all)))) {
- $required[$required.length] = $property;
- }
- }
- }
- } else {
- var $required = $schema;
- }
- }
- if ($isData || $required.length) {
- var $currentErrorPath = it.errorPath,
- $loopRequired = $isData || $required.length >= it.opts.loopRequired,
- $ownProperties = it.opts.ownProperties;
- if ($breakOnError) {
- out += ' var missing' + ($lvl) + '; ';
- if ($loopRequired) {
- if (!$isData) {
- out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';
- }
- var $i = 'i' + $lvl,
- $propertyPath = 'schema' + $lvl + '[' + $i + ']',
- $missingProperty = '\' + ' + $propertyPath + ' + \'';
- if (it.opts._errorDataPathProperty) {
- it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);
- }
- out += ' var ' + ($valid) + ' = true; ';
- if ($isData) {
- out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';
- }
- out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined ';
- if ($ownProperties) {
- out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';
- }
- out += '; if (!' + ($valid) + ') break; } ';
- if ($isData) {
- out += ' } ';
- }
- out += ' if (!' + ($valid) + ') { ';
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'';
- if (it.opts._errorDataPathProperty) {
- out += 'is a required property';
- } else {
- out += 'should have required property \\\'' + ($missingProperty) + '\\\'';
- }
- out += '\' ';
- }
- 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 += ' } else { ';
- } else {
- out += ' if ( ';
- var arr2 = $required;
- if (arr2) {
- var $propertyKey, $i = -1,
- l2 = arr2.length - 1;
- while ($i < l2) {
- $propertyKey = arr2[$i += 1];
- if ($i) {
- out += ' || ';
- }
- var $prop = it.util.getProperty($propertyKey),
- $useData = $data + $prop;
- out += ' ( ( ' + ($useData) + ' === undefined ';
- if ($ownProperties) {
- out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') ';
- }
- out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';
- }
- }
- out += ') { ';
- var $propertyPath = 'missing' + $lvl,
- $missingProperty = '\' + ' + $propertyPath + ' + \'';
- if (it.opts._errorDataPathProperty) {
- it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;
- }
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'';
- if (it.opts._errorDataPathProperty) {
- out += 'is a required property';
- } else {
- out += 'should have required property \\\'' + ($missingProperty) + '\\\'';
- }
- out += '\' ';
- }
- 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 += ' } else { ';
- }
- } else {
- if ($loopRequired) {
- if (!$isData) {
- out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';
- }
- var $i = 'i' + $lvl,
- $propertyPath = 'schema' + $lvl + '[' + $i + ']',
- $missingProperty = '\' + ' + $propertyPath + ' + \'';
- if (it.opts._errorDataPathProperty) {
- it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);
- }
- if ($isData) {
- out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) { var err = '; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'';
- if (it.opts._errorDataPathProperty) {
- out += 'is a required property';
- } else {
- out += 'should have required property \\\'' + ($missingProperty) + '\\\'';
- }
- out += '\' ';
- }
- 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++; } else if (' + ($vSchema) + ' !== undefined) { ';
- }
- out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined ';
- if ($ownProperties) {
- out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';
- }
- out += ') { var err = '; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'';
- if (it.opts._errorDataPathProperty) {
- out += 'is a required property';
- } else {
- out += 'should have required property \\\'' + ($missingProperty) + '\\\'';
- }
- out += '\' ';
- }
- 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 ($isData) {
- out += ' } ';
- }
- } else {
- var arr3 = $required;
- if (arr3) {
- var $propertyKey, i3 = -1,
- l3 = arr3.length - 1;
- while (i3 < l3) {
- $propertyKey = arr3[i3 += 1];
- var $prop = it.util.getProperty($propertyKey),
- $missingProperty = it.util.escapeQuotes($propertyKey),
- $useData = $data + $prop;
- if (it.opts._errorDataPathProperty) {
- it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);
- }
- out += ' if ( ' + ($useData) + ' === undefined ';
- if ($ownProperties) {
- out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') ';
- }
- out += ') { var err = '; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'';
- if (it.opts._errorDataPathProperty) {
- out += 'is a required property';
- } else {
- out += 'should have required property \\\'' + ($missingProperty) + '\\\'';
- }
- out += '\' ';
- }
- 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++; } ';
- }
- }
- }
- }
- it.errorPath = $currentErrorPath;
- } else if ($breakOnError) {
- out += ' if (true) {';
- }
- return out;
-}
diff --git a/deps/npm/node_modules/ajv/lib/dotjs/uniqueItems.js b/deps/npm/node_modules/ajv/lib/dotjs/uniqueItems.js
deleted file mode 100644
index 0736a0ed233..00000000000
--- a/deps/npm/node_modules/ajv/lib/dotjs/uniqueItems.js
+++ /dev/null
@@ -1,86 +0,0 @@
-'use strict';
-module.exports = function generate_uniqueItems(it, $keyword, $ruleType) {
- var out = ' ';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $data = 'data' + ($dataLvl || '');
- var $valid = 'valid' + $lvl;
- var $isData = it.opts.$data && $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 (($schema || $isData) && it.opts.uniqueItems !== false) {
- if ($isData) {
- out += ' var ' + ($valid) + '; if (' + ($schemaValue) + ' === false || ' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \'boolean\') ' + ($valid) + ' = false; else { ';
- }
- out += ' var i = ' + ($data) + '.length , ' + ($valid) + ' = true , j; if (i > 1) { ';
- var $itemType = it.schema.items && it.schema.items.type,
- $typeIsArray = Array.isArray($itemType);
- if (!$itemType || $itemType == 'object' || $itemType == 'array' || ($typeIsArray && ($itemType.indexOf('object') >= 0 || $itemType.indexOf('array') >= 0))) {
- out += ' outer: for (;i--;) { for (j = i; j--;) { if (equal(' + ($data) + '[i], ' + ($data) + '[j])) { ' + ($valid) + ' = false; break outer; } } } ';
- } else {
- out += ' var itemIndices = {}, item; for (;i--;) { var item = ' + ($data) + '[i]; ';
- var $method = 'checkDataType' + ($typeIsArray ? 's' : '');
- out += ' if (' + (it.util[$method]($itemType, 'item', it.opts.strictNumbers, true)) + ') continue; ';
- if ($typeIsArray) {
- out += ' if (typeof item == \'string\') item = \'"\' + item; ';
- }
- out += ' if (typeof itemIndices[item] == \'number\') { ' + ($valid) + ' = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ';
- }
- out += ' } ';
- if ($isData) {
- out += ' } ';
- }
- out += ' if (!' + ($valid) + ') { ';
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ('uniqueItems') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { i: i, j: j } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should NOT have duplicate items (items ## \' + j + \' and \' + i + \' are identical)\' ';
- }
- if (it.opts.verbose) {
- out += ' , schema: ';
- if ($isData) {
- out += 'validate.schema' + ($schemaPath);
- } else {
- out += '' + ($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 += ' } ';
- if ($breakOnError) {
- out += ' else { ';
- }
- } else {
- if ($breakOnError) {
- out += ' if (true) { ';
- }
- }
- return out;
-}
diff --git a/deps/npm/node_modules/ajv/lib/dotjs/validate.js b/deps/npm/node_modules/ajv/lib/dotjs/validate.js
deleted file mode 100644
index f295824b932..00000000000
--- a/deps/npm/node_modules/ajv/lib/dotjs/validate.js
+++ /dev/null
@@ -1,482 +0,0 @@
-'use strict';
-module.exports = function generate_validate(it, $keyword, $ruleType) {
- var out = '';
- var $async = it.schema.$async === true,
- $refKeywords = it.util.schemaHasRulesExcept(it.schema, it.RULES.all, '$ref'),
- $id = it.self._getId(it.schema);
- if (it.opts.strictKeywords) {
- var $unknownKwd = it.util.schemaUnknownRules(it.schema, it.RULES.keywords);
- if ($unknownKwd) {
- var $keywordsMsg = 'unknown keyword: ' + $unknownKwd;
- if (it.opts.strictKeywords === 'log') it.logger.warn($keywordsMsg);
- else throw new Error($keywordsMsg);
- }
- }
- if (it.isTop) {
- out += ' var validate = ';
- if ($async) {
- it.async = true;
- out += 'async ';
- }
- out += 'function(data, dataPath, parentData, parentDataProperty, rootData) { \'use strict\'; ';
- if ($id && (it.opts.sourceCode || it.opts.processCode)) {
- out += ' ' + ('/\*# sourceURL=' + $id + ' */') + ' ';
- }
- }
- if (typeof it.schema == 'boolean' || !($refKeywords || it.schema.$ref)) {
- var $keyword = 'false schema';
- var $lvl = it.level;
- var $dataLvl = it.dataLevel;
- var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
- var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
- var $breakOnError = !it.opts.allErrors;
- var $errorKeyword;
- var $data = 'data' + ($dataLvl || '');
- var $valid = 'valid' + $lvl;
- if (it.schema === false) {
- if (it.isTop) {
- $breakOnError = true;
- } else {
- out += ' var ' + ($valid) + ' = false; ';
- }
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ($errorKeyword || 'false schema') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';
- if (it.opts.messages !== false) {
- out += ' , message: \'boolean schema is false\' ';
- }
- if (it.opts.verbose) {
- out += ' , schema: false , 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++; ';
- }
- } else {
- if (it.isTop) {
- if ($async) {
- out += ' return data; ';
- } else {
- out += ' validate.errors = null; return true; ';
- }
- } else {
- out += ' var ' + ($valid) + ' = true; ';
- }
- }
- if (it.isTop) {
- out += ' }; return validate; ';
- }
- return out;
- }
- if (it.isTop) {
- var $top = it.isTop,
- $lvl = it.level = 0,
- $dataLvl = it.dataLevel = 0,
- $data = 'data';
- it.rootId = it.resolve.fullPath(it.self._getId(it.root.schema));
- it.baseId = it.baseId || it.rootId;
- delete it.isTop;
- it.dataPathArr = [""];
- if (it.schema.default !== undefined && it.opts.useDefaults && it.opts.strictDefaults) {
- var $defaultMsg = 'default is ignored in the schema root';
- if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);
- else throw new Error($defaultMsg);
- }
- out += ' var vErrors = null; ';
- out += ' var errors = 0; ';
- out += ' if (rootData === undefined) rootData = data; ';
- } else {
- var $lvl = it.level,
- $dataLvl = it.dataLevel,
- $data = 'data' + ($dataLvl || '');
- if ($id) it.baseId = it.resolve.url(it.baseId, $id);
- if ($async && !it.async) throw new Error('async schema in sync schema');
- out += ' var errs_' + ($lvl) + ' = errors;';
- }
- var $valid = 'valid' + $lvl,
- $breakOnError = !it.opts.allErrors,
- $closingBraces1 = '',
- $closingBraces2 = '';
- var $errorKeyword;
- var $typeSchema = it.schema.type,
- $typeIsArray = Array.isArray($typeSchema);
- if ($typeSchema && it.opts.nullable && it.schema.nullable === true) {
- if ($typeIsArray) {
- if ($typeSchema.indexOf('null') == -1) $typeSchema = $typeSchema.concat('null');
- } else if ($typeSchema != 'null') {
- $typeSchema = [$typeSchema, 'null'];
- $typeIsArray = true;
- }
- }
- if ($typeIsArray && $typeSchema.length == 1) {
- $typeSchema = $typeSchema[0];
- $typeIsArray = false;
- }
- if (it.schema.$ref && $refKeywords) {
- if (it.opts.extendRefs == 'fail') {
- throw new Error('$ref: validation keywords used in schema at path "' + it.errSchemaPath + '" (see option extendRefs)');
- } else if (it.opts.extendRefs !== true) {
- $refKeywords = false;
- it.logger.warn('$ref: keywords ignored in schema at path "' + it.errSchemaPath + '"');
- }
- }
- if (it.schema.$comment && it.opts.$comment) {
- out += ' ' + (it.RULES.all.$comment.code(it, '$comment'));
- }
- if ($typeSchema) {
- if (it.opts.coerceTypes) {
- var $coerceToTypes = it.util.coerceToTypes(it.opts.coerceTypes, $typeSchema);
- }
- var $rulesGroup = it.RULES.types[$typeSchema];
- if ($coerceToTypes || $typeIsArray || $rulesGroup === true || ($rulesGroup && !$shouldUseGroup($rulesGroup))) {
- var $schemaPath = it.schemaPath + '.type',
- $errSchemaPath = it.errSchemaPath + '/type';
- var $schemaPath = it.schemaPath + '.type',
- $errSchemaPath = it.errSchemaPath + '/type',
- $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType';
- out += ' if (' + (it.util[$method]($typeSchema, $data, it.opts.strictNumbers, true)) + ') { ';
- if ($coerceToTypes) {
- var $dataType = 'dataType' + $lvl,
- $coerced = 'coerced' + $lvl;
- out += ' var ' + ($dataType) + ' = typeof ' + ($data) + '; var ' + ($coerced) + ' = undefined; ';
- if (it.opts.coerceTypes == 'array') {
- out += ' if (' + ($dataType) + ' == \'object\' && Array.isArray(' + ($data) + ') && ' + ($data) + '.length == 1) { ' + ($data) + ' = ' + ($data) + '[0]; ' + ($dataType) + ' = typeof ' + ($data) + '; if (' + (it.util.checkDataType(it.schema.type, $data, it.opts.strictNumbers)) + ') ' + ($coerced) + ' = ' + ($data) + '; } ';
- }
- out += ' if (' + ($coerced) + ' !== undefined) ; ';
- var arr1 = $coerceToTypes;
- if (arr1) {
- var $type, $i = -1,
- l1 = arr1.length - 1;
- while ($i < l1) {
- $type = arr1[$i += 1];
- if ($type == 'string') {
- out += ' else if (' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\') ' + ($coerced) + ' = \'\' + ' + ($data) + '; else if (' + ($data) + ' === null) ' + ($coerced) + ' = \'\'; ';
- } else if ($type == 'number' || $type == 'integer') {
- out += ' else if (' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' === null || (' + ($dataType) + ' == \'string\' && ' + ($data) + ' && ' + ($data) + ' == +' + ($data) + ' ';
- if ($type == 'integer') {
- out += ' && !(' + ($data) + ' % 1)';
- }
- out += ')) ' + ($coerced) + ' = +' + ($data) + '; ';
- } else if ($type == 'boolean') {
- out += ' else if (' + ($data) + ' === \'false\' || ' + ($data) + ' === 0 || ' + ($data) + ' === null) ' + ($coerced) + ' = false; else if (' + ($data) + ' === \'true\' || ' + ($data) + ' === 1) ' + ($coerced) + ' = true; ';
- } else if ($type == 'null') {
- out += ' else if (' + ($data) + ' === \'\' || ' + ($data) + ' === 0 || ' + ($data) + ' === false) ' + ($coerced) + ' = null; ';
- } else if (it.opts.coerceTypes == 'array' && $type == 'array') {
- out += ' else if (' + ($dataType) + ' == \'string\' || ' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' == null) ' + ($coerced) + ' = [' + ($data) + ']; ';
- }
- }
- }
- out += ' else { ';
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ($errorKeyword || 'type') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \'';
- if ($typeIsArray) {
- out += '' + ($typeSchema.join(","));
- } else {
- out += '' + ($typeSchema);
- }
- out += '\' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should be ';
- if ($typeIsArray) {
- out += '' + ($typeSchema.join(","));
- } else {
- out += '' + ($typeSchema);
- }
- out += '\' ';
- }
- 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 (' + ($coerced) + ' !== undefined) { ';
- var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',
- $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';
- out += ' ' + ($data) + ' = ' + ($coerced) + '; ';
- if (!$dataLvl) {
- out += 'if (' + ($parentData) + ' !== undefined)';
- }
- out += ' ' + ($parentData) + '[' + ($parentDataProperty) + '] = ' + ($coerced) + '; } ';
- } else {
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ($errorKeyword || 'type') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \'';
- if ($typeIsArray) {
- out += '' + ($typeSchema.join(","));
- } else {
- out += '' + ($typeSchema);
- }
- out += '\' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should be ';
- if ($typeIsArray) {
- out += '' + ($typeSchema.join(","));
- } else {
- out += '' + ($typeSchema);
- }
- out += '\' ';
- }
- 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 (it.schema.$ref && !$refKeywords) {
- out += ' ' + (it.RULES.all.$ref.code(it, '$ref')) + ' ';
- if ($breakOnError) {
- out += ' } if (errors === ';
- if ($top) {
- out += '0';
- } else {
- out += 'errs_' + ($lvl);
- }
- out += ') { ';
- $closingBraces2 += '}';
- }
- } else {
- var arr2 = it.RULES;
- if (arr2) {
- var $rulesGroup, i2 = -1,
- l2 = arr2.length - 1;
- while (i2 < l2) {
- $rulesGroup = arr2[i2 += 1];
- if ($shouldUseGroup($rulesGroup)) {
- if ($rulesGroup.type) {
- out += ' if (' + (it.util.checkDataType($rulesGroup.type, $data, it.opts.strictNumbers)) + ') { ';
- }
- if (it.opts.useDefaults) {
- if ($rulesGroup.type == 'object' && it.schema.properties) {
- var $schema = it.schema.properties,
- $schemaKeys = Object.keys($schema);
- var arr3 = $schemaKeys;
- if (arr3) {
- var $propertyKey, i3 = -1,
- l3 = arr3.length - 1;
- while (i3 < l3) {
- $propertyKey = arr3[i3 += 1];
- var $sch = $schema[$propertyKey];
- if ($sch.default !== undefined) {
- var $passData = $data + it.util.getProperty($propertyKey);
- if (it.compositeRule) {
- if (it.opts.strictDefaults) {
- var $defaultMsg = 'default is ignored for: ' + $passData;
- if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);
- else throw new Error($defaultMsg);
- }
- } else {
- out += ' if (' + ($passData) + ' === undefined ';
- if (it.opts.useDefaults == 'empty') {
- out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \'\' ';
- }
- out += ' ) ' + ($passData) + ' = ';
- if (it.opts.useDefaults == 'shared') {
- out += ' ' + (it.useDefault($sch.default)) + ' ';
- } else {
- out += ' ' + (JSON.stringify($sch.default)) + ' ';
- }
- out += '; ';
- }
- }
- }
- }
- } else if ($rulesGroup.type == 'array' && Array.isArray(it.schema.items)) {
- var arr4 = it.schema.items;
- if (arr4) {
- var $sch, $i = -1,
- l4 = arr4.length - 1;
- while ($i < l4) {
- $sch = arr4[$i += 1];
- if ($sch.default !== undefined) {
- var $passData = $data + '[' + $i + ']';
- if (it.compositeRule) {
- if (it.opts.strictDefaults) {
- var $defaultMsg = 'default is ignored for: ' + $passData;
- if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);
- else throw new Error($defaultMsg);
- }
- } else {
- out += ' if (' + ($passData) + ' === undefined ';
- if (it.opts.useDefaults == 'empty') {
- out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \'\' ';
- }
- out += ' ) ' + ($passData) + ' = ';
- if (it.opts.useDefaults == 'shared') {
- out += ' ' + (it.useDefault($sch.default)) + ' ';
- } else {
- out += ' ' + (JSON.stringify($sch.default)) + ' ';
- }
- out += '; ';
- }
- }
- }
- }
- }
- }
- var arr5 = $rulesGroup.rules;
- if (arr5) {
- var $rule, i5 = -1,
- l5 = arr5.length - 1;
- while (i5 < l5) {
- $rule = arr5[i5 += 1];
- if ($shouldUseRule($rule)) {
- var $code = $rule.code(it, $rule.keyword, $rulesGroup.type);
- if ($code) {
- out += ' ' + ($code) + ' ';
- if ($breakOnError) {
- $closingBraces1 += '}';
- }
- }
- }
- }
- }
- if ($breakOnError) {
- out += ' ' + ($closingBraces1) + ' ';
- $closingBraces1 = '';
- }
- if ($rulesGroup.type) {
- out += ' } ';
- if ($typeSchema && $typeSchema === $rulesGroup.type && !$coerceToTypes) {
- out += ' else { ';
- var $schemaPath = it.schemaPath + '.type',
- $errSchemaPath = it.errSchemaPath + '/type';
- var $$outStack = $$outStack || [];
- $$outStack.push(out);
- out = ''; /* istanbul ignore else */
- if (it.createErrors !== false) {
- out += ' { keyword: \'' + ($errorKeyword || 'type') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \'';
- if ($typeIsArray) {
- out += '' + ($typeSchema.join(","));
- } else {
- out += '' + ($typeSchema);
- }
- out += '\' } ';
- if (it.opts.messages !== false) {
- out += ' , message: \'should be ';
- if ($typeIsArray) {
- out += '' + ($typeSchema.join(","));
- } else {
- out += '' + ($typeSchema);
- }
- out += '\' ';
- }
- 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) {
- out += ' if (errors === ';
- if ($top) {
- out += '0';
- } else {
- out += 'errs_' + ($lvl);
- }
- out += ') { ';
- $closingBraces2 += '}';
- }
- }
- }
- }
- }
- if ($breakOnError) {
- out += ' ' + ($closingBraces2) + ' ';
- }
- if ($top) {
- if ($async) {
- out += ' if (errors === 0) return data; ';
- out += ' else throw new ValidationError(vErrors); ';
- } else {
- out += ' validate.errors = vErrors; ';
- out += ' return errors === 0; ';
- }
- out += ' }; return validate;';
- } else {
- out += ' var ' + ($valid) + ' = errors === errs_' + ($lvl) + ';';
- }
-
- function $shouldUseGroup($rulesGroup) {
- var rules = $rulesGroup.rules;
- for (var i = 0; i < rules.length; i++)
- if ($shouldUseRule(rules[i])) return true;
- }
-
- function $shouldUseRule($rule) {
- return it.schema[$rule.keyword] !== undefined || ($rule.implements && $ruleImplementsSomeKeyword($rule));
- }
-
- function $ruleImplementsSomeKeyword($rule) {
- var impl = $rule.implements;
- for (var i = 0; i < impl.length; i++)
- if (it.schema[impl[i]] !== undefined) return true;
- }
- return out;
-}
diff --git a/deps/npm/node_modules/ajv/lib/keyword.js b/deps/npm/node_modules/ajv/lib/keyword.js
deleted file mode 100644
index 06da9a2dfbe..00000000000
--- a/deps/npm/node_modules/ajv/lib/keyword.js
+++ /dev/null
@@ -1,146 +0,0 @@
-'use strict';
-
-var IDENTIFIER = /^[a-z_$][a-z0-9_$-]*$/i;
-var customRuleCode = require('./dotjs/custom');
-var definitionSchema = require('./definition_schema');
-
-module.exports = {
- add: addKeyword,
- get: getKeyword,
- remove: removeKeyword,
- validate: validateKeyword
-};
-
-
-/**
- * Define custom keyword
- * @this Ajv
- * @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`.
- * @return {Ajv} this for method chaining
- */
-function addKeyword(keyword, definition) {
- /* jshint validthis: true */
- /* eslint no-shadow: 0 */
- var RULES = this.RULES;
- if (RULES.keywords[keyword])
- throw new Error('Keyword ' + keyword + ' is already defined');
-
- if (!IDENTIFIER.test(keyword))
- throw new Error('Keyword ' + keyword + ' is not a valid identifier');
-
- if (definition) {
- this.validateKeyword(definition, true);
-
- var dataType = definition.type;
- if (Array.isArray(dataType)) {
- for (var i=0; i<dataType.length; i++)
- _addRule(keyword, dataType[i], definition);
- } else {
- _addRule(keyword, dataType, definition);
- }
-
- var metaSchema = definition.metaSchema;
- if (metaSchema) {
- if (definition.$data && this._opts.$data) {
- metaSchema = {
- anyOf: [
- metaSchema,
- { '$ref': 'https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#' }
- ]
- };
- }
- definition.validateSchema = this.compile(metaSchema, true);
- }
- }
-
- RULES.keywords[keyword] = RULES.all[keyword] = true;
-
-
- function _addRule(keyword, dataType, definition) {
- var ruleGroup;
- for (var i=0; i<RULES.length; i++) {
- var rg = RULES[i];
- if (rg.type == dataType) {
- ruleGroup = rg;
- break;
- }
- }
-
- if (!ruleGroup) {
- ruleGroup = { type: dataType, rules: [] };
- RULES.push(ruleGroup);
- }
-
- var rule = {
- keyword: keyword,
- definition: definition,
- custom: true,
- code: customRuleCode,
- implements: definition.implements
- };
- ruleGroup.rules.push(rule);
- RULES.custom[keyword] = rule;
- }
-
- return this;
-}
-
-
-/**
- * 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.
- * @return {Ajv} this for method chaining
- */
-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;
- }
- }
- }
- return this;
-}
-
-
-/**
- * Validate keyword definition
- * @this Ajv
- * @param {Object} definition keyword definition object.
- * @param {Boolean} throwError true to throw exception if definition is invalid
- * @return {boolean} validation result
- */
-function validateKeyword(definition, throwError) {
- validateKeyword.errors = null;
- var v = this._validateKeyword = this._validateKeyword
- || this.compile(definitionSchema, true);
-
- if (v(definition)) return true;
- validateKeyword.errors = v.errors;
- if (throwError)
- throw new Error('custom keyword definition is invalid: ' + this.errorsText(v.errors));
- else
- return false;
-}
diff --git a/deps/npm/node_modules/ajv/lib/refs/data.json b/deps/npm/node_modules/ajv/lib/refs/data.json
deleted file mode 100644
index 64aac5b613d..00000000000
--- a/deps/npm/node_modules/ajv/lib/refs/data.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-07/schema#",
- "$id": "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",
- "description": "Meta-schema for $data reference (JSON Schema extension proposal)",
- "type": "object",
- "required": [ "$data" ],
- "properties": {
- "$data": {
- "type": "string",
- "anyOf": [
- { "format": "relative-json-pointer" },
- { "format": "json-pointer" }
- ]
- }
- },
- "additionalProperties": false
-}
diff --git a/deps/npm/node_modules/ajv/lib/refs/json-schema-draft-04.json b/deps/npm/node_modules/ajv/lib/refs/json-schema-draft-04.json
deleted file mode 100644
index bcbb84743e3..00000000000
--- a/deps/npm/node_modules/ajv/lib/refs/json-schema-draft-04.json
+++ /dev/null
@@ -1,149 +0,0 @@
-{
- "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": true
- }
- },
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "$schema": {
- "type": "string"
- },
- "title": {
- "type": "string"
- },
- "description": {
- "type": "string"
- },
- "default": {},
- "multipleOf": {
- "type": "number",
- "minimum": 0,
- "exclusiveMinimum": true
- },
- "maximum": {
- "type": "number"
- },
- "exclusiveMaximum": {
- "type": "boolean",
- "default": false
- },
- "minimum": {
- "type": "number"
- },
- "exclusiveMinimum": {
- "type": "boolean",
- "default": false
- },
- "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": false
- },
- "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": true
- },
- "type": {
- "anyOf": [
- { "$ref": "#/definitions/simpleTypes" },
- {
- "type": "array",
- "items": { "$ref": "#/definitions/simpleTypes" },
- "minItems": 1,
- "uniqueItems": true
- }
- ]
- },
- "format": { "type": "string" },
- "allOf": { "$ref": "#/definitions/schemaArray" },
- "anyOf": { "$ref": "#/definitions/schemaArray" },
- "oneOf": { "$ref": "#/definitions/schemaArray" },
- "not": { "$ref": "#" }
- },
- "dependencies": {
- "exclusiveMaximum": [ "maximum" ],
- "exclusiveMinimum": [ "minimum" ]
- },
- "default": {}
-}
diff --git a/deps/npm/node_modules/ajv/lib/refs/json-schema-draft-06.json b/deps/npm/node_modules/ajv/lib/refs/json-schema-draft-06.json
deleted file mode 100644
index 5656240b947..00000000000
--- a/deps/npm/node_modules/ajv/lib/refs/json-schema-draft-06.json
+++ /dev/null
@@ -1,154 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-06/schema#",
- "$id": "http://json-schema.org/draft-06/schema#",
- "title": "Core schema meta-schema",
- "definitions": {
- "schemaArray": {
- "type": "array",
- "minItems": 1,
- "items": { "$ref": "#" }
- },
- "nonNegativeInteger": {
- "type": "integer",
- "minimum": 0
- },
- "nonNegativeIntegerDefault0": {
- "allOf": [
- { "$ref": "#/definitions/nonNegativeInteger" },
- { "default": 0 }
- ]
- },
- "simpleTypes": {
- "enum": [
- "array",
- "boolean",
- "integer",
- "null",
- "number",
- "object",
- "string"
- ]
- },
- "stringArray": {
- "type": "array",
- "items": { "type": "string" },
- "uniqueItems": true,
- "default": []
- }
- },
- "type": ["object", "boolean"],
- "properties": {
- "$id": {
- "type": "string",
- "format": "uri-reference"
- },
- "$schema": {
- "type": "string",
- "format": "uri"
- },
- "$ref": {
- "type": "string",
- "format": "uri-reference"
- },
- "title": {
- "type": "string"
- },
- "description": {
- "type": "string"
- },
- "default": {},
- "examples": {
- "type": "array",
- "items": {}
- },
- "multipleOf": {
- "type": "number",
- "exclusiveMinimum": 0
- },
- "maximum": {
- "type": "number"
- },
- "exclusiveMaximum": {
- "type": "number"
- },
- "minimum": {
- "type": "number"
- },
- "exclusiveMinimum": {
- "type": "number"
- },
- "maxLength": { "$ref": "#/definitions/nonNegativeInteger" },
- "minLength": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },
- "pattern": {
- "type": "string",
- "format": "regex"
- },
- "additionalItems": { "$ref": "#" },
- "items": {
- "anyOf": [
- { "$ref": "#" },
- { "$ref": "#/definitions/schemaArray" }
- ],
- "default": {}
- },
- "maxItems": { "$ref": "#/definitions/nonNegativeInteger" },
- "minItems": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },
- "uniqueItems": {
- "type": "boolean",
- "default": false
- },
- "contains": { "$ref": "#" },
- "maxProperties": { "$ref": "#/definitions/nonNegativeInteger" },
- "minProperties": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },
- "required": { "$ref": "#/definitions/stringArray" },
- "additionalProperties": { "$ref": "#" },
- "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" }
- ]
- }
- },
- "propertyNames": { "$ref": "#" },
- "const": {},
- "enum": {
- "type": "array",
- "minItems": 1,
- "uniqueItems": true
- },
- "type": {
- "anyOf": [
- { "$ref": "#/definitions/simpleTypes" },
- {
- "type": "array",
- "items": { "$ref": "#/definitions/simpleTypes" },
- "minItems": 1,
- "uniqueItems": true
- }
- ]
- },
- "format": { "type": "string" },
- "allOf": { "$ref": "#/definitions/schemaArray" },
- "anyOf": { "$ref": "#/definitions/schemaArray" },
- "oneOf": { "$ref": "#/definitions/schemaArray" },
- "not": { "$ref": "#" }
- },
- "default": {}
-}
diff --git a/deps/npm/node_modules/ajv/lib/refs/json-schema-draft-07.json b/deps/npm/node_modules/ajv/lib/refs/json-schema-draft-07.json
deleted file mode 100644
index 5bee90ec141..00000000000
--- a/deps/npm/node_modules/ajv/lib/refs/json-schema-draft-07.json
+++ /dev/null
@@ -1,168 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-07/schema#",
- "$id": "http://json-schema.org/draft-07/schema#",
- "title": "Core schema meta-schema",
- "definitions": {
- "schemaArray": {
- "type": "array",
- "minItems": 1,
- "items": { "$ref": "#" }
- },
- "nonNegativeInteger": {
- "type": "integer",
- "minimum": 0
- },
- "nonNegativeIntegerDefault0": {
- "allOf": [
- { "$ref": "#/definitions/nonNegativeInteger" },
- { "default": 0 }
- ]
- },
- "simpleTypes": {
- "enum": [
- "array",
- "boolean",
- "integer",
- "null",
- "number",
- "object",
- "string"
- ]
- },
- "stringArray": {
- "type": "array",
- "items": { "type": "string" },
- "uniqueItems": true,
- "default": []
- }
- },
- "type": ["object", "boolean"],
- "properties": {
- "$id": {
- "type": "string",
- "format": "uri-reference"
- },
- "$schema": {
- "type": "string",
- "format": "uri"
- },
- "$ref": {
- "type": "string",
- "format": "uri-reference"
- },
- "$comment": {
- "type": "string"
- },
- "title": {
- "type": "string"
- },
- "description": {
- "type": "string"
- },
- "default": true,
- "readOnly": {
- "type": "boolean",
- "default": false
- },
- "examples": {
- "type": "array",
- "items": true
- },
- "multipleOf": {
- "type": "number",
- "exclusiveMinimum": 0
- },
- "maximum": {
- "type": "number"
- },
- "exclusiveMaximum": {
- "type": "number"
- },
- "minimum": {
- "type": "number"
- },
- "exclusiveMinimum": {
- "type": "number"
- },
- "maxLength": { "$ref": "#/definitions/nonNegativeInteger" },
- "minLength": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },
- "pattern": {
- "type": "string",
- "format": "regex"
- },
- "additionalItems": { "$ref": "#" },
- "items": {
- "anyOf": [
- { "$ref": "#" },
- { "$ref": "#/definitions/schemaArray" }
- ],
- "default": true
- },
- "maxItems": { "$ref": "#/definitions/nonNegativeInteger" },
- "minItems": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },
- "uniqueItems": {
- "type": "boolean",
- "default": false
- },
- "contains": { "$ref": "#" },
- "maxProperties": { "$ref": "#/definitions/nonNegativeInteger" },
- "minProperties": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },
- "required": { "$ref": "#/definitions/stringArray" },
- "additionalProperties": { "$ref": "#" },
- "definitions": {
- "type": "object",
- "additionalProperties": { "$ref": "#" },
- "default": {}
- },
- "properties": {
- "type": "object",
- "additionalProperties": { "$ref": "#" },
- "default": {}
- },
- "patternProperties": {
- "type": "object",
- "additionalProperties": { "$ref": "#" },
- "propertyNames": { "format": "regex" },
- "default": {}
- },
- "dependencies": {
- "type": "object",
- "additionalProperties": {
- "anyOf": [
- { "$ref": "#" },
- { "$ref": "#/definitions/stringArray" }
- ]
- }
- },
- "propertyNames": { "$ref": "#" },
- "const": true,
- "enum": {
- "type": "array",
- "items": true,
- "minItems": 1,
- "uniqueItems": true
- },
- "type": {
- "anyOf": [
- { "$ref": "#/definitions/simpleTypes" },
- {
- "type": "array",
- "items": { "$ref": "#/definitions/simpleTypes" },
- "minItems": 1,
- "uniqueItems": true
- }
- ]
- },
- "format": { "type": "string" },
- "contentMediaType": { "type": "string" },
- "contentEncoding": { "type": "string" },
- "if": {"$ref": "#"},
- "then": {"$ref": "#"},
- "else": {"$ref": "#"},
- "allOf": { "$ref": "#/definitions/schemaArray" },
- "anyOf": { "$ref": "#/definitions/schemaArray" },
- "oneOf": { "$ref": "#/definitions/schemaArray" },
- "not": { "$ref": "#" }
- },
- "default": true
-}
diff --git a/deps/npm/node_modules/ajv/lib/refs/json-schema-secure.json b/deps/npm/node_modules/ajv/lib/refs/json-schema-secure.json
deleted file mode 100644
index 0f7aad4793a..00000000000
--- a/deps/npm/node_modules/ajv/lib/refs/json-schema-secure.json
+++ /dev/null
@@ -1,94 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-07/schema#",
- "$id": "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/json-schema-secure.json#",
- "title": "Meta-schema for the security assessment of JSON Schemas",
- "description": "If a JSON Schema fails validation against this meta-schema, it may be unsafe to validate untrusted data",
- "definitions": {
- "schemaArray": {
- "type": "array",
- "minItems": 1,
- "items": {"$ref": "#"}
- }
- },
- "dependencies": {
- "patternProperties": {
- "description": "prevent slow validation of large property names",
- "required": ["propertyNames"],
- "properties": {
- "propertyNames": {
- "required": ["maxLength"]
- }
- }
- },
- "uniqueItems": {
- "description": "prevent slow validation of large non-scalar arrays",
- "if": {
- "properties": {
- "uniqueItems": {"const": true},
- "items": {
- "properties": {
- "type": {
- "anyOf": [
- {
- "enum": ["object", "array"]
- },
- {
- "type": "array",
- "contains": {"enum": ["object", "array"]}
- }
- ]
- }
- }
- }
- }
- },
- "then": {
- "required": ["maxItems"]
- }
- },
- "pattern": {
- "description": "prevent slow pattern matching of large strings",
- "required": ["maxLength"]
- },
- "format": {
- "description": "prevent slow format validation of large strings",
- "required": ["maxLength"]
- }
- },
- "properties": {
- "additionalItems": {"$ref": "#"},
- "additionalProperties": {"$ref": "#"},
- "dependencies": {
- "additionalProperties": {
- "anyOf": [
- {"type": "array"},
- {"$ref": "#"}
- ]
- }
- },
- "items": {
- "anyOf": [
- {"$ref": "#"},
- {"$ref": "#/definitions/schemaArray"}
- ]
- },
- "definitions": {
- "additionalProperties": {"$ref": "#"}
- },
- "patternProperties": {
- "additionalProperties": {"$ref": "#"}
- },
- "properties": {
- "additionalProperties": {"$ref": "#"}
- },
- "if": {"$ref": "#"},
- "then": {"$ref": "#"},
- "else": {"$ref": "#"},
- "allOf": {"$ref": "#/definitions/schemaArray"},
- "anyOf": {"$ref": "#/definitions/schemaArray"},
- "oneOf": {"$ref": "#/definitions/schemaArray"},
- "not": {"$ref": "#"},
- "contains": {"$ref": "#"},
- "propertyNames": {"$ref": "#"}
- }
-}
diff --git a/deps/npm/node_modules/ajv/package.json b/deps/npm/node_modules/ajv/package.json
deleted file mode 100644
index 559a933c8c1..00000000000
--- a/deps/npm/node_modules/ajv/package.json
+++ /dev/null
@@ -1,106 +0,0 @@
-{
- "name": "ajv",
- "version": "6.12.6",
- "description": "Another JSON Schema Validator",
- "main": "lib/ajv.js",
- "typings": "lib/ajv.d.ts",
- "files": [
- "lib/",
- "dist/",
- "scripts/",
- "LICENSE",
- ".tonic_example.js"
- ],
- "scripts": {
- "eslint": "eslint lib/{compile/,}*.js spec/{**/,}*.js scripts --ignore-pattern spec/JSON-Schema-Test-Suite",
- "jshint": "jshint lib/{compile/,}*.js",
- "lint": "npm run jshint && npm run eslint",
- "test-spec": "mocha spec/{**/,}*.spec.js -R spec",
- "test-fast": "AJV_FAST_TEST=true npm run test-spec",
- "test-debug": "npm run test-spec -- --inspect-brk",
- "test-cov": "nyc npm run test-spec",
- "test-ts": "tsc --target ES5 --noImplicitAny --noEmit spec/typescript/index.ts",
- "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters",
- "bundle-beautify": "node ./scripts/bundle.js js-beautify",
- "build": "del-cli lib/dotjs/*.js \"!lib/dotjs/index.js\" && node scripts/compile-dots.js",
- "test-karma": "karma start",
- "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma",
- "test-all": "npm run test-cov && if-node-version 10 npm run test-browser",
- "test": "npm run lint && npm run build && npm run test-all",
- "prepublish": "npm run build && npm run bundle",
- "watch": "watch \"npm run build\" ./lib/dot"
- },
- "nyc": {
- "exclude": [
- "**/spec/**",
- "node_modules"
- ],
- "reporter": [
- "lcov",
- "text-summary"
- ]
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/ajv-validator/ajv.git"
- },
- "keywords": [
- "JSON",
- "schema",
- "validator",
- "validation",
- "jsonschema",
- "json-schema",
- "json-schema-validator",
- "json-schema-validation"
- ],
- "author": "Evgeny Poberezkin",
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/ajv-validator/ajv/issues"
- },
- "homepage": "https://github.com/ajv-validator/ajv",
- "tonicExampleFilename": ".tonic_example.js",
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- },
- "devDependencies": {
- "ajv-async": "^1.0.0",
- "bluebird": "^3.5.3",
- "brfs": "^2.0.0",
- "browserify": "^16.2.0",
- "chai": "^4.0.1",
- "coveralls": "^3.0.1",
- "del-cli": "^3.0.0",
- "dot": "^1.0.3",
- "eslint": "^7.3.1",
- "gh-pages-generator": "^0.2.3",
- "glob": "^7.0.0",
- "if-node-version": "^1.0.0",
- "js-beautify": "^1.7.3",
- "jshint": "^2.10.2",
- "json-schema-test": "^2.0.0",
- "karma": "^5.0.0",
- "karma-chrome-launcher": "^3.0.0",
- "karma-mocha": "^2.0.0",
- "karma-sauce-launcher": "^4.1.3",
- "mocha": "^8.0.1",
- "nyc": "^15.0.0",
- "pre-commit": "^1.1.1",
- "require-globify": "^1.3.0",
- "typescript": "^3.9.5",
- "uglify-js": "^3.6.9",
- "watch": "^1.0.0"
- },
- "collective": {
- "type": "opencollective",
- "url": "https://opencollective.com/ajv"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
-}
diff --git a/deps/npm/node_modules/ajv/scripts/bundle.js b/deps/npm/node_modules/ajv/scripts/bundle.js
deleted file mode 100644
index e381a762d26..00000000000
--- a/deps/npm/node_modules/ajv/scripts/bundle.js
+++ /dev/null
@@ -1,61 +0,0 @@
-'use strict';
-
-var fs = require('fs')
- , path = require('path')
- , browserify = require('browserify')
- , uglify = require('uglify-js');
-
-var pkg = process.argv[2]
- , standalone = process.argv[3]
- , compress = process.argv[4];
-
-var packageDir = path.join(__dirname, '..');
-if (pkg != '.') packageDir = path.join(packageDir, 'node_modules', pkg);
-
-var json = require(path.join(packageDir, 'package.json'));
-
-var distDir = path.join(__dirname, '..', 'dist');
-if (!fs.existsSync(distDir)) fs.mkdirSync(distDir);
-
-var bOpts = {};
-if (standalone) bOpts.standalone = standalone;
-
-browserify(bOpts)
-.require(path.join(packageDir, json.main), {expose: json.name})
-.bundle(function (err, buf) {
- if (err) {
- console.error('browserify error:', err);
- process.exit(1);
- }
-
- var outputFile = path.join(distDir, json.name);
- var uglifyOpts = {
- warnings: true,
- compress: {},
- output: {
- preamble: '/* ' + json.name + ' ' + json.version + ': ' + json.description + ' */'
- }
- };
- if (compress) {
- var compressOpts = compress.split(',');
- for (var i=0, il = compressOpts.length; i<il; ++i) {
- var pair = compressOpts[i].split('=');
- uglifyOpts.compress[pair[0]] = pair.length < 1 || pair[1] != 'false';
- }
- }
- if (standalone) {
- uglifyOpts.sourceMap = {
- filename: json.name + '.min.js',
- url: json.name + '.min.js.map'
- };
- }
-
- var result = uglify.minify(buf.toString(), uglifyOpts);
- fs.writeFileSync(outputFile + '.min.js', result.code);
- if (result.map) fs.writeFileSync(outputFile + '.min.js.map', result.map);
- if (standalone) fs.writeFileSync(outputFile + '.bundle.js', buf);
- if (result.warnings) {
- for (var j=0, jl = result.warnings.length; j<jl; ++j)
- console.warn('UglifyJS warning:', result.warnings[j]);
- }
-});
diff --git a/deps/npm/node_modules/ajv/scripts/compile-dots.js b/deps/npm/node_modules/ajv/scripts/compile-dots.js
deleted file mode 100644
index 5a21a7dddfc..00000000000
--- a/deps/npm/node_modules/ajv/scripts/compile-dots.js
+++ /dev/null
@@ -1,73 +0,0 @@
-//compile doT templates to js functions
-'use strict';
-
-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 ERROR_KEYWORD = /\$errorKeyword/g;
-var ERROR_KEYWORD_OR = /\$errorKeyword\s+\|\|/g;
-var VARS = [
- '$errs', '$valid', '$lvl', '$data', '$dataLvl',
- '$errorKeyword', '$closingBraces', '$schemaPath',
- '$validate'
-];
-
-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, $ruleType) {')
- .replace(ISTANBUL, '/* $1 */');
- removeAlwaysFalsyInOr();
- 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 = occurrences(regexp);
- if (count == 1) {
- regexp = new RegExp('var\\s+' + v + '\\s*=[^;]+;|var\\s+' + v + ';');
- code = code.replace(regexp, '');
- }
- }
-
- function removeAlwaysFalsyInOr() {
- var countUsed = occurrences(ERROR_KEYWORD);
- var countOr = occurrences(ERROR_KEYWORD_OR);
- if (countUsed == countOr + 1) code = code.replace(ERROR_KEYWORD_OR, '');
- }
-
- function occurrences(regexp) {
- return (code.match(regexp) || []).length;
- }
-});
diff --git a/deps/npm/node_modules/ajv/scripts/info b/deps/npm/node_modules/ajv/scripts/info
deleted file mode 100644
index 77269ab5fa9..00000000000
--- a/deps/npm/node_modules/ajv/scripts/info
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/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/deps/npm/node_modules/ajv/scripts/prepare-tests b/deps/npm/node_modules/ajv/scripts/prepare-tests
deleted file mode 100644
index 684703318bb..00000000000
--- a/deps/npm/node_modules/ajv/scripts/prepare-tests
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/usr/bin/env sh
-
-set -e
-
-mkdir -p .browser
-
-echo
-echo Preparing browser tests:
-
-find spec -type f -name '*.spec.js' | \
-xargs -I {} sh -c \
-'export f="{}"; echo $f; browserify $f -t require-globify -t brfs -x ajv -u buffer -o $(echo $f | sed -e "s/spec/.browser/");'
diff --git a/deps/npm/node_modules/ajv/scripts/publish-built-version b/deps/npm/node_modules/ajv/scripts/publish-built-version
deleted file mode 100644
index 1b5712372d2..00000000000
--- a/deps/npm/node_modules/ajv/scripts/publish-built-version
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-if [[ -n $TRAVIS_TAG && $TRAVIS_JOB_NUMBER =~ ".3" ]]; then
- echo "About to publish $TRAVIS_TAG to ajv-dist..."
-
- git config user.email "$GIT_USER_EMAIL"
- git config user.name "$GIT_USER_NAME"
-
- git clone https://${GITHUB_TOKEN}@github.com/ajv-validator/ajv-dist.git ../ajv-dist
-
- rm -rf ../ajv-dist/dist
- mkdir ../ajv-dist/dist
- cp ./dist/ajv.* ../ajv-dist/dist
- cat bower.json | sed 's/"name": "ajv"/"name": "ajv-dist"/' > ../ajv-dist/bower.json
- cd ../ajv-dist
-
- if [[ `git status --porcelain` ]]; then
- echo "Changes detected. Updating master branch..."
- git add -A
- git commit -m "updated by travis build #$TRAVIS_BUILD_NUMBER"
- git push --quiet origin master > /dev/null 2>&1
- fi
-
- echo "Publishing tag..."
-
- git tag $TRAVIS_TAG
- git push --tags > /dev/null 2>&1
-
- echo "Done"
-fi
diff --git a/deps/npm/node_modules/ajv/scripts/travis-gh-pages b/deps/npm/node_modules/ajv/scripts/travis-gh-pages
deleted file mode 100644
index b3d4f3d0f48..00000000000
--- a/deps/npm/node_modules/ajv/scripts/travis-gh-pages
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/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$|travis-gh-pages$' && {
- rm -rf ../gh-pages
- git clone -b gh-pages --single-branch https://${GITHUB_TOKEN}@github.com/ajv-validator/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
- # remove logo from README
- sed -i -E "s/<img[^>]+ajv_logo[^>]+>//" index.md
- 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/deps/npm/node_modules/asn1/LICENSE b/deps/npm/node_modules/asn1/LICENSE
deleted file mode 100644
index 9b5dcdb7f5e..00000000000
--- a/deps/npm/node_modules/asn1/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2011 Mark Cavage, All rights reserved.
-
-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/deps/npm/node_modules/asn1/lib/ber/errors.js b/deps/npm/node_modules/asn1/lib/ber/errors.js
deleted file mode 100644
index 4557b8aea02..00000000000
--- a/deps/npm/node_modules/asn1/lib/ber/errors.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright 2011 Mark Cavage <mcavage@gmail.com> All rights reserved.
-
-
-module.exports = {
-
- newInvalidAsn1Error: function (msg) {
- var e = new Error();
- e.name = 'InvalidAsn1Error';
- e.message = msg || '';
- return e;
- }
-
-};
diff --git a/deps/npm/node_modules/asn1/lib/ber/index.js b/deps/npm/node_modules/asn1/lib/ber/index.js
deleted file mode 100644
index 387d1326f9b..00000000000
--- a/deps/npm/node_modules/asn1/lib/ber/index.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright 2011 Mark Cavage <mcavage@gmail.com> All rights reserved.
-
-var errors = require('./errors');
-var types = require('./types');
-
-var Reader = require('./reader');
-var Writer = require('./writer');
-
-
-// --- Exports
-
-module.exports = {
-
- Reader: Reader,
-
- Writer: Writer
-
-};
-
-for (var t in types) {
- if (types.hasOwnProperty(t))
- module.exports[t] = types[t];
-}
-for (var e in errors) {
- if (errors.hasOwnProperty(e))
- module.exports[e] = errors[e];
-}
diff --git a/deps/npm/node_modules/asn1/lib/ber/reader.js b/deps/npm/node_modules/asn1/lib/ber/reader.js
deleted file mode 100644
index 8a7e4ca0184..00000000000
--- a/deps/npm/node_modules/asn1/lib/ber/reader.js
+++ /dev/null
@@ -1,262 +0,0 @@
-// Copyright 2011 Mark Cavage <mcavage@gmail.com> All rights reserved.
-
-var assert = require('assert');
-var Buffer = require('safer-buffer').Buffer;
-
-var ASN1 = require('./types');
-var errors = require('./errors');
-
-
-// --- Globals
-
-var newInvalidAsn1Error = errors.newInvalidAsn1Error;
-
-
-
-// --- API
-
-function Reader(data) {
- if (!data || !Buffer.isBuffer(data))
- throw new TypeError('data must be a node Buffer');
-
- this._buf = data;
- this._size = data.length;
-
- // These hold the "current" state
- this._len = 0;
- this._offset = 0;
-}
-
-Object.defineProperty(Reader.prototype, 'length', {
- enumerable: true,
- get: function () { return (this._len); }
-});
-
-Object.defineProperty(Reader.prototype, 'offset', {
- enumerable: true,
- get: function () { return (this._offset); }
-});
-
-Object.defineProperty(Reader.prototype, 'remain', {
- get: function () { return (this._size - this._offset); }
-});
-
-Object.defineProperty(Reader.prototype, 'buffer', {
- get: function () { return (this._buf.slice(this._offset)); }
-});
-
-
-/**
- * Reads a single byte and advances offset; you can pass in `true` to make this
- * a "peek" operation (i.e., get the byte, but don't advance the offset).
- *
- * @param {Boolean} peek true means don't move offset.
- * @return {Number} the next byte, null if not enough data.
- */
-Reader.prototype.readByte = function (peek) {
- if (this._size - this._offset < 1)
- return null;
-
- var b = this._buf[this._offset] & 0xff;
-
- if (!peek)
- this._offset += 1;
-
- return b;
-};
-
-
-Reader.prototype.peek = function () {
- return this.readByte(true);
-};
-
-
-/**
- * Reads a (potentially) variable length off the BER buffer. This call is
- * not really meant to be called directly, as callers have to manipulate
- * the internal buffer afterwards.
- *
- * As a result of this call, you can call `Reader.length`, until the
- * next thing called that does a readLength.
- *
- * @return {Number} the amount of offset to advance the buffer.
- * @throws {InvalidAsn1Error} on bad ASN.1
- */
-Reader.prototype.readLength = function (offset) {
- if (offset === undefined)
- offset = this._offset;
-
- if (offset >= this._size)
- return null;
-
- var lenB = this._buf[offset++] & 0xff;
- if (lenB === null)
- return null;
-
- if ((lenB & 0x80) === 0x80) {
- lenB &= 0x7f;
-
- if (lenB === 0)
- throw newInvalidAsn1Error('Indefinite length not supported');
-
- if (lenB > 4)
- throw newInvalidAsn1Error('encoding too long');
-
- if (this._size - offset < lenB)
- return null;
-
- this._len = 0;
- for (var i = 0; i < lenB; i++)
- this._len = (this._len << 8) + (this._buf[offset++] & 0xff);
-
- } else {
- // Wasn't a variable length
- this._len = lenB;
- }
-
- return offset;
-};
-
-
-/**
- * Parses the next sequence in this BER buffer.
- *
- * To get the length of the sequence, call `Reader.length`.
- *
- * @return {Number} the sequence's tag.
- */
-Reader.prototype.readSequence = function (tag) {
- var seq = this.peek();
- if (seq === null)
- return null;
- if (tag !== undefined && tag !== seq)
- throw newInvalidAsn1Error('Expected 0x' + tag.toString(16) +
- ': got 0x' + seq.toString(16));
-
- var o = this.readLength(this._offset + 1); // stored in `length`
- if (o === null)
- return null;
-
- this._offset = o;
- return seq;
-};
-
-
-Reader.prototype.readInt = function () {
- return this._readTag(ASN1.Integer);
-};
-
-
-Reader.prototype.readBoolean = function () {
- return (this._readTag(ASN1.Boolean) === 0 ? false : true);
-};
-
-
-Reader.prototype.readEnumeration = function () {
- return this._readTag(ASN1.Enumeration);
-};
-
-
-Reader.prototype.readString = function (tag, retbuf) {
- if (!tag)
- tag = ASN1.OctetString;
-
- var b = this.peek();
- if (b === null)
- return null;
-
- if (b !== tag)
- throw newInvalidAsn1Error('Expected 0x' + tag.toString(16) +
- ': got 0x' + b.toString(16));
-
- var o = this.readLength(this._offset + 1); // stored in `length`
-
- if (o === null)
- return null;
-
- if (this.length > this._size - o)
- return null;
-
- this._offset = o;
-
- if (this.length === 0)
- return retbuf ? Buffer.alloc(0) : '';
-
- var str = this._buf.slice(this._offset, this._offset + this.length);
- this._offset += this.length;
-
- return retbuf ? str : str.toString('utf8');
-};
-
-Reader.prototype.readOID = function (tag) {
- if (!tag)
- tag = ASN1.OID;
-
- var b = this.readString(tag, true);
- if (b === null)
- return null;
-
- var values = [];
- var value = 0;
-
- for (var i = 0; i < b.length; i++) {
- var byte = b[i] & 0xff;
-
- value <<= 7;
- value += byte & 0x7f;
- if ((byte & 0x80) === 0) {
- values.push(value);
- value = 0;
- }
- }
-
- value = values.shift();
- values.unshift(value % 40);
- values.unshift((value / 40) >> 0);
-
- return values.join('.');
-};
-
-
-Reader.prototype._readTag = function (tag) {
- assert.ok(tag !== undefined);
-
- var b = this.peek();
-
- if (b === null)
- return null;
-
- if (b !== tag)
- throw newInvalidAsn1Error('Expected 0x' + tag.toString(16) +
- ': got 0x' + b.toString(16));
-
- var o = this.readLength(this._offset + 1); // stored in `length`
- if (o === null)
- return null;
-
- if (this.length > 4)
- throw newInvalidAsn1Error('Integer too long: ' + this.length);
-
- if (this.length > this._size - o)
- return null;
- this._offset = o;
-
- var fb = this._buf[this._offset];
- var value = 0;
-
- for (var i = 0; i < this.length; i++) {
- value <<= 8;
- value |= (this._buf[this._offset++] & 0xff);
- }
-
- if ((fb & 0x80) === 0x80 && i !== 4)
- value -= (1 << (i * 8));
-
- return value >> 0;
-};
-
-
-
-// --- Exported API
-
-module.exports = Reader;
diff --git a/deps/npm/node_modules/asn1/lib/ber/types.js b/deps/npm/node_modules/asn1/lib/ber/types.js
deleted file mode 100644
index 8aea000137c..00000000000
--- a/deps/npm/node_modules/asn1/lib/ber/types.js
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2011 Mark Cavage <mcavage@gmail.com> All rights reserved.
-
-
-module.exports = {
- EOC: 0,
- Boolean: 1,
- Integer: 2,
- BitString: 3,
- OctetString: 4,
- Null: 5,
- OID: 6,
- ObjectDescriptor: 7,
- External: 8,
- Real: 9, // float
- Enumeration: 10,
- PDV: 11,
- Utf8String: 12,
- RelativeOID: 13,
- Sequence: 16,
- Set: 17,
- NumericString: 18,
- PrintableString: 19,
- T61String: 20,
- VideotexString: 21,
- IA5String: 22,
- UTCTime: 23,
- GeneralizedTime: 24,
- GraphicString: 25,
- VisibleString: 26,
- GeneralString: 28,
- UniversalString: 29,
- CharacterString: 30,
- BMPString: 31,
- Constructor: 32,
- Context: 128
-};
diff --git a/deps/npm/node_modules/asn1/lib/ber/writer.js b/deps/npm/node_modules/asn1/lib/ber/writer.js
deleted file mode 100644
index 3515acf7940..00000000000
--- a/deps/npm/node_modules/asn1/lib/ber/writer.js
+++ /dev/null
@@ -1,317 +0,0 @@
-// Copyright 2011 Mark Cavage <mcavage@gmail.com> All rights reserved.
-
-var assert = require('assert');
-var Buffer = require('safer-buffer').Buffer;
-var ASN1 = require('./types');
-var errors = require('./errors');
-
-
-// --- Globals
-
-var newInvalidAsn1Error = errors.newInvalidAsn1Error;
-
-var DEFAULT_OPTS = {
- size: 1024,
- growthFactor: 8
-};
-
-
-// --- Helpers
-
-function merge(from, to) {
- assert.ok(from);
- assert.equal(typeof (from), 'object');
- assert.ok(to);
- assert.equal(typeof (to), 'object');
-
- var keys = Object.getOwnPropertyNames(from);
- keys.forEach(function (key) {
- if (to[key])
- return;
-
- var value = Object.getOwnPropertyDescriptor(from, key);
- Object.defineProperty(to, key, value);
- });
-
- return to;
-}
-
-
-
-// --- API
-
-function Writer(options) {
- options = merge(DEFAULT_OPTS, options || {});
-
- this._buf = Buffer.alloc(options.size || 1024);
- this._size = this._buf.length;
- this._offset = 0;
- this._options = options;
-
- // A list of offsets in the buffer where we need to insert
- // sequence tag/len pairs.
- this._seq = [];
-}
-
-Object.defineProperty(Writer.prototype, 'buffer', {
- get: function () {
- if (this._seq.length)
- throw newInvalidAsn1Error(this._seq.length + ' unended sequence(s)');
-
- return (this._buf.slice(0, this._offset));
- }
-});
-
-Writer.prototype.writeByte = function (b) {
- if (typeof (b) !== 'number')
- throw new TypeError('argument must be a Number');
-
- this._ensure(1);
- this._buf[this._offset++] = b;
-};
-
-
-Writer.prototype.writeInt = function (i, tag) {
- if (typeof (i) !== 'number')
- throw new TypeError('argument must be a Number');
- if (typeof (tag) !== 'number')
- tag = ASN1.Integer;
-
- var sz = 4;
-
- while ((((i & 0xff800000) === 0) || ((i & 0xff800000) === 0xff800000 >> 0)) &&
- (sz > 1)) {
- sz--;
- i <<= 8;
- }
-
- if (sz > 4)
- throw newInvalidAsn1Error('BER ints cannot be > 0xffffffff');
-
- this._ensure(2 + sz);
- this._buf[this._offset++] = tag;
- this._buf[this._offset++] = sz;
-
- while (sz-- > 0) {
- this._buf[this._offset++] = ((i & 0xff000000) >>> 24);
- i <<= 8;
- }
-
-};
-
-
-Writer.prototype.writeNull = function () {
- this.writeByte(ASN1.Null);
- this.writeByte(0x00);
-};
-
-
-Writer.prototype.writeEnumeration = function (i, tag) {
- if (typeof (i) !== 'number')
- throw new TypeError('argument must be a Number');
- if (typeof (tag) !== 'number')
- tag = ASN1.Enumeration;
-
- return this.writeInt(i, tag);
-};
-
-
-Writer.prototype.writeBoolean = function (b, tag) {
- if (typeof (b) !== 'boolean')
- throw new TypeError('argument must be a Boolean');
- if (typeof (tag) !== 'number')
- tag = ASN1.Boolean;
-
- this._ensure(3);
- this._buf[this._offset++] = tag;
- this._buf[this._offset++] = 0x01;
- this._buf[this._offset++] = b ? 0xff : 0x00;
-};
-
-
-Writer.prototype.writeString = function (s, tag) {
- if (typeof (s) !== 'string')
- throw new TypeError('argument must be a string (was: ' + typeof (s) + ')');
- if (typeof (tag) !== 'number')
- tag = ASN1.OctetString;
-
- var len = Buffer.byteLength(s);
- this.writeByte(tag);
- this.writeLength(len);
- if (len) {
- this._ensure(len);
- this._buf.write(s, this._offset);
- this._offset += len;
- }
-};
-
-
-Writer.prototype.writeBuffer = function (buf, tag) {
- if (typeof (tag) !== 'number')
- throw new TypeError('tag must be a number');
- if (!Buffer.isBuffer(buf))
- throw new TypeError('argument must be a buffer');
-
- this.writeByte(tag);
- this.writeLength(buf.length);
- this._ensure(buf.length);
- buf.copy(this._buf, this._offset, 0, buf.length);
- this._offset += buf.length;
-};
-
-
-Writer.prototype.writeStringArray = function (strings) {
- if ((!strings instanceof Array))
- throw new TypeError('argument must be an Array[String]');
-
- var self = this;
- strings.forEach(function (s) {
- self.writeString(s);
- });
-};
-
-// This is really to solve DER cases, but whatever for now
-Writer.prototype.writeOID = function (s, tag) {
- if (typeof (s) !== 'string')
- throw new TypeError('argument must be a string');
- if (typeof (tag) !== 'number')
- tag = ASN1.OID;
-
- if (!/^([0-9]+\.){3,}[0-9]+$/.test(s))
- throw new Error('argument is not a valid OID string');
-
- function encodeOctet(bytes, octet) {
- if (octet < 128) {
- bytes.push(octet);
- } else if (octet < 16384) {
- bytes.push((octet >>> 7) | 0x80);
- bytes.push(octet & 0x7F);
- } else if (octet < 2097152) {
- bytes.push((octet >>> 14) | 0x80);
- bytes.push(((octet >>> 7) | 0x80) & 0xFF);
- bytes.push(octet & 0x7F);
- } else if (octet < 268435456) {
- bytes.push((octet >>> 21) | 0x80);
- bytes.push(((octet >>> 14) | 0x80) & 0xFF);
- bytes.push(((octet >>> 7) | 0x80) & 0xFF);
- bytes.push(octet & 0x7F);
- } else {
- bytes.push(((octet >>> 28) | 0x80) & 0xFF);
- bytes.push(((octet >>> 21) | 0x80) & 0xFF);
- bytes.push(((octet >>> 14) | 0x80) & 0xFF);
- bytes.push(((octet >>> 7) | 0x80) & 0xFF);
- bytes.push(octet & 0x7F);
- }
- }
-
- var tmp = s.split('.');
- var bytes = [];
- bytes.push(parseInt(tmp[0], 10) * 40 + parseInt(tmp[1], 10));
- tmp.slice(2).forEach(function (b) {
- encodeOctet(bytes, parseInt(b, 10));
- });
-
- var self = this;
- this._ensure(2 + bytes.length);
- this.writeByte(tag);
- this.writeLength(bytes.length);
- bytes.forEach(function (b) {
- self.writeByte(b);
- });
-};
-
-
-Writer.prototype.writeLength = function (len) {
- if (typeof (len) !== 'number')
- throw new TypeError('argument must be a Number');
-
- this._ensure(4);
-
- if (len <= 0x7f) {
- this._buf[this._offset++] = len;
- } else if (len <= 0xff) {
- this._buf[this._offset++] = 0x81;
- this._buf[this._offset++] = len;
- } else if (len <= 0xffff) {
- this._buf[this._offset++] = 0x82;
- this._buf[this._offset++] = len >> 8;
- this._buf[this._offset++] = len;
- } else if (len <= 0xffffff) {
- this._buf[this._offset++] = 0x83;
- this._buf[this._offset++] = len >> 16;
- this._buf[this._offset++] = len >> 8;
- this._buf[this._offset++] = len;
- } else {
- throw newInvalidAsn1Error('Length too long (> 4 bytes)');
- }
-};
-
-Writer.prototype.startSequence = function (tag) {
- if (typeof (tag) !== 'number')
- tag = ASN1.Sequence | ASN1.Constructor;
-
- this.writeByte(tag);
- this._seq.push(this._offset);
- this._ensure(3);
- this._offset += 3;
-};
-
-
-Writer.prototype.endSequence = function () {
- var seq = this._seq.pop();
- var start = seq + 3;
- var len = this._offset - start;
-
- if (len <= 0x7f) {
- this._shift(start, len, -2);
- this._buf[seq] = len;
- } else if (len <= 0xff) {
- this._shift(start, len, -1);
- this._buf[seq] = 0x81;
- this._buf[seq + 1] = len;
- } else if (len <= 0xffff) {
- this._buf[seq] = 0x82;
- this._buf[seq + 1] = len >> 8;
- this._buf[seq + 2] = len;
- } else if (len <= 0xffffff) {
- this._shift(start, len, 1);
- this._buf[seq] = 0x83;
- this._buf[seq + 1] = len >> 16;
- this._buf[seq + 2] = len >> 8;
- this._buf[seq + 3] = len;
- } else {
- throw newInvalidAsn1Error('Sequence too long');
- }
-};
-
-
-Writer.prototype._shift = function (start, len, shift) {
- assert.ok(start !== undefined);
- assert.ok(len !== undefined);
- assert.ok(shift);
-
- this._buf.copy(this._buf, start + shift, start, start + len);
- this._offset += shift;
-};
-
-Writer.prototype._ensure = function (len) {
- assert.ok(len);
-
- if (this._size - this._offset < len) {
- var sz = this._size * this._options.growthFactor;
- if (sz - this._offset < len)
- sz += len;
-
- var buf = Buffer.alloc(sz);
-
- this._buf.copy(buf, 0, 0, this._offset);
- this._buf = buf;
- this._size = sz;
- }
-};
-
-
-
-// --- Exported API
-
-module.exports = Writer;
diff --git a/deps/npm/node_modules/asn1/lib/index.js b/deps/npm/node_modules/asn1/lib/index.js
deleted file mode 100644
index ede3ab23266..00000000000
--- a/deps/npm/node_modules/asn1/lib/index.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright 2011 Mark Cavage <mcavage@gmail.com> All rights reserved.
-
-// If you have no idea what ASN.1 or BER is, see this:
-// ftp://ftp.rsa.com/pub/pkcs/ascii/layman.asc
-
-var Ber = require('./ber/index');
-
-
-
-// --- Exported API
-
-module.exports = {
-
- Ber: Ber,
-
- BerReader: Ber.Reader,
-
- BerWriter: Ber.Writer
-
-};
diff --git a/deps/npm/node_modules/asn1/package.json b/deps/npm/node_modules/asn1/package.json
deleted file mode 100644
index 2b51c753c97..00000000000
--- a/deps/npm/node_modules/asn1/package.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "author": "Joyent (joyent.com)",
- "contributors": [
- "Mark Cavage <mcavage@gmail.com>",
- "David Gwynne <loki@animata.net>",
- "Yunong Xiao <yunong@joyent.com>",
- "Alex Wilson <alex.wilson@joyent.com>"
- ],
- "name": "asn1",
- "description": "Contains parsers and serializers for ASN.1 (currently BER only)",
- "version": "0.2.4",
- "repository": {
- "type": "git",
- "url": "git://github.com/joyent/node-asn1.git"
- },
- "main": "lib/index.js",
- "dependencies": {
- "safer-buffer": "~2.1.0"
- },
- "devDependencies": {
- "istanbul": "^0.3.6",
- "faucet": "0.0.1",
- "tape": "^3.5.0",
- "eslint": "2.13.1",
- "eslint-plugin-joyent": "~1.3.0"
- },
- "scripts": {
- "test": "./node_modules/.bin/tape ./test/ber/*.test.js"
- },
- "license": "MIT"
-}
diff --git a/deps/npm/node_modules/assert-plus/AUTHORS b/deps/npm/node_modules/assert-plus/AUTHORS
deleted file mode 100644
index 1923524fe40..00000000000
--- a/deps/npm/node_modules/assert-plus/AUTHORS
+++ /dev/null
@@ -1,6 +0,0 @@
-Dave Eddy <dave@daveeddy.com>
-Fred Kuo <fred.kuo@joyent.com>
-Lars-Magnus Skog <ralphtheninja@riseup.net>
-Mark Cavage <mcavage@gmail.com>
-Patrick Mooney <pmooney@pfmooney.com>
-Rob Gulewich <robert.gulewich@joyent.com>
diff --git a/deps/npm/node_modules/assert-plus/CHANGES.md b/deps/npm/node_modules/assert-plus/CHANGES.md
deleted file mode 100644
index 57d92bfdb9d..00000000000
--- a/deps/npm/node_modules/assert-plus/CHANGES.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# assert-plus Changelog
-
-## 1.0.0
-
-- *BREAKING* assert.number (and derivatives) now accept Infinity as valid input
-- Add assert.finite check. Previous assert.number callers should use this if
- they expect Infinity inputs to throw.
-
-## 0.2.0
-
-- Fix `assert.object(null)` so it throws
-- Fix optional/arrayOf exports for non-type-of asserts
-- Add optiona/arrayOf exports for Stream/Date/Regex/uuid
-- Add basic unit test coverage
diff --git a/deps/npm/node_modules/assert-plus/assert.js b/deps/npm/node_modules/assert-plus/assert.js
deleted file mode 100644
index 26f944eec30..00000000000
--- a/deps/npm/node_modules/assert-plus/assert.js
+++ /dev/null
@@ -1,211 +0,0 @@
-// Copyright (c) 2012, Mark Cavage. All rights reserved.
-// Copyright 2015 Joyent, Inc.
-
-var assert = require('assert');
-var Stream = require('stream').Stream;
-var util = require('util');
-
-
-///--- Globals
-
-/* JSSTYLED */
-var UUID_REGEXP = /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/;
-
-
-///--- Internal
-
-function _capitalize(str) {
- return (str.charAt(0).toUpperCase() + str.slice(1));
-}
-
-function _toss(name, expected, oper, arg, actual) {
- throw new assert.AssertionError({
- message: util.format('%s (%s) is required', name, expected),
- actual: (actual === undefined) ? typeof (arg) : actual(arg),
- expected: expected,
- operator: oper || '===',
- stackStartFunction: _toss.caller
- });
-}
-
-function _getClass(arg) {
- return (Object.prototype.toString.call(arg).slice(8, -1));
-}
-
-function noop() {
- // Why even bother with asserts?
-}
-
-
-///--- Exports
-
-var types = {
- bool: {
- check: function (arg) { return typeof (arg) === 'boolean'; }
- },
- func: {
- check: function (arg) { return typeof (arg) === 'function'; }
- },
- string: {
- check: function (arg) { return typeof (arg) === 'string'; }
- },
- object: {
- check: function (arg) {
- return typeof (arg) === 'object' && arg !== null;
- }
- },
- number: {
- check: function (arg) {
- return typeof (arg) === 'number' && !isNaN(arg);
- }
- },
- finite: {
- check: function (arg) {
- return typeof (arg) === 'number' && !isNaN(arg) && isFinite(arg);
- }
- },
- buffer: {
- check: function (arg) { return Buffer.isBuffer(arg); },
- operator: 'Buffer.isBuffer'
- },
- array: {
- check: function (arg) { return Array.isArray(arg); },
- operator: 'Array.isArray'
- },
- stream: {
- check: function (arg) { return arg instanceof Stream; },
- operator: 'instanceof',
- actual: _getClass
- },
- date: {
- check: function (arg) { return arg instanceof Date; },
- operator: 'instanceof',
- actual: _getClass
- },
- regexp: {
- check: function (arg) { return arg instanceof RegExp; },
- operator: 'instanceof',
- actual: _getClass
- },
- uuid: {
- check: function (arg) {
- return typeof (arg) === 'string' && UUID_REGEXP.test(arg);
- },
- operator: 'isUUID'
- }
-};
-
-function _setExports(ndebug) {
- var keys = Object.keys(types);
- var out;
-
- /* re-export standard assert */
- if (process.env.NODE_NDEBUG) {
- out = noop;
- } else {
- out = function (arg, msg) {
- if (!arg) {
- _toss(msg, 'true', arg);
- }
- };
- }
-
- /* standard checks */
- keys.forEach(function (k) {
- if (ndebug) {
- out[k] = noop;
- return;
- }
- var type = types[k];
- out[k] = function (arg, msg) {
- if (!type.check(arg)) {
- _toss(msg, k, type.operator, arg, type.actual);
- }
- };
- });
-
- /* optional checks */
- keys.forEach(function (k) {
- var name = 'optional' + _capitalize(k);
- if (ndebug) {
- out[name] = noop;
- return;
- }
- var type = types[k];
- out[name] = function (arg, msg) {
- if (arg === undefined || arg === null) {
- return;
- }
- if (!type.check(arg)) {
- _toss(msg, k, type.operator, arg, type.actual);
- }
- };
- });
-
- /* arrayOf checks */
- keys.forEach(function (k) {
- var name = 'arrayOf' + _capitalize(k);
- if (ndebug) {
- out[name] = noop;
- return;
- }
- var type = types[k];
- var expected = '[' + k + ']';
- out[name] = function (arg, msg) {
- if (!Array.isArray(arg)) {
- _toss(msg, expected, type.operator, arg, type.actual);
- }
- var i;
- for (i = 0; i < arg.length; i++) {
- if (!type.check(arg[i])) {
- _toss(msg, expected, type.operator, arg, type.actual);
- }
- }
- };
- });
-
- /* optionalArrayOf checks */
- keys.forEach(function (k) {
- var name = 'optionalArrayOf' + _capitalize(k);
- if (ndebug) {
- out[name] = noop;
- return;
- }
- var type = types[k];
- var expected = '[' + k + ']';
- out[name] = function (arg, msg) {
- if (arg === undefined || arg === null) {
- return;
- }
- if (!Array.isArray(arg)) {
- _toss(msg, expected, type.operator, arg, type.actual);
- }
- var i;
- for (i = 0; i < arg.length; i++) {
- if (!type.check(arg[i])) {
- _toss(msg, expected, type.operator, arg, type.actual);
- }
- }
- };
- });
-
- /* re-export built-in assertions */
- Object.keys(assert).forEach(function (k) {
- if (k === 'AssertionError') {
- out[k] = assert[k];
- return;
- }
- if (ndebug) {
- out[k] = noop;
- return;
- }
- out[k] = assert[k];
- });
-
- /* export ourselves (for unit tests _only_) */
- out._setExports = _setExports;
-
- return out;
-}
-
-module.exports = _setExports(process.env.NODE_NDEBUG);
diff --git a/deps/npm/node_modules/assert-plus/package.json b/deps/npm/node_modules/assert-plus/package.json
deleted file mode 100644
index 40d6a5cd8f3..00000000000
--- a/deps/npm/node_modules/assert-plus/package.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "author": "Mark Cavage <mcavage@gmail.com>",
- "name": "assert-plus",
- "description": "Extra assertions on top of node's assert module",
- "version": "1.0.0",
- "license": "MIT",
- "main": "./assert.js",
- "devDependencies": {
- "tape": "4.2.2",
- "faucet": "0.0.1"
- },
- "optionalDependencies": {},
- "scripts": {
- "test": "./node_modules/.bin/tape tests/*.js | ./node_modules/.bin/faucet"
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/mcavage/node-assert-plus.git"
- },
- "engines": {
- "node": ">=0.8"
- }
-}
diff --git a/deps/npm/node_modules/asynckit/LICENSE b/deps/npm/node_modules/asynckit/LICENSE
deleted file mode 100644
index c9eca5dd999..00000000000
--- a/deps/npm/node_modules/asynckit/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016 Alex Indigo
-
-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/deps/npm/node_modules/asynckit/bench.js b/deps/npm/node_modules/asynckit/bench.js
deleted file mode 100644
index c612f1a55fd..00000000000
--- a/deps/npm/node_modules/asynckit/bench.js
+++ /dev/null
@@ -1,76 +0,0 @@
-/* eslint no-console: "off" */
-
-var asynckit = require('./')
- , async = require('async')
- , assert = require('assert')
- , expected = 0
- ;
-
-var Benchmark = require('benchmark');
-var suite = new Benchmark.Suite;
-
-var source = [];
-for (var z = 1; z < 100; z++)
-{
- source.push(z);
- expected += z;
-}
-
-suite
-// add tests
-
-.add('async.map', function(deferred)
-{
- var total = 0;
-
- async.map(source,
- function(i, cb)
- {
- setImmediate(function()
- {
- total += i;
- cb(null, total);
- });
- },
- function(err, result)
- {
- assert.ifError(err);
- assert.equal(result[result.length - 1], expected);
- deferred.resolve();
- });
-}, {'defer': true})
-
-
-.add('asynckit.parallel', function(deferred)
-{
- var total = 0;
-
- asynckit.parallel(source,
- function(i, cb)
- {
- setImmediate(function()
- {
- total += i;
- cb(null, total);
- });
- },
- function(err, result)
- {
- assert.ifError(err);
- assert.equal(result[result.length - 1], expected);
- deferred.resolve();
- });
-}, {'defer': true})
-
-
-// add listeners
-.on('cycle', function(ev)
-{
- console.log(String(ev.target));
-})
-.on('complete', function()
-{
- console.log('Fastest is ' + this.filter('fastest').map('name'));
-})
-// run async
-.run({ 'async': true });
diff --git a/deps/npm/node_modules/asynckit/index.js b/deps/npm/node_modules/asynckit/index.js
deleted file mode 100644
index 455f9454ee6..00000000000
--- a/deps/npm/node_modules/asynckit/index.js
+++ /dev/null
@@ -1,6 +0,0 @@
-module.exports =
-{
- parallel : require('./parallel.js'),
- serial : require('./serial.js'),
- serialOrdered : require('./serialOrdered.js')
-};
diff --git a/deps/npm/node_modules/asynckit/lib/abort.js b/deps/npm/node_modules/asynckit/lib/abort.js
deleted file mode 100644
index 114367e5fbf..00000000000
--- a/deps/npm/node_modules/asynckit/lib/abort.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// API
-module.exports = abort;
-
-/**
- * Aborts leftover active jobs
- *
- * @param {object} state - current state object
- */
-function abort(state)
-{
- Object.keys(state.jobs).forEach(clean.bind(state));
-
- // reset leftover jobs
- state.jobs = {};
-}
-
-/**
- * Cleans up leftover job by invoking abort function for the provided job id
- *
- * @this state
- * @param {string|number} key - job id to abort
- */
-function clean(key)
-{
- if (typeof this.jobs[key] == 'function')
- {
- this.jobs[key]();
- }
-}
diff --git a/deps/npm/node_modules/asynckit/lib/async.js b/deps/npm/node_modules/asynckit/lib/async.js
deleted file mode 100644
index 7f1288a4ce9..00000000000
--- a/deps/npm/node_modules/asynckit/lib/async.js
+++ /dev/null
@@ -1,34 +0,0 @@
-var defer = require('./defer.js');
-
-// API
-module.exports = async;
-
-/**
- * Runs provided callback asynchronously
- * even if callback itself is not
- *
- * @param {function} callback - callback to invoke
- * @returns {function} - augmented callback
- */
-function async(callback)
-{
- var isAsync = false;
-
- // check if async happened
- defer(function() { isAsync = true; });
-
- return function async_callback(err, result)
- {
- if (isAsync)
- {
- callback(err, result);
- }
- else
- {
- defer(function nextTick_callback()
- {
- callback(err, result);
- });
- }
- };
-}
diff --git a/deps/npm/node_modules/asynckit/lib/defer.js b/deps/npm/node_modules/asynckit/lib/defer.js
deleted file mode 100644
index b67110c7ad6..00000000000
--- a/deps/npm/node_modules/asynckit/lib/defer.js
+++ /dev/null
@@ -1,26 +0,0 @@
-module.exports = defer;
-
-/**
- * Runs provided function on next iteration of the event loop
- *
- * @param {function} fn - function to run
- */
-function defer(fn)
-{
- var nextTick = typeof setImmediate == 'function'
- ? setImmediate
- : (
- typeof process == 'object' && typeof process.nextTick == 'function'
- ? process.nextTick
- : null
- );
-
- if (nextTick)
- {
- nextTick(fn);
- }
- else
- {
- setTimeout(fn, 0);
- }
-}
diff --git a/deps/npm/node_modules/asynckit/lib/iterate.js b/deps/npm/node_modules/asynckit/lib/iterate.js
deleted file mode 100644
index 5d2839a590b..00000000000
--- a/deps/npm/node_modules/asynckit/lib/iterate.js
+++ /dev/null
@@ -1,75 +0,0 @@
-var async = require('./async.js')
- , abort = require('./abort.js')
- ;
-
-// API
-module.exports = iterate;
-
-/**
- * Iterates over each job object
- *
- * @param {array|object} list - array or object (named list) to iterate over
- * @param {function} iterator - iterator to run
- * @param {object} state - current job status
- * @param {function} callback - invoked when all elements processed
- */
-function iterate(list, iterator, state, callback)
-{
- // store current index
- var key = state['keyedList'] ? state['keyedList'][state.index] : state.index;
-
- state.jobs[key] = runJob(iterator, key, list[key], function(error, output)
- {
- // don't repeat yourself
- // skip secondary callbacks
- if (!(key in state.jobs))
- {
- return;
- }
-
- // clean up jobs
- delete state.jobs[key];
-
- if (error)
- {
- // don't process rest of the results
- // stop still active jobs
- // and reset the list
- abort(state);
- }
- else
- {
- state.results[key] = output;
- }
-
- // return salvaged results
- callback(error, state.results);
- });
-}
-
-/**
- * Runs iterator over provided job element
- *
- * @param {function} iterator - iterator to invoke
- * @param {string|number} key - key/index of the element in the list of jobs
- * @param {mixed} item - job description
- * @param {function} callback - invoked after iterator is done with the job
- * @returns {function|mixed} - job abort function or something else
- */
-function runJob(iterator, key, item, callback)
-{
- var aborter;
-
- // allow shortcut if iterator expects only two arguments
- if (iterator.length == 2)
- {
- aborter = iterator(item, async(callback));
- }
- // otherwise go with full three arguments
- else
- {
- aborter = iterator(item, key, async(callback));
- }
-
- return aborter;
-}
diff --git a/deps/npm/node_modules/asynckit/lib/readable_asynckit.js b/deps/npm/node_modules/asynckit/lib/readable_asynckit.js
deleted file mode 100644
index 78ad240f0af..00000000000
--- a/deps/npm/node_modules/asynckit/lib/readable_asynckit.js
+++ /dev/null
@@ -1,91 +0,0 @@
-var streamify = require('./streamify.js')
- , defer = require('./defer.js')
- ;
-
-// API
-module.exports = ReadableAsyncKit;
-
-/**
- * Base constructor for all streams
- * used to hold properties/methods
- */
-function ReadableAsyncKit()
-{
- ReadableAsyncKit.super_.apply(this, arguments);
-
- // list of active jobs
- this.jobs = {};
-
- // add stream methods
- this.destroy = destroy;
- this._start = _start;
- this._read = _read;
-}
-
-/**
- * Destroys readable stream,
- * by aborting outstanding jobs
- *
- * @returns {void}
- */
-function destroy()
-{
- if (this.destroyed)
- {
- return;
- }
-
- this.destroyed = true;
-
- if (typeof this.terminator == 'function')
- {
- this.terminator();
- }
-}
-
-/**
- * Starts provided jobs in async manner
- *
- * @private
- */
-function _start()
-{
- // first argument – runner function
- var runner = arguments[0]
- // take away first argument
- , args = Array.prototype.slice.call(arguments, 1)
- // second argument - input data
- , input = args[0]
- // last argument - result callback
- , endCb = streamify.callback.call(this, args[args.length - 1])
- ;
-
- args[args.length - 1] = endCb;
- // third argument - iterator
- args[1] = streamify.iterator.call(this, args[1]);
-
- // allow time for proper setup
- defer(function()
- {
- if (!this.destroyed)
- {
- this.terminator = runner.apply(null, args);
- }
- else
- {
- endCb(null, Array.isArray(input) ? [] : {});
- }
- }.bind(this));
-}
-
-
-/**
- * Implement _read to comply with Readable streams
- * Doesn't really make sense for flowing object mode
- *
- * @private
- */
-function _read()
-{
-
-}
diff --git a/deps/npm/node_modules/asynckit/lib/readable_parallel.js b/deps/npm/node_modules/asynckit/lib/readable_parallel.js
deleted file mode 100644
index 5d2929f7a67..00000000000
--- a/deps/npm/node_modules/asynckit/lib/readable_parallel.js
+++ /dev/null
@@ -1,25 +0,0 @@
-var parallel = require('../parallel.js');
-
-// API
-module.exports = ReadableParallel;
-
-/**
- * Streaming wrapper to `asynckit.parallel`
- *
- * @param {array|object} list - array or object (named list) to iterate over
- * @param {function} iterator - iterator to run
- * @param {function} callback - invoked when all elements processed
- * @returns {stream.Readable#}
- */
-function ReadableParallel(list, iterator, callback)
-{
- if (!(this instanceof ReadableParallel))
- {
- return new ReadableParallel(list, iterator, callback);
- }
-
- // turn on object mode
- ReadableParallel.super_.call(this, {objectMode: true});
-
- this._start(parallel, list, iterator, callback);
-}
diff --git a/deps/npm/node_modules/asynckit/lib/readable_serial.js b/deps/npm/node_modules/asynckit/lib/readable_serial.js
deleted file mode 100644
index 78226982041..00000000000
--- a/deps/npm/node_modules/asynckit/lib/readable_serial.js
+++ /dev/null
@@ -1,25 +0,0 @@
-var serial = require('../serial.js');
-
-// API
-module.exports = ReadableSerial;
-
-/**
- * Streaming wrapper to `asynckit.serial`
- *
- * @param {array|object} list - array or object (named list) to iterate over
- * @param {function} iterator - iterator to run
- * @param {function} callback - invoked when all elements processed
- * @returns {stream.Readable#}
- */
-function ReadableSerial(list, iterator, callback)
-{
- if (!(this instanceof ReadableSerial))
- {
- return new ReadableSerial(list, iterator, callback);
- }
-
- // turn on object mode
- ReadableSerial.super_.call(this, {objectMode: true});
-
- this._start(serial, list, iterator, callback);
-}
diff --git a/deps/npm/node_modules/asynckit/lib/readable_serial_ordered.js b/deps/npm/node_modules/asynckit/lib/readable_serial_ordered.js
deleted file mode 100644
index 3de89c47291..00000000000
--- a/deps/npm/node_modules/asynckit/lib/readable_serial_ordered.js
+++ /dev/null
@@ -1,29 +0,0 @@
-var serialOrdered = require('../serialOrdered.js');
-
-// API
-module.exports = ReadableSerialOrdered;
-// expose sort helpers
-module.exports.ascending = serialOrdered.ascending;
-module.exports.descending = serialOrdered.descending;
-
-/**
- * Streaming wrapper to `asynckit.serialOrdered`
- *
- * @param {array|object} list - array or object (named list) to iterate over
- * @param {function} iterator - iterator to run
- * @param {function} sortMethod - custom sort function
- * @param {function} callback - invoked when all elements processed
- * @returns {stream.Readable#}
- */
-function ReadableSerialOrdered(list, iterator, sortMethod, callback)
-{
- if (!(this instanceof ReadableSerialOrdered))
- {
- return new ReadableSerialOrdered(list, iterator, sortMethod, callback);
- }
-
- // turn on object mode
- ReadableSerialOrdered.super_.call(this, {objectMode: true});
-
- this._start(serialOrdered, list, iterator, sortMethod, callback);
-}
diff --git a/deps/npm/node_modules/asynckit/lib/state.js b/deps/npm/node_modules/asynckit/lib/state.js
deleted file mode 100644
index cbea7ad8f6b..00000000000
--- a/deps/npm/node_modules/asynckit/lib/state.js
+++ /dev/null
@@ -1,37 +0,0 @@
-// API
-module.exports = state;
-
-/**
- * Creates initial state object
- * for iteration over list
- *
- * @param {array|object} list - list to iterate over
- * @param {function|null} sortMethod - function to use for keys sort,
- * or `null` to keep them as is
- * @returns {object} - initial state object
- */
-function state(list, sortMethod)
-{
- var isNamedList = !Array.isArray(list)
- , initState =
- {
- index : 0,
- keyedList: isNamedList || sortMethod ? Object.keys(list) : null,
- jobs : {},
- results : isNamedList ? {} : [],
- size : isNamedList ? Object.keys(list).length : list.length
- }
- ;
-
- if (sortMethod)
- {
- // sort array keys based on it's values
- // sort object's keys just on own merit
- initState.keyedList.sort(isNamedList ? sortMethod : function(a, b)
- {
- return sortMethod(list[a], list[b]);
- });
- }
-
- return initState;
-}
diff --git a/deps/npm/node_modules/asynckit/lib/streamify.js b/deps/npm/node_modules/asynckit/lib/streamify.js
deleted file mode 100644
index f56a1c92bf5..00000000000
--- a/deps/npm/node_modules/asynckit/lib/streamify.js
+++ /dev/null
@@ -1,141 +0,0 @@
-var async = require('./async.js');
-
-// API
-module.exports = {
- iterator: wrapIterator,
- callback: wrapCallback
-};
-
-/**
- * Wraps iterators with long signature
- *
- * @this ReadableAsyncKit#
- * @param {function} iterator - function to wrap
- * @returns {function} - wrapped function
- */
-function wrapIterator(iterator)
-{
- var stream = this;
-
- return function(item, key, cb)
- {
- var aborter
- , wrappedCb = async(wrapIteratorCallback.call(stream, cb, key))
- ;
-
- stream.jobs[key] = wrappedCb;
-
- // it's either shortcut (item, cb)
- if (iterator.length == 2)
- {
- aborter = iterator(item, wrappedCb);
- }
- // or long format (item, key, cb)
- else
- {
- aborter = iterator(item, key, wrappedCb);
- }
-
- return aborter;
- };
-}
-
-/**
- * Wraps provided callback function
- * allowing to execute snitch function before
- * real callback
- *
- * @this ReadableAsyncKit#
- * @param {function} callback - function to wrap
- * @returns {function} - wrapped function
- */
-function wrapCallback(callback)
-{
- var stream = this;
-
- var wrapped = function(error, result)
- {
- return finisher.call(stream, error, result, callback);
- };
-
- return wrapped;
-}
-
-/**
- * Wraps provided iterator callback function
- * makes sure snitch only called once,
- * but passes secondary calls to the original callback
- *
- * @this ReadableAsyncKit#
- * @param {function} callback - callback to wrap
- * @param {number|string} key - iteration key
- * @returns {function} wrapped callback
- */
-function wrapIteratorCallback(callback, key)
-{
- var stream = this;
-
- return function(error, output)
- {
- // don't repeat yourself
- if (!(key in stream.jobs))
- {
- callback(error, output);
- return;
- }
-
- // clean up jobs
- delete stream.jobs[key];
-
- return streamer.call(stream, error, {key: key, value: output}, callback);
- };
-}
-
-/**
- * Stream wrapper for iterator callback
- *
- * @this ReadableAsyncKit#
- * @param {mixed} error - error response
- * @param {mixed} output - iterator output
- * @param {function} callback - callback that expects iterator results
- */
-function streamer(error, output, callback)
-{
- if (error && !this.error)
- {
- this.error = error;
- this.pause();
- this.emit('error', error);
- // send back value only, as expected
- callback(error, output && output.value);
- return;
- }
-
- // stream stuff
- this.push(output);
-
- // back to original track
- // send back value only, as expected
- callback(error, output && output.value);
-}
-
-/**
- * Stream wrapper for finishing callback
- *
- * @this ReadableAsyncKit#
- * @param {mixed} error - error response
- * @param {mixed} output - iterator output
- * @param {function} callback - callback that expects final results
- */
-function finisher(error, output, callback)
-{
- // signal end of the stream
- // only for successfully finished streams
- if (!error)
- {
- this.push(null);
- }
-
- // back to original track
- callback(error, output);
-}
diff --git a/deps/npm/node_modules/asynckit/lib/terminator.js b/deps/npm/node_modules/asynckit/lib/terminator.js
deleted file mode 100644
index d6eb99219f3..00000000000
--- a/deps/npm/node_modules/asynckit/lib/terminator.js
+++ /dev/null
@@ -1,29 +0,0 @@
-var abort = require('./abort.js')
- , async = require('./async.js')
- ;
-
-// API
-module.exports = terminator;
-
-/**
- * Terminates jobs in the attached state context
- *
- * @this AsyncKitState#
- * @param {function} callback - final callback to invoke after termination
- */
-function terminator(callback)
-{
- if (!Object.keys(this.jobs).length)
- {
- return;
- }
-
- // fast forward iteration index
- this.index = this.size;
-
- // abort jobs
- abort(this);
-
- // send back results we have so far
- async(callback)(null, this.results);
-}
diff --git a/deps/npm/node_modules/asynckit/package.json b/deps/npm/node_modules/asynckit/package.json
deleted file mode 100644
index 51147d6569a..00000000000
--- a/deps/npm/node_modules/asynckit/package.json
+++ /dev/null
@@ -1,63 +0,0 @@
-{
- "name": "asynckit",
- "version": "0.4.0",
- "description": "Minimal async jobs utility library, with streams support",
- "main": "index.js",
- "scripts": {
- "clean": "rimraf coverage",
- "lint": "eslint *.js lib/*.js test/*.js",
- "test": "istanbul cover --reporter=json tape -- 'test/test-*.js' | tap-spec",
- "win-test": "tape test/test-*.js",
- "browser": "browserify -t browserify-istanbul test/lib/browserify_adjustment.js test/test-*.js | obake --coverage | tap-spec",
- "report": "istanbul report",
- "size": "browserify index.js | size-table asynckit",
- "debug": "tape test/test-*.js"
- },
- "pre-commit": [
- "clean",
- "lint",
- "test",
- "browser",
- "report",
- "size"
- ],
- "repository": {
- "type": "git",
- "url": "git+https://github.com/alexindigo/asynckit.git"
- },
- "keywords": [
- "async",
- "jobs",
- "parallel",
- "serial",
- "iterator",
- "array",
- "object",
- "stream",
- "destroy",
- "terminate",
- "abort"
- ],
- "author": "Alex Indigo <iam@alexindigo.com>",
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/alexindigo/asynckit/issues"
- },
- "homepage": "https://github.com/alexindigo/asynckit#readme",
- "devDependencies": {
- "browserify": "^13.0.0",
- "browserify-istanbul": "^2.0.0",
- "coveralls": "^2.11.9",
- "eslint": "^2.9.0",
- "istanbul": "^0.4.3",
- "obake": "^0.1.2",
- "phantomjs-prebuilt": "^2.1.7",
- "pre-commit": "^1.1.3",
- "reamde": "^1.1.0",
- "rimraf": "^2.5.2",
- "size-table": "^0.2.0",
- "tap-spec": "^4.1.1",
- "tape": "^4.5.1"
- },
- "dependencies": {}
-}
diff --git a/deps/npm/node_modules/asynckit/parallel.js b/deps/npm/node_modules/asynckit/parallel.js
deleted file mode 100644
index 3c50344d851..00000000000
--- a/deps/npm/node_modules/asynckit/parallel.js
+++ /dev/null
@@ -1,43 +0,0 @@
-var iterate = require('./lib/iterate.js')
- , initState = require('./lib/state.js')
- , terminator = require('./lib/terminator.js')
- ;
-
-// Public API
-module.exports = parallel;
-
-/**
- * Runs iterator over provided array elements in parallel
- *
- * @param {array|object} list - array or object (named list) to iterate over
- * @param {function} iterator - iterator to run
- * @param {function} callback - invoked when all elements processed
- * @returns {function} - jobs terminator
- */
-function parallel(list, iterator, callback)
-{
- var state = initState(list);
-
- while (state.index < (state['keyedList'] || list).length)
- {
- iterate(list, iterator, state, function(error, result)
- {
- if (error)
- {
- callback(error, result);
- return;
- }
-
- // looks like it's the last one
- if (Object.keys(state.jobs).length === 0)
- {
- callback(null, state.results);
- return;
- }
- });
-
- state.index++;
- }
-
- return terminator.bind(state, callback);
-}
diff --git a/deps/npm/node_modules/asynckit/serial.js b/deps/npm/node_modules/asynckit/serial.js
deleted file mode 100644
index 6cd949a6777..00000000000
--- a/deps/npm/node_modules/asynckit/serial.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var serialOrdered = require('./serialOrdered.js');
-
-// Public API
-module.exports = serial;
-
-/**
- * Runs iterator over provided array elements in series
- *
- * @param {array|object} list - array or object (named list) to iterate over
- * @param {function} iterator - iterator to run
- * @param {function} callback - invoked when all elements processed
- * @returns {function} - jobs terminator
- */
-function serial(list, iterator, callback)
-{
- return serialOrdered(list, iterator, null, callback);
-}
diff --git a/deps/npm/node_modules/asynckit/serialOrdered.js b/deps/npm/node_modules/asynckit/serialOrdered.js
deleted file mode 100644
index 607eafea56c..00000000000
--- a/deps/npm/node_modules/asynckit/serialOrdered.js
+++ /dev/null
@@ -1,75 +0,0 @@
-var iterate = require('./lib/iterate.js')
- , initState = require('./lib/state.js')
- , terminator = require('./lib/terminator.js')
- ;
-
-// Public API
-module.exports = serialOrdered;
-// sorting helpers
-module.exports.ascending = ascending;
-module.exports.descending = descending;
-
-/**
- * Runs iterator over provided sorted array elements in series
- *
- * @param {array|object} list - array or object (named list) to iterate over
- * @param {function} iterator - iterator to run
- * @param {function} sortMethod - custom sort function
- * @param {function} callback - invoked when all elements processed
- * @returns {function} - jobs terminator
- */
-function serialOrdered(list, iterator, sortMethod, callback)
-{
- var state = initState(list, sortMethod);
-
- iterate(list, iterator, state, function iteratorHandler(error, result)
- {
- if (error)
- {
- callback(error, result);
- return;
- }
-
- state.index++;
-
- // are we there yet?
- if (state.index < (state['keyedList'] || list).length)
- {
- iterate(list, iterator, state, iteratorHandler);
- return;
- }
-
- // done here
- callback(null, state.results);
- });
-
- return terminator.bind(state, callback);
-}
-
-/*
- * -- Sort methods
- */
-
-/**
- * sort helper to sort array elements in ascending order
- *
- * @param {mixed} a - an item to compare
- * @param {mixed} b - an item to compare
- * @returns {number} - comparison result
- */
-function ascending(a, b)
-{
- return a < b ? -1 : a > b ? 1 : 0;
-}
-
-/**
- * sort helper to sort array elements in descending order
- *
- * @param {mixed} a - an item to compare
- * @param {mixed} b - an item to compare
- * @returns {number} - comparison result
- */
-function descending(a, b)
-{
- return -1 * ascending(a, b);
-}
diff --git a/deps/npm/node_modules/asynckit/stream.js b/deps/npm/node_modules/asynckit/stream.js
deleted file mode 100644
index d43465f903e..00000000000
--- a/deps/npm/node_modules/asynckit/stream.js
+++ /dev/null
@@ -1,21 +0,0 @@
-var inherits = require('util').inherits
- , Readable = require('stream').Readable
- , ReadableAsyncKit = require('./lib/readable_asynckit.js')
- , ReadableParallel = require('./lib/readable_parallel.js')
- , ReadableSerial = require('./lib/readable_serial.js')
- , ReadableSerialOrdered = require('./lib/readable_serial_ordered.js')
- ;
-
-// API
-module.exports =
-{
- parallel : ReadableParallel,
- serial : ReadableSerial,
- serialOrdered : ReadableSerialOrdered,
-};
-
-inherits(ReadableAsyncKit, Readable);
-
-inherits(ReadableParallel, ReadableAsyncKit);
-inherits(ReadableSerial, ReadableAsyncKit);
-inherits(ReadableSerialOrdered, ReadableAsyncKit);
diff --git a/deps/npm/node_modules/aws-sign2/LICENSE b/deps/npm/node_modules/aws-sign2/LICENSE
deleted file mode 100644
index a4a9aee0c2f..00000000000
--- a/deps/npm/node_modules/aws-sign2/LICENSE
+++ /dev/null
@@ -1,55 +0,0 @@
-Apache License
-
-Version 2.0, January 2004
-
-http://www.apache.org/licenses/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
-"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
-
-"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
-
-"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
-
-"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
-
-"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
-
-"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
-
-"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
-
-"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
-
-"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
-
-"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
-
-2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
-
-You must give any other recipients of the Work or Derivative Works a copy of this License; and
-
-You must cause any modified files to carry prominent notices stating that You changed the files; and
-
-You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
-
-If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
-
-5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS \ No newline at end of file
diff --git a/deps/npm/node_modules/aws-sign2/index.js b/deps/npm/node_modules/aws-sign2/index.js
deleted file mode 100644
index fb35f6db01f..00000000000
--- a/deps/npm/node_modules/aws-sign2/index.js
+++ /dev/null
@@ -1,212 +0,0 @@
-
-/*!
- * Copyright 2010 LearnBoost <dev@learnboost.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Module dependencies.
- */
-
-var crypto = require('crypto')
- , parse = require('url').parse
- ;
-
-/**
- * Valid keys.
- */
-
-var keys =
- [ 'acl'
- , 'location'
- , 'logging'
- , 'notification'
- , 'partNumber'
- , 'policy'
- , 'requestPayment'
- , 'torrent'
- , 'uploadId'
- , 'uploads'
- , 'versionId'
- , 'versioning'
- , 'versions'
- , 'website'
- ]
-
-/**
- * Return an "Authorization" header value with the given `options`
- * in the form of "AWS <key>:<signature>"
- *
- * @param {Object} options
- * @return {String}
- * @api private
- */
-
-function authorization (options) {
- return 'AWS ' + options.key + ':' + sign(options)
-}
-
-module.exports = authorization
-module.exports.authorization = authorization
-
-/**
- * Simple HMAC-SHA1 Wrapper
- *
- * @param {Object} options
- * @return {String}
- * @api private
- */
-
-function hmacSha1 (options) {
- return crypto.createHmac('sha1', options.secret).update(options.message).digest('base64')
-}
-
-module.exports.hmacSha1 = hmacSha1
-
-/**
- * Create a base64 sha1 HMAC for `options`.
- *
- * @param {Object} options
- * @return {String}
- * @api private
- */
-
-function sign (options) {
- options.message = stringToSign(options)
- return hmacSha1(options)
-}
-module.exports.sign = sign
-
-/**
- * Create a base64 sha1 HMAC for `options`.
- *
- * Specifically to be used with S3 presigned URLs
- *
- * @param {Object} options
- * @return {String}
- * @api private
- */
-
-function signQuery (options) {
- options.message = queryStringToSign(options)
- return hmacSha1(options)
-}
-module.exports.signQuery= signQuery
-
-/**
- * Return a string for sign() with the given `options`.
- *
- * Spec:
- *
- * <verb>\n
- * <md5>\n
- * <content-type>\n
- * <date>\n
- * [headers\n]
- * <resource>
- *
- * @param {Object} options
- * @return {String}
- * @api private
- */
-
-function stringToSign (options) {
- var headers = options.amazonHeaders || ''
- if (headers) headers += '\n'
- var r =
- [ options.verb
- , options.md5
- , options.contentType
- , options.date ? options.date.toUTCString() : ''
- , headers + options.resource
- ]
- return r.join('\n')
-}
-module.exports.stringToSign = stringToSign
-
-/**
- * Return a string for sign() with the given `options`, but is meant exclusively
- * for S3 presigned URLs
- *
- * Spec:
- *
- * <date>\n
- * <resource>
- *
- * @param {Object} options
- * @return {String}
- * @api private
- */
-
-function queryStringToSign (options){
- return 'GET\n\n\n' + options.date + '\n' + options.resource
-}
-module.exports.queryStringToSign = queryStringToSign
-
-/**
- * Perform the following:
- *
- * - ignore non-amazon headers
- * - lowercase fields
- * - sort lexicographically
- * - trim whitespace between ":"
- * - join with newline
- *
- * @param {Object} headers
- * @return {String}
- * @api private
- */
-
-function canonicalizeHeaders (headers) {
- var buf = []
- , fields = Object.keys(headers)
- ;
- for (var i = 0, len = fields.length; i < len; ++i) {
- var field = fields[i]
- , val = headers[field]
- , field = field.toLowerCase()
- ;
- if (0 !== field.indexOf('x-amz')) continue
- buf.push(field + ':' + val)
- }
- return buf.sort().join('\n')
-}
-module.exports.canonicalizeHeaders = canonicalizeHeaders
-
-/**
- * Perform the following:
- *
- * - ignore non sub-resources
- * - sort lexicographically
- *
- * @param {String} resource
- * @return {String}
- * @api private
- */
-
-function canonicalizeResource (resource) {
- var url = parse(resource, true)
- , path = url.pathname
- , buf = []
- ;
-
- Object.keys(url.query).forEach(function(key){
- if (!~keys.indexOf(key)) return
- var val = '' == url.query[key] ? '' : '=' + encodeURIComponent(url.query[key])
- buf.push(key + val)
- })
-
- return path + (buf.length ? '?' + buf.sort().join('&') : '')
-}
-module.exports.canonicalizeResource = canonicalizeResource
diff --git a/deps/npm/node_modules/aws-sign2/package.json b/deps/npm/node_modules/aws-sign2/package.json
deleted file mode 100644
index 4c3d57e575a..00000000000
--- a/deps/npm/node_modules/aws-sign2/package.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "author": "Mikeal Rogers <mikeal.rogers@gmail.com> (http://www.futurealoof.com)",
- "name": "aws-sign2",
- "description": "AWS signing. Originally pulled from LearnBoost/knox, maintained as vendor in request, now a standalone module.",
- "version": "0.7.0",
- "repository": {
- "url": "https://github.com/mikeal/aws-sign"
- },
- "license": "Apache-2.0",
- "main": "index.js",
- "dependencies": {},
- "devDependencies": {},
- "optionalDependencies": {},
- "engines": {
- "node": "*"
- }
-}
diff --git a/deps/npm/node_modules/aws4/LICENSE b/deps/npm/node_modules/aws4/LICENSE
deleted file mode 100644
index 4f321e59956..00000000000
--- a/deps/npm/node_modules/aws4/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright 2013 Michael Hart (michael.hart.au@gmail.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/deps/npm/node_modules/aws4/aws4.js b/deps/npm/node_modules/aws4/aws4.js
deleted file mode 100644
index b99b319f89f..00000000000
--- a/deps/npm/node_modules/aws4/aws4.js
+++ /dev/null
@@ -1,373 +0,0 @@
-var aws4 = exports,
- url = require('url'),
- querystring = require('querystring'),
- crypto = require('crypto'),
- lru = require('./lru'),
- credentialsCache = lru(1000)
-
-// http://docs.amazonwebservices.com/general/latest/gr/signature-version-4.html
-
-function hmac(key, string, encoding) {
- return crypto.createHmac('sha256', key).update(string, 'utf8').digest(encoding)
-}
-
-function hash(string, encoding) {
- return crypto.createHash('sha256').update(string, 'utf8').digest(encoding)
-}
-
-// This function assumes the string has already been percent encoded
-function encodeRfc3986(urlEncodedString) {
- return urlEncodedString.replace(/[!'()*]/g, function(c) {
- return '%' + c.charCodeAt(0).toString(16).toUpperCase()
- })
-}
-
-function encodeRfc3986Full(str) {
- return encodeRfc3986(encodeURIComponent(str))
-}
-
-// A bit of a combination of:
-// https://github.com/aws/aws-sdk-java-v2/blob/dc695de6ab49ad03934e1b02e7263abbd2354be0/core/auth/src/main/java/software/amazon/awssdk/auth/signer/internal/AbstractAws4Signer.java#L59
-// https://github.com/aws/aws-sdk-js/blob/18cb7e5b463b46239f9fdd4a65e2ff8c81831e8f/lib/signers/v4.js#L191-L199
-// https://github.com/mhart/aws4fetch/blob/b3aed16b6f17384cf36ea33bcba3c1e9f3bdfefd/src/main.js#L25-L34
-var HEADERS_TO_IGNORE = {
- 'authorization': true,
- 'connection': true,
- 'x-amzn-trace-id': true,
- 'user-agent': true,
- 'expect': true,
- 'presigned-expires': true,
- 'range': true,
-}
-
-// request: { path | body, [host], [method], [headers], [service], [region] }
-// credentials: { accessKeyId, secretAccessKey, [sessionToken] }
-function RequestSigner(request, credentials) {
-
- if (typeof request === 'string') request = url.parse(request)
-
- var headers = request.headers = (request.headers || {}),
- hostParts = (!this.service || !this.region) && this.matchHost(request.hostname || request.host || headers.Host || headers.host)
-
- this.request = request
- this.credentials = credentials || this.defaultCredentials()
-
- this.service = request.service || hostParts[0] || ''
- this.region = request.region || hostParts[1] || 'us-east-1'
-
- // SES uses a different domain from the service name
- if (this.service === 'email') this.service = 'ses'
-
- if (!request.method && request.body)
- request.method = 'POST'
-
- if (!headers.Host && !headers.host) {
- headers.Host = request.hostname || request.host || this.createHost()
-
- // If a port is specified explicitly, use it as is
- if (request.port)
- headers.Host += ':' + request.port
- }
- if (!request.hostname && !request.host)
- request.hostname = headers.Host || headers.host
-
- this.isCodeCommitGit = this.service === 'codecommit' && request.method === 'GIT'
-}
-
-RequestSigner.prototype.matchHost = function(host) {
- var match = (host || '').match(/([^\.]+)\.(?:([^\.]*)\.)?amazonaws\.com(\.cn)?$/)
- var hostParts = (match || []).slice(1, 3)
-
- // ES's hostParts are sometimes the other way round, if the value that is expected
- // to be region equals ‘es’ switch them back
- // e.g. search-cluster-name-aaaa00aaaa0aaa0aaaaaaa0aaa.us-east-1.es.amazonaws.com
- if (hostParts[1] === 'es')
- hostParts = hostParts.reverse()
-
- if (hostParts[1] == 's3') {
- hostParts[0] = 's3'
- hostParts[1] = 'us-east-1'
- } else {
- for (var i = 0; i < 2; i++) {
- if (/^s3-/.test(hostParts[i])) {
- hostParts[1] = hostParts[i].slice(3)
- hostParts[0] = 's3'
- break
- }
- }
- }
-
- return hostParts
-}
-
-// http://docs.aws.amazon.com/general/latest/gr/rande.html
-RequestSigner.prototype.isSingleRegion = function() {
- // Special case for S3 and SimpleDB in us-east-1
- if (['s3', 'sdb'].indexOf(this.service) >= 0 && this.region === 'us-east-1') return true
-
- return ['cloudfront', 'ls', 'route53', 'iam', 'importexport', 'sts']
- .indexOf(this.service) >= 0
-}
-
-RequestSigner.prototype.createHost = function() {
- var region = this.isSingleRegion() ? '' : '.' + this.region,
- subdomain = this.service === 'ses' ? 'email' : this.service
- return subdomain + region + '.amazonaws.com'
-}
-
-RequestSigner.prototype.prepareRequest = function() {
- this.parsePath()
-
- var request = this.request, headers = request.headers, query
-
- if (request.signQuery) {
-
- this.parsedPath.query = query = this.parsedPath.query || {}
-
- if (this.credentials.sessionToken)
- query['X-Amz-Security-Token'] = this.credentials.sessionToken
-
- if (this.service === 's3' && !query['X-Amz-Expires'])
- query['X-Amz-Expires'] = 86400
-
- if (query['X-Amz-Date'])
- this.datetime = query['X-Amz-Date']
- else
- query['X-Amz-Date'] = this.getDateTime()
-
- query['X-Amz-Algorithm'] = 'AWS4-HMAC-SHA256'
- query['X-Amz-Credential'] = this.credentials.accessKeyId + '/' + this.credentialString()
- query['X-Amz-SignedHeaders'] = this.signedHeaders()
-
- } else {
-
- if (!request.doNotModifyHeaders && !this.isCodeCommitGit) {
- if (request.body && !headers['Content-Type'] && !headers['content-type'])
- headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=utf-8'
-
- if (request.body && !headers['Content-Length'] && !headers['content-length'])
- headers['Content-Length'] = Buffer.byteLength(request.body)
-
- if (this.credentials.sessionToken && !headers['X-Amz-Security-Token'] && !headers['x-amz-security-token'])
- headers['X-Amz-Security-Token'] = this.credentials.sessionToken
-
- if (this.service === 's3' && !headers['X-Amz-Content-Sha256'] && !headers['x-amz-content-sha256'])
- headers['X-Amz-Content-Sha256'] = hash(this.request.body || '', 'hex')
-
- if (headers['X-Amz-Date'] || headers['x-amz-date'])
- this.datetime = headers['X-Amz-Date'] || headers['x-amz-date']
- else
- headers['X-Amz-Date'] = this.getDateTime()
- }
-
- delete headers.Authorization
- delete headers.authorization
- }
-}
-
-RequestSigner.prototype.sign = function() {
- if (!this.parsedPath) this.prepareRequest()
-
- if (this.request.signQuery) {
- this.parsedPath.query['X-Amz-Signature'] = this.signature()
- } else {
- this.request.headers.Authorization = this.authHeader()
- }
-
- this.request.path = this.formatPath()
-
- return this.request
-}
-
-RequestSigner.prototype.getDateTime = function() {
- if (!this.datetime) {
- var headers = this.request.headers,
- date = new Date(headers.Date || headers.date || new Date)
-
- this.datetime = date.toISOString().replace(/[:\-]|\.\d{3}/g, '')
-
- // Remove the trailing 'Z' on the timestamp string for CodeCommit git access
- if (this.isCodeCommitGit) this.datetime = this.datetime.slice(0, -1)
- }
- return this.datetime
-}
-
-RequestSigner.prototype.getDate = function() {
- return this.getDateTime().substr(0, 8)
-}
-
-RequestSigner.prototype.authHeader = function() {
- return [
- 'AWS4-HMAC-SHA256 Credential=' + this.credentials.accessKeyId + '/' + this.credentialString(),
- 'SignedHeaders=' + this.signedHeaders(),
- 'Signature=' + this.signature(),
- ].join(', ')
-}
-
-RequestSigner.prototype.signature = function() {
- var date = this.getDate(),
- cacheKey = [this.credentials.secretAccessKey, date, this.region, this.service].join(),
- kDate, kRegion, kService, kCredentials = credentialsCache.get(cacheKey)
- if (!kCredentials) {
- kDate = hmac('AWS4' + this.credentials.secretAccessKey, date)
- kRegion = hmac(kDate, this.region)
- kService = hmac(kRegion, this.service)
- kCredentials = hmac(kService, 'aws4_request')
- credentialsCache.set(cacheKey, kCredentials)
- }
- return hmac(kCredentials, this.stringToSign(), 'hex')
-}
-
-RequestSigner.prototype.stringToSign = function() {
- return [
- 'AWS4-HMAC-SHA256',
- this.getDateTime(),
- this.credentialString(),
- hash(this.canonicalString(), 'hex'),
- ].join('\n')
-}
-
-RequestSigner.prototype.canonicalString = function() {
- if (!this.parsedPath) this.prepareRequest()
-
- var pathStr = this.parsedPath.path,
- query = this.parsedPath.query,
- headers = this.request.headers,
- queryStr = '',
- normalizePath = this.service !== 's3',
- decodePath = this.service === 's3' || this.request.doNotEncodePath,
- decodeSlashesInPath = this.service === 's3',
- firstValOnly = this.service === 's3',
- bodyHash
-
- if (this.service === 's3' && this.request.signQuery) {
- bodyHash = 'UNSIGNED-PAYLOAD'
- } else if (this.isCodeCommitGit) {
- bodyHash = ''
- } else {
- bodyHash = headers['X-Amz-Content-Sha256'] || headers['x-amz-content-sha256'] ||
- hash(this.request.body || '', 'hex')
- }
-
- if (query) {
- var reducedQuery = Object.keys(query).reduce(function(obj, key) {
- if (!key) return obj
- obj[encodeRfc3986Full(key)] = !Array.isArray(query[key]) ? query[key] :
- (firstValOnly ? query[key][0] : query[key])
- return obj
- }, {})
- var encodedQueryPieces = []
- Object.keys(reducedQuery).sort().forEach(function(key) {
- if (!Array.isArray(reducedQuery[key])) {
- encodedQueryPieces.push(key + '=' + encodeRfc3986Full(reducedQuery[key]))
- } else {
- reducedQuery[key].map(encodeRfc3986Full).sort()
- .forEach(function(val) { encodedQueryPieces.push(key + '=' + val) })
- }
- })
- queryStr = encodedQueryPieces.join('&')
- }
- if (pathStr !== '/') {
- if (normalizePath) pathStr = pathStr.replace(/\/{2,}/g, '/')
- pathStr = pathStr.split('/').reduce(function(path, piece) {
- if (normalizePath && piece === '..') {
- path.pop()
- } else if (!normalizePath || piece !== '.') {
- if (decodePath) piece = decodeURIComponent(piece.replace(/\+/g, ' '))
- path.push(encodeRfc3986Full(piece))
- }
- return path
- }, []).join('/')
- if (pathStr[0] !== '/') pathStr = '/' + pathStr
- if (decodeSlashesInPath) pathStr = pathStr.replace(/%2F/g, '/')
- }
-
- return [
- this.request.method || 'GET',
- pathStr,
- queryStr,
- this.canonicalHeaders() + '\n',
- this.signedHeaders(),
- bodyHash,
- ].join('\n')
-}
-
-RequestSigner.prototype.canonicalHeaders = function() {
- var headers = this.request.headers
- function trimAll(header) {
- return header.toString().trim().replace(/\s+/g, ' ')
- }
- return Object.keys(headers)
- .filter(function(key) { return HEADERS_TO_IGNORE[key.toLowerCase()] == null })
- .sort(function(a, b) { return a.toLowerCase() < b.toLowerCase() ? -1 : 1 })
- .map(function(key) { return key.toLowerCase() + ':' + trimAll(headers[key]) })
- .join('\n')
-}
-
-RequestSigner.prototype.signedHeaders = function() {
- return Object.keys(this.request.headers)
- .map(function(key) { return key.toLowerCase() })
- .filter(function(key) { return HEADERS_TO_IGNORE[key] == null })
- .sort()
- .join(';')
-}
-
-RequestSigner.prototype.credentialString = function() {
- return [
- this.getDate(),
- this.region,
- this.service,
- 'aws4_request',
- ].join('/')
-}
-
-RequestSigner.prototype.defaultCredentials = function() {
- var env = process.env
- return {
- accessKeyId: env.AWS_ACCESS_KEY_ID || env.AWS_ACCESS_KEY,
- secretAccessKey: env.AWS_SECRET_ACCESS_KEY || env.AWS_SECRET_KEY,
- sessionToken: env.AWS_SESSION_TOKEN,
- }
-}
-
-RequestSigner.prototype.parsePath = function() {
- var path = this.request.path || '/'
-
- // S3 doesn't always encode characters > 127 correctly and
- // all services don't encode characters > 255 correctly
- // So if there are non-reserved chars (and it's not already all % encoded), just encode them all
- if (/[^0-9A-Za-z;,/?:@&=+$\-_.!~*'()#%]/.test(path)) {
- path = encodeURI(decodeURI(path))
- }
-
- var queryIx = path.indexOf('?'),
- query = null
-
- if (queryIx >= 0) {
- query = querystring.parse(path.slice(queryIx + 1))
- path = path.slice(0, queryIx)
- }
-
- this.parsedPath = {
- path: path,
- query: query,
- }
-}
-
-RequestSigner.prototype.formatPath = function() {
- var path = this.parsedPath.path,
- query = this.parsedPath.query
-
- if (!query) return path
-
- // Services don't support empty query string keys
- if (query[''] != null) delete query['']
-
- return path + '?' + encodeRfc3986(querystring.stringify(query))
-}
-
-aws4.RequestSigner = RequestSigner
-
-aws4.sign = function(request, credentials) {
- return new RequestSigner(request, credentials).sign()
-}
diff --git a/deps/npm/node_modules/aws4/lru.js b/deps/npm/node_modules/aws4/lru.js
deleted file mode 100644
index 333f66a4436..00000000000
--- a/deps/npm/node_modules/aws4/lru.js
+++ /dev/null
@@ -1,96 +0,0 @@
-module.exports = function(size) {
- return new LruCache(size)
-}
-
-function LruCache(size) {
- this.capacity = size | 0
- this.map = Object.create(null)
- this.list = new DoublyLinkedList()
-}
-
-LruCache.prototype.get = function(key) {
- var node = this.map[key]
- if (node == null) return undefined
- this.used(node)
- return node.val
-}
-
-LruCache.prototype.set = function(key, val) {
- var node = this.map[key]
- if (node != null) {
- node.val = val
- } else {
- if (!this.capacity) this.prune()
- if (!this.capacity) return false
- node = new DoublyLinkedNode(key, val)
- this.map[key] = node
- this.capacity--
- }
- this.used(node)
- return true
-}
-
-LruCache.prototype.used = function(node) {
- this.list.moveToFront(node)
-}
-
-LruCache.prototype.prune = function() {
- var node = this.list.pop()
- if (node != null) {
- delete this.map[node.key]
- this.capacity++
- }
-}
-
-
-function DoublyLinkedList() {
- this.firstNode = null
- this.lastNode = null
-}
-
-DoublyLinkedList.prototype.moveToFront = function(node) {
- if (this.firstNode == node) return
-
- this.remove(node)
-
- if (this.firstNode == null) {
- this.firstNode = node
- this.lastNode = node
- node.prev = null
- node.next = null
- } else {
- node.prev = null
- node.next = this.firstNode
- node.next.prev = node
- this.firstNode = node
- }
-}
-
-DoublyLinkedList.prototype.pop = function() {
- var lastNode = this.lastNode
- if (lastNode != null) {
- this.remove(lastNode)
- }
- return lastNode
-}
-
-DoublyLinkedList.prototype.remove = function(node) {
- if (this.firstNode == node) {
- this.firstNode = node.next
- } else if (node.prev != null) {
- node.prev.next = node.next
- }
- if (this.lastNode == node) {
- this.lastNode = node.prev
- } else if (node.next != null) {
- node.next.prev = node.prev
- }
-}
-
-
-function DoublyLinkedNode(key, val) {
- this.key = key
- this.val = val
- this.prev = null
- this.next = null
-}
diff --git a/deps/npm/node_modules/aws4/package.json b/deps/npm/node_modules/aws4/package.json
deleted file mode 100644
index 424598d4a14..00000000000
--- a/deps/npm/node_modules/aws4/package.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "name": "aws4",
- "version": "1.11.0",
- "description": "Signs and prepares requests using AWS Signature Version 4",
- "author": "Michael Hart <michael.hart.au@gmail.com> (https://github.com/mhart)",
- "license": "MIT",
- "repository": "github:mhart/aws4",
- "main": "aws4.js",
- "scripts": {
- "test": "mocha ./test/fast.js -R list",
- "integration": "node ./test/slow.js"
- },
- "devDependencies": {
- "mocha": "^2.5.3",
- "should": "^8.4.0"
- }
-}
diff --git a/deps/npm/node_modules/bcrypt-pbkdf/CONTRIBUTING.md b/deps/npm/node_modules/bcrypt-pbkdf/CONTRIBUTING.md
deleted file mode 100644
index 401d34ed5c7..00000000000
--- a/deps/npm/node_modules/bcrypt-pbkdf/CONTRIBUTING.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# Contributing
-
-This repository uses [cr.joyent.us](https://cr.joyent.us) (Gerrit) for new
-changes. Anyone can submit changes. To get started, see the [cr.joyent.us user
-guide](https://github.com/joyent/joyent-gerrit/blob/master/docs/user/README.md).
-This repo does not use GitHub pull requests.
-
-See the [Joyent Engineering
-Guidelines](https://github.com/joyent/eng/blob/master/docs/index.md) for general
-best practices expected in this repository.
-
-If you're changing something non-trivial or user-facing, you may want to submit
-an issue first.
diff --git a/deps/npm/node_modules/bcrypt-pbkdf/LICENSE b/deps/npm/node_modules/bcrypt-pbkdf/LICENSE
deleted file mode 100644
index fc58d2ab15b..00000000000
--- a/deps/npm/node_modules/bcrypt-pbkdf/LICENSE
+++ /dev/null
@@ -1,66 +0,0 @@
-The Blowfish portions are under the following license:
-
-Blowfish block cipher for OpenBSD
-Copyright 1997 Niels Provos <provos@physnet.uni-hamburg.de>
-All rights reserved.
-
-Implementation advice by David Mazieres <dm@lcs.mit.edu>.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-3. The name of the author may not be used to endorse or promote products
- derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-
-The bcrypt_pbkdf portions are under the following license:
-
-Copyright (c) 2013 Ted Unangst <tedu@openbsd.org>
-
-Permission to use, copy, modify, and distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-
-Performance improvements (Javascript-specific):
-
-Copyright 2016, Joyent Inc
-Author: Alex Wilson <alex.wilson@joyent.com>
-
-Permission to use, copy, modify, and distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/deps/npm/node_modules/bcrypt-pbkdf/index.js b/deps/npm/node_modules/bcrypt-pbkdf/index.js
deleted file mode 100644
index b1b5ad4b789..00000000000
--- a/deps/npm/node_modules/bcrypt-pbkdf/index.js
+++ /dev/null
@@ -1,556 +0,0 @@
-'use strict';
-
-var crypto_hash_sha512 = require('tweetnacl').lowlevel.crypto_hash;
-
-/*
- * This file is a 1:1 port from the OpenBSD blowfish.c and bcrypt_pbkdf.c. As a
- * result, it retains the original copyright and license. The two files are
- * under slightly different (but compatible) licenses, and are here combined in
- * one file.
- *
- * Credit for the actual porting work goes to:
- * Devi Mandiri <me@devi.web.id>
- */
-
-/*
- * The Blowfish portions are under the following license:
- *
- * Blowfish block cipher for OpenBSD
- * Copyright 1997 Niels Provos <provos@physnet.uni-hamburg.de>
- * All rights reserved.
- *
- * Implementation advice by David Mazieres <dm@lcs.mit.edu>.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * The bcrypt_pbkdf portions are under the following license:
- *
- * Copyright (c) 2013 Ted Unangst <tedu@openbsd.org>
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-/*
- * Performance improvements (Javascript-specific):
- *
- * Copyright 2016, Joyent Inc
- * Author: Alex Wilson <alex.wilson@joyent.com>
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-// Ported from OpenBSD bcrypt_pbkdf.c v1.9
-
-var BLF_J = 0;
-
-var Blowfish = function() {
- this.S = [
- new Uint32Array([
- 0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7,
- 0xb8e1afed, 0x6a267e96, 0xba7c9045, 0xf12c7f99,
- 0x24a19947, 0xb3916cf7, 0x0801f2e2, 0x858efc16,
- 0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e,
- 0x0d95748f, 0x728eb658, 0x718bcd58, 0x82154aee,
- 0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013,
- 0xc5d1b023, 0x286085f0, 0xca417918, 0xb8db38ef,
- 0x8e79dcb0, 0x603a180e, 0x6c9e0e8b, 0xb01e8a3e,
- 0xd71577c1, 0xbd314b27, 0x78af2fda, 0x55605c60,
- 0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440,
- 0x55ca396a, 0x2aab10b6, 0xb4cc5c34, 0x1141e8ce,
- 0xa15486af, 0x7c72e993, 0xb3ee1411, 0x636fbc2a,
- 0x2ba9c55d, 0x741831f6, 0xce5c3e16, 0x9b87931e,
- 0xafd6ba33, 0x6c24cf5c, 0x7a325381, 0x28958677,
- 0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193,
- 0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032,
- 0xef845d5d, 0xe98575b1, 0xdc262302, 0xeb651b88,
- 0x23893e81, 0xd396acc5, 0x0f6d6ff3, 0x83f44239,
- 0x2e0b4482, 0xa4842004, 0x69c8f04a, 0x9e1f9b5e,
- 0x21c66842, 0xf6e96c9a, 0x670c9c61, 0xabd388f0,
- 0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xab5133a3,
- 0x6eef0b6c, 0x137a3be4, 0xba3bf050, 0x7efb2a98,
- 0xa1f1651d, 0x39af0176, 0x66ca593e, 0x82430e88,
- 0x8cee8619, 0x456f9fb4, 0x7d84a5c3, 0x3b8b5ebe,
- 0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6,
- 0x4ed3aa62, 0x363f7706, 0x1bfedf72, 0x429b023d,
- 0x37d0d724, 0xd00a1248, 0xdb0fead3, 0x49f1c09b,
- 0x075372c9, 0x80991b7b, 0x25d479d8, 0xf6e8def7,
- 0xe3fe501a, 0xb6794c3b, 0x976ce0bd, 0x04c006ba,
- 0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463,
- 0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f,
- 0x6dfc511f, 0x9b30952c, 0xcc814544, 0xaf5ebd09,
- 0xbee3d004, 0xde334afd, 0x660f2807, 0x192e4bb3,
- 0xc0cba857, 0x45c8740f, 0xd20b5f39, 0xb9d3fbdb,
- 0x5579c0bd, 0x1a60320a, 0xd6a100c6, 0x402c7279,
- 0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8,
- 0x3c7516df, 0xfd616b15, 0x2f501ec8, 0xad0552ab,
- 0x323db5fa, 0xfd238760, 0x53317b48, 0x3e00df82,
- 0x9e5c57bb, 0xca6f8ca0, 0x1a87562e, 0xdf1769db,
- 0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573,
- 0x695b27b0, 0xbbca58c8, 0xe1ffa35d, 0xb8f011a0,
- 0x10fa3d98, 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b,
- 0x9a53e479, 0xb6f84565, 0xd28e49bc, 0x4bfb9790,
- 0xe1ddf2da, 0xa4cb7e33, 0x62fb1341, 0xcee4c6e8,
- 0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4,
- 0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0,
- 0xd08ed1d0, 0xafc725e0, 0x8e3c5b2f, 0x8e7594b7,
- 0x8ff6e2fb, 0xf2122b64, 0x8888b812, 0x900df01c,
- 0x4fad5ea0, 0x688fc31c, 0xd1cff191, 0xb3a8c1ad,
- 0x2f2f2218, 0xbe0e1777, 0xea752dfe, 0x8b021fa1,
- 0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299,
- 0xb4a84fe0, 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9,
- 0x165fa266, 0x80957705, 0x93cc7314, 0x211a1477,
- 0xe6ad2065, 0x77b5fa86, 0xc75442f5, 0xfb9d35cf,
- 0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49,
- 0x00250e2d, 0x2071b35e, 0x226800bb, 0x57b8e0af,
- 0x2464369b, 0xf009b91e, 0x5563911d, 0x59dfa6aa,
- 0x78c14389, 0xd95a537f, 0x207d5ba2, 0x02e5b9c5,
- 0x83260376, 0x6295cfa9, 0x11c81968, 0x4e734a41,
- 0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915,
- 0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400,
- 0x08ba6fb5, 0x571be91f, 0xf296ec6b, 0x2a0dd915,
- 0xb6636521, 0xe7b9f9b6, 0xff34052e, 0xc5855664,
- 0x53b02d5d, 0xa99f8fa1, 0x08ba4799, 0x6e85076a]),
- new Uint32Array([
- 0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623,
- 0xad6ea6b0, 0x49a7df7d, 0x9cee60b8, 0x8fedb266,
- 0xecaa8c71, 0x699a17ff, 0x5664526c, 0xc2b19ee1,
- 0x193602a5, 0x75094c29, 0xa0591340, 0xe4183a3e,
- 0x3f54989a, 0x5b429d65, 0x6b8fe4d6, 0x99f73fd6,
- 0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1,
- 0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x021ecc5e,
- 0x09686b3f, 0x3ebaefc9, 0x3c971814, 0x6b6a70a1,
- 0x687f3584, 0x52a0e286, 0xb79c5305, 0xaa500737,
- 0x3e07841c, 0x7fdeae5c, 0x8e7d44ec, 0x5716f2b8,
- 0xb03ada37, 0xf0500c0d, 0xf01c1f04, 0x0200b3ff,
- 0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd,
- 0xd19113f9, 0x7ca92ff6, 0x94324773, 0x22f54701,
- 0x3ae5e581, 0x37c2dadc, 0xc8b57634, 0x9af3dda7,
- 0xa9446146, 0x0fd0030e, 0xecc8c73e, 0xa4751e41,
- 0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331,
- 0x4e548b38, 0x4f6db908, 0x6f420d03, 0xf60a04bf,
- 0x2cb81290, 0x24977c79, 0x5679b072, 0xbcaf89af,
- 0xde9a771f, 0xd9930810, 0xb38bae12, 0xdccf3f2e,
- 0x5512721f, 0x2e6b7124, 0x501adde6, 0x9f84cd87,
- 0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe94b7d8c,
- 0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2,
- 0xef1c1847, 0x3215d908, 0xdd433b37, 0x24c2ba16,
- 0x12a14d43, 0x2a65c451, 0x50940002, 0x133ae4dd,
- 0x71dff89e, 0x10314e55, 0x81ac77d6, 0x5f11199b,
- 0x043556f1, 0xd7a3c76b, 0x3c11183b, 0x5924a509,
- 0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e,
- 0x86e34570, 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3,
- 0x771fe71c, 0x4e3d06fa, 0x2965dcb9, 0x99e71d0f,
- 0x803e89d6, 0x5266c825, 0x2e4cc978, 0x9c10b36a,
- 0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4,
- 0xf2f74ea7, 0x361d2b3d, 0x1939260f, 0x19c27960,
- 0x5223a708, 0xf71312b6, 0xebadfe6e, 0xeac31f66,
- 0xe3bc4595, 0xa67bc883, 0xb17f37d1, 0x018cff28,
- 0xc332ddef, 0xbe6c5aa5, 0x65582185, 0x68ab9802,
- 0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84,
- 0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510,
- 0x13cca830, 0xeb61bd96, 0x0334fe1e, 0xaa0363cf,
- 0xb5735c90, 0x4c70a239, 0xd59e9e0b, 0xcbaade14,
- 0xeecc86bc, 0x60622ca7, 0x9cab5cab, 0xb2f3846e,
- 0x648b1eaf, 0x19bdf0ca, 0xa02369b9, 0x655abb50,
- 0x40685a32, 0x3c2ab4b3, 0x319ee9d5, 0xc021b8f7,
- 0x9b540b19, 0x875fa099, 0x95f7997e, 0x623d7da8,
- 0xf837889a, 0x97e32d77, 0x11ed935f, 0x16681281,
- 0x0e358829, 0xc7e61fd6, 0x96dedfa1, 0x7858ba99,
- 0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696,
- 0xcdb30aeb, 0x532e3054, 0x8fd948e4, 0x6dbc3128,
- 0x58ebf2ef, 0x34c6ffea, 0xfe28ed61, 0xee7c3c73,
- 0x5d4a14d9, 0xe864b7e3, 0x42105d14, 0x203e13e0,
- 0x45eee2b6, 0xa3aaabea, 0xdb6c4f15, 0xfacb4fd0,
- 0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105,
- 0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250,
- 0xcf62a1f2, 0x5b8d2646, 0xfc8883a0, 0xc1c7b6a3,
- 0x7f1524c3, 0x69cb7492, 0x47848a0b, 0x5692b285,
- 0x095bbf00, 0xad19489d, 0x1462b174, 0x23820e00,
- 0x58428d2a, 0x0c55f5ea, 0x1dadf43e, 0x233f7061,
- 0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb,
- 0x7cde3759, 0xcbee7460, 0x4085f2a7, 0xce77326e,
- 0xa6078084, 0x19f8509e, 0xe8efd855, 0x61d99735,
- 0xa969a7aa, 0xc50c06c2, 0x5a04abfc, 0x800bcadc,
- 0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9,
- 0xdb73dbd3, 0x105588cd, 0x675fda79, 0xe3674340,
- 0xc5c43465, 0x713e38d8, 0x3d28f89e, 0xf16dff20,
- 0x153e21e7, 0x8fb03d4a, 0xe6e39f2b, 0xdb83adf7]),
- new Uint32Array([
- 0xe93d5a68, 0x948140f7, 0xf64c261c, 0x94692934,
- 0x411520f7, 0x7602d4f7, 0xbcf46b2e, 0xd4a20068,
- 0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af,
- 0x1e39f62e, 0x97244546, 0x14214f74, 0xbf8b8840,
- 0x4d95fc1d, 0x96b591af, 0x70f4ddd3, 0x66a02f45,
- 0xbfbc09ec, 0x03bd9785, 0x7fac6dd0, 0x31cb8504,
- 0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a,
- 0x28507825, 0x530429f4, 0x0a2c86da, 0xe9b66dfb,
- 0x68dc1462, 0xd7486900, 0x680ec0a4, 0x27a18dee,
- 0x4f3ffea2, 0xe887ad8c, 0xb58ce006, 0x7af4d6b6,
- 0xaace1e7c, 0xd3375fec, 0xce78a399, 0x406b2a42,
- 0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b,
- 0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2,
- 0x3a6efa74, 0xdd5b4332, 0x6841e7f7, 0xca7820fb,
- 0xfb0af54e, 0xd8feb397, 0x454056ac, 0xba489527,
- 0x55533a3a, 0x20838d87, 0xfe6ba9b7, 0xd096954b,
- 0x55a867bc, 0xa1159a58, 0xcca92963, 0x99e1db33,
- 0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c,
- 0xfdf8e802, 0x04272f70, 0x80bb155c, 0x05282ce3,
- 0x95c11548, 0xe4c66d22, 0x48c1133f, 0xc70f86dc,
- 0x07f9c9ee, 0x41041f0f, 0x404779a4, 0x5d886e17,
- 0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564,
- 0x257b7834, 0x602a9c60, 0xdff8e8a3, 0x1f636c1b,
- 0x0e12b4c2, 0x02e1329e, 0xaf664fd1, 0xcad18115,
- 0x6b2395e0, 0x333e92e1, 0x3b240b62, 0xeebeb922,
- 0x85b2a20e, 0xe6ba0d99, 0xde720c8c, 0x2da2f728,
- 0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0,
- 0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e,
- 0x0a476341, 0x992eff74, 0x3a6f6eab, 0xf4f8fd37,
- 0xa812dc60, 0xa1ebddf8, 0x991be14c, 0xdb6e6b0d,
- 0xc67b5510, 0x6d672c37, 0x2765d43b, 0xdcd0e804,
- 0xf1290dc7, 0xcc00ffa3, 0xb5390f92, 0x690fed0b,
- 0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3,
- 0xbb132f88, 0x515bad24, 0x7b9479bf, 0x763bd6eb,
- 0x37392eb3, 0xcc115979, 0x8026e297, 0xf42e312d,
- 0x6842ada7, 0xc66a2b3b, 0x12754ccc, 0x782ef11c,
- 0x6a124237, 0xb79251e7, 0x06a1bbe6, 0x4bfb6350,
- 0x1a6b1018, 0x11caedfa, 0x3d25bdd8, 0xe2e1c3c9,
- 0x44421659, 0x0a121386, 0xd90cec6e, 0xd5abea2a,
- 0x64af674e, 0xda86a85f, 0xbebfe988, 0x64e4c3fe,
- 0x9dbc8057, 0xf0f7c086, 0x60787bf8, 0x6003604d,
- 0xd1fd8346, 0xf6381fb0, 0x7745ae04, 0xd736fccc,
- 0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f,
- 0x77a057be, 0xbde8ae24, 0x55464299, 0xbf582e61,
- 0x4e58f48f, 0xf2ddfda2, 0xf474ef38, 0x8789bdc2,
- 0x5366f9c3, 0xc8b38e74, 0xb475f255, 0x46fcd9b9,
- 0x7aeb2661, 0x8b1ddf84, 0x846a0e79, 0x915f95e2,
- 0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c,
- 0xb90bace1, 0xbb8205d0, 0x11a86248, 0x7574a99e,
- 0xb77f19b6, 0xe0a9dc09, 0x662d09a1, 0xc4324633,
- 0xe85a1f02, 0x09f0be8c, 0x4a99a025, 0x1d6efe10,
- 0x1ab93d1d, 0x0ba5a4df, 0xa186f20f, 0x2868f169,
- 0xdcb7da83, 0x573906fe, 0xa1e2ce9b, 0x4fcd7f52,
- 0x50115e01, 0xa70683fa, 0xa002b5c4, 0x0de6d027,
- 0x9af88c27, 0x773f8641, 0xc3604c06, 0x61a806b5,
- 0xf0177a28, 0xc0f586e0, 0x006058aa, 0x30dc7d62,
- 0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634,
- 0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76,
- 0x6f05e409, 0x4b7c0188, 0x39720a3d, 0x7c927c24,
- 0x86e3725f, 0x724d9db9, 0x1ac15bb4, 0xd39eb8fc,
- 0xed545578, 0x08fca5b5, 0xd83d7cd3, 0x4dad0fc4,
- 0x1e50ef5e, 0xb161e6f8, 0xa28514d9, 0x6c51133c,
- 0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837,
- 0xd79a3234, 0x92638212, 0x670efa8e, 0x406000e0]),
- new Uint32Array([
- 0x3a39ce37, 0xd3faf5cf, 0xabc27737, 0x5ac52d1b,
- 0x5cb0679e, 0x4fa33742, 0xd3822740, 0x99bc9bbe,
- 0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b,
- 0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4,
- 0x5748ab2f, 0xbc946e79, 0xc6a376d2, 0x6549c2c8,
- 0x530ff8ee, 0x468dde7d, 0xd5730a1d, 0x4cd04dc6,
- 0x2939bbdb, 0xa9ba4650, 0xac9526e8, 0xbe5ee304,
- 0xa1fad5f0, 0x6a2d519a, 0x63ef8ce2, 0x9a86ee22,
- 0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4,
- 0x83c061ba, 0x9be96a4d, 0x8fe51550, 0xba645bd6,
- 0x2826a2f9, 0xa73a3ae1, 0x4ba99586, 0xef5562e9,
- 0xc72fefd3, 0xf752f7da, 0x3f046f69, 0x77fa0a59,
- 0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593,
- 0xe990fd5a, 0x9e34d797, 0x2cf0b7d9, 0x022b8b51,
- 0x96d5ac3a, 0x017da67d, 0xd1cf3ed6, 0x7c7d2d28,
- 0x1f9f25cf, 0xadf2b89b, 0x5ad6b472, 0x5a88f54c,
- 0xe029ac71, 0xe019a5e6, 0x47b0acfd, 0xed93fa9b,
- 0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28,
- 0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c,
- 0x15056dd4, 0x88f46dba, 0x03a16125, 0x0564f0bd,
- 0xc3eb9e15, 0x3c9057a2, 0x97271aec, 0xa93a072a,
- 0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb, 0x26dcf319,
- 0x7533d928, 0xb155fdf5, 0x03563482, 0x8aba3cbb,
- 0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f,
- 0x4de81751, 0x3830dc8e, 0x379d5862, 0x9320f991,
- 0xea7a90c2, 0xfb3e7bce, 0x5121ce64, 0x774fbe32,
- 0xa8b6e37e, 0xc3293d46, 0x48de5369, 0x6413e680,
- 0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x09072166,
- 0xb39a460a, 0x6445c0dd, 0x586cdecf, 0x1c20c8ae,
- 0x5bbef7dd, 0x1b588d40, 0xccd2017f, 0x6bb4e3bb,
- 0xdda26a7e, 0x3a59ff45, 0x3e350a44, 0xbcb4cdd5,
- 0x72eacea8, 0xfa6484bb, 0x8d6612ae, 0xbf3c6f47,
- 0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370,
- 0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d,
- 0x4040cb08, 0x4eb4e2cc, 0x34d2466a, 0x0115af84,
- 0xe1b00428, 0x95983a1d, 0x06b89fb4, 0xce6ea048,
- 0x6f3f3b82, 0x3520ab82, 0x011a1d4b, 0x277227f8,
- 0x611560b1, 0xe7933fdc, 0xbb3a792b, 0x344525bd,
- 0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9,
- 0xe01cc87e, 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7,
- 0x1a908749, 0xd44fbd9a, 0xd0dadecb, 0xd50ada38,
- 0x0339c32a, 0xc6913667, 0x8df9317c, 0xe0b12b4f,
- 0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c,
- 0xbf97222c, 0x15e6fc2a, 0x0f91fc71, 0x9b941525,
- 0xfae59361, 0xceb69ceb, 0xc2a86459, 0x12baa8d1,
- 0xb6c1075e, 0xe3056a0c, 0x10d25065, 0xcb03a442,
- 0xe0ec6e0e, 0x1698db3b, 0x4c98a0be, 0x3278e964,
- 0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e,
- 0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8,
- 0xdf359f8d, 0x9b992f2e, 0xe60b6f47, 0x0fe3f11d,
- 0xe54cda54, 0x1edad891, 0xce6279cf, 0xcd3e7e6f,
- 0x1618b166, 0xfd2c1d05, 0x848fd2c5, 0xf6fb2299,
- 0xf523f357, 0xa6327623, 0x93a83531, 0x56cccd02,
- 0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc,
- 0xde966292, 0x81b949d0, 0x4c50901b, 0x71c65614,
- 0xe6c6c7bd, 0x327a140a, 0x45e1d006, 0xc3f27b9a,
- 0xc9aa53fd, 0x62a80f00, 0xbb25bfe2, 0x35bdd2f6,
- 0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b,
- 0x53113ec0, 0x1640e3d3, 0x38abbd60, 0x2547adf0,
- 0xba38209c, 0xf746ce76, 0x77afa1c5, 0x20756060,
- 0x85cbfe4e, 0x8ae88dd8, 0x7aaaf9b0, 0x4cf9aa7e,
- 0x1948c25c, 0x02fb8a8c, 0x01c36ae4, 0xd6ebe1f9,
- 0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f,
- 0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6])
- ];
- this.P = new Uint32Array([
- 0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344,
- 0xa4093822, 0x299f31d0, 0x082efa98, 0xec4e6c89,
- 0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c,
- 0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917,
- 0x9216d5d9, 0x8979fb1b]);
-};
-
-function F(S, x8, i) {
- return (((S[0][x8[i+3]] +
- S[1][x8[i+2]]) ^
- S[2][x8[i+1]]) +
- S[3][x8[i]]);
-};
-
-Blowfish.prototype.encipher = function(x, x8) {
- if (x8 === undefined) {
- x8 = new Uint8Array(x.buffer);
- if (x.byteOffset !== 0)
- x8 = x8.subarray(x.byteOffset);
- }
- x[0] ^= this.P[0];
- for (var i = 1; i < 16; i += 2) {
- x[1] ^= F(this.S, x8, 0) ^ this.P[i];
- x[0] ^= F(this.S, x8, 4) ^ this.P[i+1];
- }
- var t = x[0];
- x[0] = x[1] ^ this.P[17];
- x[1] = t;
-};
-
-Blowfish.prototype.decipher = function(x) {
- var x8 = new Uint8Array(x.buffer);
- if (x.byteOffset !== 0)
- x8 = x8.subarray(x.byteOffset);
- x[0] ^= this.P[17];
- for (var i = 16; i > 0; i -= 2) {
- x[1] ^= F(this.S, x8, 0) ^ this.P[i];
- x[0] ^= F(this.S, x8, 4) ^ this.P[i-1];
- }
- var t = x[0];
- x[0] = x[1] ^ this.P[0];
- x[1] = t;
-};
-
-function stream2word(data, databytes){
- var i, temp = 0;
- for (i = 0; i < 4; i++, BLF_J++) {
- if (BLF_J >= databytes) BLF_J = 0;
- temp = (temp << 8) | data[BLF_J];
- }
- return temp;
-};
-
-Blowfish.prototype.expand0state = function(key, keybytes) {
- var d = new Uint32Array(2), i, k;
- var d8 = new Uint8Array(d.buffer);
-
- for (i = 0, BLF_J = 0; i < 18; i++) {
- this.P[i] ^= stream2word(key, keybytes);
- }
- BLF_J = 0;
-
- for (i = 0; i < 18; i += 2) {
- this.encipher(d, d8);
- this.P[i] = d[0];
- this.P[i+1] = d[1];
- }
-
- for (i = 0; i < 4; i++) {
- for (k = 0; k < 256; k += 2) {
- this.encipher(d, d8);
- this.S[i][k] = d[0];
- this.S[i][k+1] = d[1];
- }
- }
-};
-
-Blowfish.prototype.expandstate = function(data, databytes, key, keybytes) {
- var d = new Uint32Array(2), i, k;
-
- for (i = 0, BLF_J = 0; i < 18; i++) {
- this.P[i] ^= stream2word(key, keybytes);
- }
-
- for (i = 0, BLF_J = 0; i < 18; i += 2) {
- d[0] ^= stream2word(data, databytes);
- d[1] ^= stream2word(data, databytes);
- this.encipher(d);
- this.P[i] = d[0];
- this.P[i+1] = d[1];
- }
-
- for (i = 0; i < 4; i++) {
- for (k = 0; k < 256; k += 2) {
- d[0] ^= stream2word(data, databytes);
- d[1] ^= stream2word(data, databytes);
- this.encipher(d);
- this.S[i][k] = d[0];
- this.S[i][k+1] = d[1];
- }
- }
- BLF_J = 0;
-};
-
-Blowfish.prototype.enc = function(data, blocks) {
- for (var i = 0; i < blocks; i++) {
- this.encipher(data.subarray(i*2));
- }
-};
-
-Blowfish.prototype.dec = function(data, blocks) {
- for (var i = 0; i < blocks; i++) {
- this.decipher(data.subarray(i*2));
- }
-};
-
-var BCRYPT_BLOCKS = 8,
- BCRYPT_HASHSIZE = 32;
-
-function bcrypt_hash(sha2pass, sha2salt, out) {
- var state = new Blowfish(),
- cdata = new Uint32Array(BCRYPT_BLOCKS), i,
- ciphertext = new Uint8Array([79,120,121,99,104,114,111,109,97,116,105,
- 99,66,108,111,119,102,105,115,104,83,119,97,116,68,121,110,97,109,
- 105,116,101]); //"OxychromaticBlowfishSwatDynamite"
-
- state.expandstate(sha2salt, 64, sha2pass, 64);
- for (i = 0; i < 64; i++) {
- state.expand0state(sha2salt, 64);
- state.expand0state(sha2pass, 64);
- }
-
- for (i = 0; i < BCRYPT_BLOCKS; i++)
- cdata[i] = stream2word(ciphertext, ciphertext.byteLength);
- for (i = 0; i < 64; i++)
- state.enc(cdata, cdata.byteLength / 8);
-
- for (i = 0; i < BCRYPT_BLOCKS; i++) {
- out[4*i+3] = cdata[i] >>> 24;
- out[4*i+2] = cdata[i] >>> 16;
- out[4*i+1] = cdata[i] >>> 8;
- out[4*i+0] = cdata[i];
- }
-};
-
-function bcrypt_pbkdf(pass, passlen, salt, saltlen, key, keylen, rounds) {
- var sha2pass = new Uint8Array(64),
- sha2salt = new Uint8Array(64),
- out = new Uint8Array(BCRYPT_HASHSIZE),
- tmpout = new Uint8Array(BCRYPT_HASHSIZE),
- countsalt = new Uint8Array(saltlen+4),
- i, j, amt, stride, dest, count,
- origkeylen = keylen;
-
- if (rounds < 1)
- return -1;
- if (passlen === 0 || saltlen === 0 || keylen === 0 ||
- keylen > (out.byteLength * out.byteLength) || saltlen > (1<<20))
- return -1;
-
- stride = Math.floor((keylen + out.byteLength - 1) / out.byteLength);
- amt = Math.floor((keylen + stride - 1) / stride);
-
- for (i = 0; i < saltlen; i++)
- countsalt[i] = salt[i];
-
- crypto_hash_sha512(sha2pass, pass, passlen);
-
- for (count = 1; keylen > 0; count++) {
- countsalt[saltlen+0] = count >>> 24;
- countsalt[saltlen+1] = count >>> 16;
- countsalt[saltlen+2] = count >>> 8;
- countsalt[saltlen+3] = count;
-
- crypto_hash_sha512(sha2salt, countsalt, saltlen + 4);
- bcrypt_hash(sha2pass, sha2salt, tmpout);
- for (i = out.byteLength; i--;)
- out[i] = tmpout[i];
-
- for (i = 1; i < rounds; i++) {
- crypto_hash_sha512(sha2salt, tmpout, tmpout.byteLength);
- bcrypt_hash(sha2pass, sha2salt, tmpout);
- for (j = 0; j < out.byteLength; j++)
- out[j] ^= tmpout[j];
- }
-
- amt = Math.min(amt, keylen);
- for (i = 0; i < amt; i++) {
- dest = i * stride + (count - 1);
- if (dest >= origkeylen)
- break;
- key[dest] = out[i];
- }
- keylen -= i;
- }
-
- return 0;
-};
-
-module.exports = {
- BLOCKS: BCRYPT_BLOCKS,
- HASHSIZE: BCRYPT_HASHSIZE,
- hash: bcrypt_hash,
- pbkdf: bcrypt_pbkdf
-};
diff --git a/deps/npm/node_modules/bcrypt-pbkdf/package.json b/deps/npm/node_modules/bcrypt-pbkdf/package.json
deleted file mode 100644
index e93a969b0b7..00000000000
--- a/deps/npm/node_modules/bcrypt-pbkdf/package.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "name": "bcrypt-pbkdf",
- "version": "1.0.2",
- "description": "Port of the OpenBSD bcrypt_pbkdf function to pure JS",
- "repository": {
- "type": "git",
- "url": "git://github.com/joyent/node-bcrypt-pbkdf.git"
- },
- "main": "index.js",
- "dependencies": {
- "tweetnacl": "^0.14.3"
- },
- "devDependencies": {},
- "license": "BSD-3-Clause"
-}
diff --git a/deps/npm/node_modules/caseless/LICENSE b/deps/npm/node_modules/caseless/LICENSE
deleted file mode 100644
index 61789f4a4f8..00000000000
--- a/deps/npm/node_modules/caseless/LICENSE
+++ /dev/null
@@ -1,28 +0,0 @@
-Apache License
-Version 2.0, January 2004
-http://www.apache.org/licenses/
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-1. Definitions.
-"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
-"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
-"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
-"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
-"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
-"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
-"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
-"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
-"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
-"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
-2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
-3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
-4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
-You must give any other recipients of the Work or Derivative Works a copy of this License; and
-You must cause any modified files to carry prominent notices stating that You changed the files; and
-You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
-If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
-5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
-6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
-7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
-8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
-9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
-END OF TERMS AND CONDITIONS \ No newline at end of file
diff --git a/deps/npm/node_modules/caseless/index.js b/deps/npm/node_modules/caseless/index.js
deleted file mode 100644
index b194734ee4e..00000000000
--- a/deps/npm/node_modules/caseless/index.js
+++ /dev/null
@@ -1,67 +0,0 @@
-function Caseless (dict) {
- this.dict = dict || {}
-}
-Caseless.prototype.set = function (name, value, clobber) {
- if (typeof name === 'object') {
- for (var i in name) {
- this.set(i, name[i], value)
- }
- } else {
- if (typeof clobber === 'undefined') clobber = true
- var has = this.has(name)
-
- if (!clobber && has) this.dict[has] = this.dict[has] + ',' + value
- else this.dict[has || name] = value
- return has
- }
-}
-Caseless.prototype.has = function (name) {
- var keys = Object.keys(this.dict)
- , name = name.toLowerCase()
- ;
- for (var i=0;i<keys.length;i++) {
- if (keys[i].toLowerCase() === name) return keys[i]
- }
- return false
-}
-Caseless.prototype.get = function (name) {
- name = name.toLowerCase()
- var result, _key
- var headers = this.dict
- Object.keys(headers).forEach(function (key) {
- _key = key.toLowerCase()
- if (name === _key) result = headers[key]
- })
- return result
-}
-Caseless.prototype.swap = function (name) {
- var has = this.has(name)
- if (has === name) return
- if (!has) throw new Error('There is no header than matches "'+name+'"')
- this.dict[name] = this.dict[has]
- delete this.dict[has]
-}
-Caseless.prototype.del = function (name) {
- var has = this.has(name)
- return delete this.dict[has || name]
-}
-
-module.exports = function (dict) {return new Caseless(dict)}
-module.exports.httpify = function (resp, headers) {
- var c = new Caseless(headers)
- resp.setHeader = function (key, value, clobber) {
- if (typeof value === 'undefined') return
- return c.set(key, value, clobber)
- }
- resp.hasHeader = function (key) {
- return c.has(key)
- }
- resp.getHeader = function (key) {
- return c.get(key)
- }
- resp.removeHeader = function (key) {
- return c.del(key)
- }
- resp.headers = c.dict
- return c
-}
diff --git a/deps/npm/node_modules/caseless/package.json b/deps/npm/node_modules/caseless/package.json
deleted file mode 100644
index 408a6e16915..00000000000
--- a/deps/npm/node_modules/caseless/package.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "name": "caseless",
- "version": "0.12.0",
- "description": "Caseless object set/get/has, very useful when working with HTTP headers.",
- "main": "index.js",
- "scripts": {
- "test": "node test.js"
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/mikeal/caseless"
- },
- "keywords": [
- "headers",
- "http",
- "caseless"
- ],
- "test": "node test.js",
- "author": "Mikeal Rogers <mikeal.rogers@gmail.com>",
- "license": "Apache-2.0",
- "bugs": {
- "url": "https://github.com/mikeal/caseless/issues"
- },
- "devDependencies": {
- "tape": "^2.10.2"
- }
-}
diff --git a/deps/npm/node_modules/caseless/test.js b/deps/npm/node_modules/caseless/test.js
deleted file mode 100644
index f55196cc079..00000000000
--- a/deps/npm/node_modules/caseless/test.js
+++ /dev/null
@@ -1,67 +0,0 @@
-var tape = require('tape')
- , caseless = require('./')
- ;
-
-tape('set get has', function (t) {
- var headers = {}
- , c = caseless(headers)
- ;
- t.plan(17)
- c.set('a-Header', 'asdf')
- t.equal(c.get('a-header'), 'asdf')
- t.equal(c.has('a-header'), 'a-Header')
- t.ok(!c.has('nothing'))
- // old bug where we used the wrong regex
- t.ok(!c.has('a-hea'))
- c.set('a-header', 'fdsa')
- t.equal(c.get('a-header'), 'fdsa')
- t.equal(c.get('a-Header'), 'fdsa')
- c.set('a-HEADER', 'more', false)
- t.equal(c.get('a-header'), 'fdsa,more')
-
- t.deepEqual(headers, {'a-Header': 'fdsa,more'})
- c.swap('a-HEADER')
- t.deepEqual(headers, {'a-HEADER': 'fdsa,more'})
-
- c.set('deleteme', 'foobar')
- t.ok(c.has('deleteme'))
- t.ok(c.del('deleteme'))
- t.notOk(c.has('deleteme'))
- t.notOk(c.has('idonotexist'))
- t.ok(c.del('idonotexist'))
-
- c.set('tva', 'test1')
- c.set('tva-header', 'test2')
- t.equal(c.has('tva'), 'tva')
- t.notOk(c.has('header'))
-
- t.equal(c.get('tva'), 'test1')
-
-})
-
-tape('swap', function (t) {
- var headers = {}
- , c = caseless(headers)
- ;
- t.plan(4)
- // No Header to Swap.
- t.throws(function () {
- c.swap('content-type')
- })
- // Set Header.
- c.set('content-type', 'application/json')
- // Swap Header With Itself.
- c.swap('content-type')
- // Does Not Delete Itself.
- t.ok(c.has('content-type'))
- // Swap Header With a Different Header.
- c.swap('Content-Type')
- // Still Has Header.
- t.ok(c.has('Content-Type'))
- // Delete Header.
- c.del('Content-Type')
- // No Header to Swap.
- t.throws(function () {
- c.swap('content-type')
- })
-})
diff --git a/deps/npm/node_modules/cli-columns/color.js b/deps/npm/node_modules/cli-columns/color.js
index 82c1bef5f87..11027047f24 100644
--- a/deps/npm/node_modules/cli-columns/color.js
+++ b/deps/npm/node_modules/cli-columns/color.js
@@ -1,6 +1,7 @@
const chalk = require('chalk');
const columns = require('.');
+// prettier-ignore
const values = [
'blue' + chalk.bgBlue('berry'),
'笔菠萝' + chalk.yellow('苹果笔'),
diff --git a/deps/npm/node_modules/cli-columns/index.js b/deps/npm/node_modules/cli-columns/index.js
index 61efe981a05..1090aa21c2b 100644
--- a/deps/npm/node_modules/cli-columns/index.js
+++ b/deps/npm/node_modules/cli-columns/index.js
@@ -9,7 +9,7 @@ const defaults = {
newline: '\n',
padding: 2,
sort: true,
- width: 0
+ width: 0,
};
function byPlainText(a, b) {
@@ -56,16 +56,15 @@ function columns(values, options) {
values = concat.apply([], values);
options = Object.assign({}, defaults, options);
- let cells = values
- .filter(Boolean)
- .map(String);
+ let cells = values.filter(Boolean).map(String);
if (options.sort !== false) {
cells = cells.sort(byPlainText);
}
const termWidth = options.width || process.stdout.columns;
- const cellWidth = Math.max.apply(null, cells.map(stringWidth)) + options.padding;
+ const cellWidth =
+ Math.max.apply(null, cells.map(stringWidth)) + options.padding;
const columnCount = Math.floor(termWidth / cellWidth) || 1;
const rowCount = Math.ceil(cells.length / columnCount) || 1;
diff --git a/deps/npm/node_modules/cli-columns/node_modules/ansi-regex/index.d.ts b/deps/npm/node_modules/cli-columns/node_modules/ansi-regex/index.d.ts
new file mode 100644
index 00000000000..2dbf6af2b6f
--- /dev/null
+++ b/deps/npm/node_modules/cli-columns/node_modules/ansi-regex/index.d.ts
@@ -0,0 +1,37 @@
+declare namespace ansiRegex {
+ interface Options {
+ /**
+ Match only the first ANSI escape.
+
+ @default false
+ */
+ onlyFirst: boolean;
+ }
+}
+
+/**
+Regular expression for matching ANSI escape codes.
+
+@example
+```
+import ansiRegex = require('ansi-regex');
+
+ansiRegex().test('\u001B[4mcake\u001B[0m');
+//=> true
+
+ansiRegex().test('cake');
+//=> false
+
+'\u001B[4mcake\u001B[0m'.match(ansiRegex());
+//=> ['\u001B[4m', '\u001B[0m']
+
+'\u001B[4mcake\u001B[0m'.match(ansiRegex({onlyFirst: true}));
+//=> ['\u001B[4m']
+
+'\u001B]8;;https://github.com\u0007click\u001B]8;;\u0007'.match(ansiRegex());
+//=> ['\u001B]8;;https://github.com\u0007', '\u001B]8;;\u0007']
+```
+*/
+declare function ansiRegex(options?: ansiRegex.Options): RegExp;
+
+export = ansiRegex;
diff --git a/deps/npm/node_modules/cli-columns/node_modules/ansi-regex/index.js b/deps/npm/node_modules/cli-columns/node_modules/ansi-regex/index.js
new file mode 100644
index 00000000000..616ff837d3f
--- /dev/null
+++ b/deps/npm/node_modules/cli-columns/node_modules/ansi-regex/index.js
@@ -0,0 +1,10 @@
+'use strict';
+
+module.exports = ({onlyFirst = false} = {}) => {
+ const pattern = [
+ '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)',
+ '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))'
+ ].join('|');
+
+ return new RegExp(pattern, onlyFirst ? undefined : 'g');
+};
diff --git a/deps/npm/node_modules/har-validator/LICENSE b/deps/npm/node_modules/cli-columns/node_modules/ansi-regex/license
index a54526625e0..e7af2f77107 100644
--- a/deps/npm/node_modules/har-validator/LICENSE
+++ b/deps/npm/node_modules/cli-columns/node_modules/ansi-regex/license
@@ -1,6 +1,6 @@
MIT License
-Copyright (c) 2018 Ahmad Nassri <ahmad@ahmadnassri.com>
+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:
diff --git a/deps/npm/node_modules/cli-columns/node_modules/ansi-regex/package.json b/deps/npm/node_modules/cli-columns/node_modules/ansi-regex/package.json
new file mode 100644
index 00000000000..017f53116a9
--- /dev/null
+++ b/deps/npm/node_modules/cli-columns/node_modules/ansi-regex/package.json
@@ -0,0 +1,55 @@
+{
+ "name": "ansi-regex",
+ "version": "5.0.1",
+ "description": "Regular expression for matching ANSI escape codes",
+ "license": "MIT",
+ "repository": "chalk/ansi-regex",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "scripts": {
+ "test": "xo && ava && tsd",
+ "view-supported": "node fixtures/view-codes.js"
+ },
+ "files": [
+ "index.js",
+ "index.d.ts"
+ ],
+ "keywords": [
+ "ansi",
+ "styles",
+ "color",
+ "colour",
+ "colors",
+ "terminal",
+ "console",
+ "cli",
+ "string",
+ "tty",
+ "escape",
+ "formatting",
+ "rgb",
+ "256",
+ "shell",
+ "xterm",
+ "command-line",
+ "text",
+ "regex",
+ "regexp",
+ "re",
+ "match",
+ "test",
+ "find",
+ "pattern"
+ ],
+ "devDependencies": {
+ "ava": "^2.4.0",
+ "tsd": "^0.9.0",
+ "xo": "^0.25.3"
+ }
+}
diff --git a/deps/npm/node_modules/cli-columns/node_modules/is-fullwidth-code-point/index.d.ts b/deps/npm/node_modules/cli-columns/node_modules/is-fullwidth-code-point/index.d.ts
new file mode 100644
index 00000000000..729d2020516
--- /dev/null
+++ b/deps/npm/node_modules/cli-columns/node_modules/is-fullwidth-code-point/index.d.ts
@@ -0,0 +1,17 @@
+/**
+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).
+
+@param codePoint - The [code point](https://en.wikipedia.org/wiki/Code_point) of a character.
+
+@example
+```
+import isFullwidthCodePoint from 'is-fullwidth-code-point';
+
+isFullwidthCodePoint('谢'.codePointAt(0));
+//=> true
+
+isFullwidthCodePoint('a'.codePointAt(0));
+//=> false
+```
+*/
+export default function isFullwidthCodePoint(codePoint: number): boolean;
diff --git a/deps/npm/node_modules/cli-columns/node_modules/is-fullwidth-code-point/index.js b/deps/npm/node_modules/cli-columns/node_modules/is-fullwidth-code-point/index.js
new file mode 100644
index 00000000000..671f97f7607
--- /dev/null
+++ b/deps/npm/node_modules/cli-columns/node_modules/is-fullwidth-code-point/index.js
@@ -0,0 +1,50 @@
+/* eslint-disable yoda */
+'use strict';
+
+const isFullwidthCodePoint = codePoint => {
+ if (Number.isNaN(codePoint)) {
+ return false;
+ }
+
+ // Code points are derived from:
+ // http://www.unix.org/Public/UNIDATA/EastAsianWidth.txt
+ if (
+ codePoint >= 0x1100 && (
+ codePoint <= 0x115F || // Hangul Jamo
+ codePoint === 0x2329 || // LEFT-POINTING ANGLE BRACKET
+ codePoint === 0x232A || // RIGHT-POINTING ANGLE BRACKET
+ // CJK Radicals Supplement .. Enclosed CJK Letters and Months
+ (0x2E80 <= codePoint && codePoint <= 0x3247 && codePoint !== 0x303F) ||
+ // Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A
+ (0x3250 <= codePoint && codePoint <= 0x4DBF) ||
+ // CJK Unified Ideographs .. Yi Radicals
+ (0x4E00 <= codePoint && codePoint <= 0xA4C6) ||
+ // Hangul Jamo Extended-A
+ (0xA960 <= codePoint && codePoint <= 0xA97C) ||
+ // Hangul Syllables
+ (0xAC00 <= codePoint && codePoint <= 0xD7A3) ||
+ // CJK Compatibility Ideographs
+ (0xF900 <= codePoint && codePoint <= 0xFAFF) ||
+ // Vertical Forms
+ (0xFE10 <= codePoint && codePoint <= 0xFE19) ||
+ // CJK Compatibility Forms .. Small Form Variants
+ (0xFE30 <= codePoint && codePoint <= 0xFE6B) ||
+ // Halfwidth and Fullwidth Forms
+ (0xFF01 <= codePoint && codePoint <= 0xFF60) ||
+ (0xFFE0 <= codePoint && codePoint <= 0xFFE6) ||
+ // Kana Supplement
+ (0x1B000 <= codePoint && codePoint <= 0x1B001) ||
+ // Enclosed Ideographic Supplement
+ (0x1F200 <= codePoint && codePoint <= 0x1F251) ||
+ // CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane
+ (0x20000 <= codePoint && codePoint <= 0x3FFFD)
+ )
+ ) {
+ return true;
+ }
+
+ return false;
+};
+
+module.exports = isFullwidthCodePoint;
+module.exports.default = isFullwidthCodePoint;
diff --git a/deps/npm/node_modules/psl/LICENSE b/deps/npm/node_modules/cli-columns/node_modules/is-fullwidth-code-point/license
index 78d792eda65..e7af2f77107 100644
--- a/deps/npm/node_modules/psl/LICENSE
+++ b/deps/npm/node_modules/cli-columns/node_modules/is-fullwidth-code-point/license
@@ -1,6 +1,6 @@
-The MIT License (MIT)
+MIT License
-Copyright (c) 2017 Lupo Montero lupomontero@gmail.com
+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:
diff --git a/deps/npm/node_modules/cli-columns/node_modules/is-fullwidth-code-point/package.json b/deps/npm/node_modules/cli-columns/node_modules/is-fullwidth-code-point/package.json
new file mode 100644
index 00000000000..2137e888fa5
--- /dev/null
+++ b/deps/npm/node_modules/cli-columns/node_modules/is-fullwidth-code-point/package.json
@@ -0,0 +1,42 @@
+{
+ "name": "is-fullwidth-code-point",
+ "version": "3.0.0",
+ "description": "Check if the character represented by a given Unicode code point is fullwidth",
+ "license": "MIT",
+ "repository": "sindresorhus/is-fullwidth-code-point",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "scripts": {
+ "test": "xo && ava && tsd-check"
+ },
+ "files": [
+ "index.js",
+ "index.d.ts"
+ ],
+ "keywords": [
+ "fullwidth",
+ "full-width",
+ "full",
+ "width",
+ "unicode",
+ "character",
+ "string",
+ "codepoint",
+ "code",
+ "point",
+ "is",
+ "detect",
+ "check"
+ ],
+ "devDependencies": {
+ "ava": "^1.3.1",
+ "tsd-check": "^0.5.0",
+ "xo": "^0.24.0"
+ }
+}
diff --git a/deps/npm/node_modules/cli-columns/node_modules/string-width/index.d.ts b/deps/npm/node_modules/cli-columns/node_modules/string-width/index.d.ts
new file mode 100644
index 00000000000..12b5309751d
--- /dev/null
+++ b/deps/npm/node_modules/cli-columns/node_modules/string-width/index.d.ts
@@ -0,0 +1,29 @@
+declare const stringWidth: {
+ /**
+ 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](https://en.wikipedia.org/wiki/ANSI_escape_code) are stripped and doesn't affect the width.
+
+ @example
+ ```
+ import stringWidth = require('string-width');
+
+ stringWidth('a');
+ //=> 1
+
+ stringWidth('古');
+ //=> 2
+
+ stringWidth('\u001B[1m古\u001B[22m');
+ //=> 2
+ ```
+ */
+ (string: string): number;
+
+ // TODO: remove this in the next major version, refactor the whole definition to:
+ // declare function stringWidth(string: string): number;
+ // export = stringWidth;
+ default: typeof stringWidth;
+}
+
+export = stringWidth;
diff --git a/deps/npm/node_modules/cli-columns/node_modules/string-width/index.js b/deps/npm/node_modules/cli-columns/node_modules/string-width/index.js
new file mode 100644
index 00000000000..f4d261a96a0
--- /dev/null
+++ b/deps/npm/node_modules/cli-columns/node_modules/string-width/index.js
@@ -0,0 +1,47 @@
+'use strict';
+const stripAnsi = require('strip-ansi');
+const isFullwidthCodePoint = require('is-fullwidth-code-point');
+const emojiRegex = require('emoji-regex');
+
+const stringWidth = string => {
+ if (typeof string !== 'string' || string.length === 0) {
+ return 0;
+ }
+
+ string = stripAnsi(string);
+
+ if (string.length === 0) {
+ return 0;
+ }
+
+ string = string.replace(emojiRegex(), ' ');
+
+ let width = 0;
+
+ for (let i = 0; i < string.length; i++) {
+ const code = string.codePointAt(i);
+
+ // Ignore control characters
+ if (code <= 0x1F || (code >= 0x7F && code <= 0x9F)) {
+ continue;
+ }
+
+ // Ignore combining characters
+ if (code >= 0x300 && code <= 0x36F) {
+ continue;
+ }
+
+ // Surrogates
+ if (code > 0xFFFF) {
+ i++;
+ }
+
+ width += isFullwidthCodePoint(code) ? 2 : 1;
+ }
+
+ return width;
+};
+
+module.exports = stringWidth;
+// TODO: remove this in the next major version
+module.exports.default = stringWidth;
diff --git a/deps/npm/node_modules/performance-now/license.txt b/deps/npm/node_modules/cli-columns/node_modules/string-width/license
index 0bf51b460fc..e7af2f77107 100644
--- a/deps/npm/node_modules/performance-now/license.txt
+++ b/deps/npm/node_modules/cli-columns/node_modules/string-width/license
@@ -1,7 +1,9 @@
-Copyright (c) 2013 Braveg1rl
+MIT License
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file
+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/deps/npm/node_modules/cli-columns/node_modules/string-width/package.json b/deps/npm/node_modules/cli-columns/node_modules/string-width/package.json
new file mode 100644
index 00000000000..28ba7b4cae9
--- /dev/null
+++ b/deps/npm/node_modules/cli-columns/node_modules/string-width/package.json
@@ -0,0 +1,56 @@
+{
+ "name": "string-width",
+ "version": "4.2.3",
+ "description": "Get the visual width of a string - the number of columns required to display it",
+ "license": "MIT",
+ "repository": "sindresorhus/string-width",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "scripts": {
+ "test": "xo && ava && tsd"
+ },
+ "files": [
+ "index.js",
+ "index.d.ts"
+ ],
+ "keywords": [
+ "string",
+ "character",
+ "unicode",
+ "width",
+ "visual",
+ "column",
+ "columns",
+ "fullwidth",
+ "full-width",
+ "full",
+ "ansi",
+ "escape",
+ "codes",
+ "cli",
+ "command-line",
+ "terminal",
+ "console",
+ "cjk",
+ "chinese",
+ "japanese",
+ "korean",
+ "fixed-width"
+ ],
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "devDependencies": {
+ "ava": "^1.4.1",
+ "tsd": "^0.7.1",
+ "xo": "^0.24.0"
+ }
+}
diff --git a/deps/npm/node_modules/cli-columns/node_modules/strip-ansi/index.d.ts b/deps/npm/node_modules/cli-columns/node_modules/strip-ansi/index.d.ts
new file mode 100644
index 00000000000..907fccc2926
--- /dev/null
+++ b/deps/npm/node_modules/cli-columns/node_modules/strip-ansi/index.d.ts
@@ -0,0 +1,17 @@
+/**
+Strip [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) from a string.
+
+@example
+```
+import stripAnsi = require('strip-ansi');
+
+stripAnsi('\u001B[4mUnicorn\u001B[0m');
+//=> 'Unicorn'
+
+stripAnsi('\u001B]8;;https://github.com\u0007Click\u001B]8;;\u0007');
+//=> 'Click'
+```
+*/
+declare function stripAnsi(string: string): string;
+
+export = stripAnsi;
diff --git a/deps/npm/node_modules/cli-columns/node_modules/strip-ansi/index.js b/deps/npm/node_modules/cli-columns/node_modules/strip-ansi/index.js
new file mode 100644
index 00000000000..9a593dfcd1f
--- /dev/null
+++ b/deps/npm/node_modules/cli-columns/node_modules/strip-ansi/index.js
@@ -0,0 +1,4 @@
+'use strict';
+const ansiRegex = require('ansi-regex');
+
+module.exports = string => typeof string === 'string' ? string.replace(ansiRegex(), '') : string;
diff --git a/deps/npm/node_modules/isstream/LICENSE.md b/deps/npm/node_modules/cli-columns/node_modules/strip-ansi/license
index 43f7153f9f9..e7af2f77107 100644
--- a/deps/npm/node_modules/isstream/LICENSE.md
+++ b/deps/npm/node_modules/cli-columns/node_modules/strip-ansi/license
@@ -1,8 +1,6 @@
-The MIT License (MIT)
-=====================
+MIT License
-Copyright (c) 2015 Rod Vagg
----------------------------
+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:
diff --git a/deps/npm/node_modules/cli-columns/node_modules/strip-ansi/package.json b/deps/npm/node_modules/cli-columns/node_modules/strip-ansi/package.json
new file mode 100644
index 00000000000..1a41108d428
--- /dev/null
+++ b/deps/npm/node_modules/cli-columns/node_modules/strip-ansi/package.json
@@ -0,0 +1,54 @@
+{
+ "name": "strip-ansi",
+ "version": "6.0.1",
+ "description": "Strip ANSI escape codes from a string",
+ "license": "MIT",
+ "repository": "chalk/strip-ansi",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "scripts": {
+ "test": "xo && ava && tsd"
+ },
+ "files": [
+ "index.js",
+ "index.d.ts"
+ ],
+ "keywords": [
+ "strip",
+ "trim",
+ "remove",
+ "ansi",
+ "styles",
+ "color",
+ "colour",
+ "colors",
+ "terminal",
+ "console",
+ "string",
+ "tty",
+ "escape",
+ "formatting",
+ "rgb",
+ "256",
+ "shell",
+ "xterm",
+ "log",
+ "logging",
+ "command-line",
+ "text"
+ ],
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "devDependencies": {
+ "ava": "^2.4.0",
+ "tsd": "^0.10.0",
+ "xo": "^0.25.3"
+ }
+}
diff --git a/deps/npm/node_modules/cli-columns/package.json b/deps/npm/node_modules/cli-columns/package.json
index cd1c252cd68..129f2c1316d 100644
--- a/deps/npm/node_modules/cli-columns/package.json
+++ b/deps/npm/node_modules/cli-columns/package.json
@@ -1,10 +1,10 @@
{
"name": "cli-columns",
- "version": "3.1.2",
+ "version": "4.0.0",
"description": "Columnated lists for the CLI.",
"scripts": {
- "report": "nyc report -r text-lcov | coveralls",
- "test": "xo && nyc ava"
+ "lint": "npx eslint --fix '*.js' && npx prettier --write '*.js'",
+ "test": "node test.js && node color.js"
},
"keywords": [
"ansi",
@@ -30,17 +30,25 @@
"*.js"
],
"dependencies": {
- "string-width": "^2.0.0",
- "strip-ansi": "^3.0.1"
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1"
},
"devDependencies": {
- "ava": "^0.19.1",
- "chalk": "^1.1.3",
- "coveralls": "^2.13.1",
- "nyc": "^11.0.2",
- "xo": "^0.18.2"
+ "chalk": "^4.1.2"
},
"engines": {
- "node": ">= 4"
+ "node": ">= 10"
+ },
+ "eslintConfig": {
+ "extends": "eslint:recommended",
+ "env": {
+ "node": true
+ },
+ "parserOptions": {
+ "ecmaVersion": 8
+ }
+ },
+ "prettier": {
+ "singleQuote": true
}
}
diff --git a/deps/npm/node_modules/cli-columns/test.js b/deps/npm/node_modules/cli-columns/test.js
index 1ff642cd54b..4d95e7cf073 100644
--- a/deps/npm/node_modules/cli-columns/test.js
+++ b/deps/npm/node_modules/cli-columns/test.js
@@ -1,8 +1,28 @@
-import test from 'ava';
-import chalk from 'chalk';
-import stripAnsi from 'strip-ansi';
-import columns from './index';
+'use strict';
+const assert = require('assert');
+const chalk = require('chalk');
+const stripAnsi = require('strip-ansi');
+const columns = require('./index.js');
+const tests = [];
+
+function test(msg, fn) {
+ tests.push([msg, fn]);
+}
+
+process.nextTick(async function run() {
+ for (const [msg, fn] of tests) {
+ try {
+ await fn(assert);
+ console.log(`pass - ${msg}`);
+ } catch (error) {
+ console.error(`fail - ${msg}`, error);
+ process.exit(1);
+ }
+ }
+});
+
+// prettier-ignore
test('should print one column list', t => {
const cols = columns(['foo', ['bar', 'baz'], ['bar', 'qux']], {
width: 1
@@ -15,9 +35,10 @@ test('should print one column list', t => {
'foo\n' +
'qux';
- t.is(cols, expected);
+ t.equal(cols, expected);
});
+// prettier-ignore
test('should print three column list', t => {
const cols = columns(['foo', ['bar', 'baz'], ['bat', 'qux']], {
width: 16
@@ -27,9 +48,10 @@ test('should print three column list', t => {
'bar baz qux \n' +
'bat foo ';
- t.is(cols, expected);
+ t.equal(cols, expected);
});
+// prettier-ignore
test('should print complex list', t => {
const cols = columns(
[
@@ -50,9 +72,10 @@ test('should print complex list', t => {
'apricot baz foo 嶜憃撊 噾噿嚁 \n' +
'banana pineapple blueberry pomegranate ';
- t.is(stripAnsi(cols), expected);
+ t.equal(stripAnsi(cols), expected);
});
+// prettier-ignore
test('should optionally not sort', t => {
const cols = columns(
[
@@ -74,5 +97,5 @@ test('should optionally not sort', t => {
'bar blueberry durian banana pineapple \n' +
'baz apple star fruit ';
- t.is(stripAnsi(cols), expected);
+ t.equal(stripAnsi(cols), expected);
});
diff --git a/deps/npm/node_modules/combined-stream/License b/deps/npm/node_modules/combined-stream/License
deleted file mode 100644
index 4804b7ab411..00000000000
--- a/deps/npm/node_modules/combined-stream/License
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2011 Debuggable Limited <felix@debuggable.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/deps/npm/node_modules/combined-stream/Readme.md b/deps/npm/node_modules/combined-stream/Readme.md
deleted file mode 100644
index 9e367b5bc5b..00000000000
--- a/deps/npm/node_modules/combined-stream/Readme.md
+++ /dev/null
@@ -1,138 +0,0 @@
-# combined-stream
-
-A stream that emits multiple other streams one after another.
-
-**NB** Currently `combined-stream` works with streams version 1 only. There is ongoing effort to switch this library to streams version 2. Any help is welcome. :) Meanwhile you can explore other libraries that provide streams2 support with more or less compatibility with `combined-stream`.
-
-- [combined-stream2](https://www.npmjs.com/package/combined-stream2): A drop-in streams2-compatible replacement for the combined-stream module.
-
-- [multistream](https://www.npmjs.com/package/multistream): A stream that emits multiple other streams one after another.
-
-## Installation
-
-``` bash
-npm install combined-stream
-```
-
-## Usage
-
-Here is a simple example that shows how you can use combined-stream to combine
-two files into one:
-
-``` javascript
-var CombinedStream = require('combined-stream');
-var fs = require('fs');
-
-var combinedStream = CombinedStream.create();
-combinedStream.append(fs.createReadStream('file1.txt'));
-combinedStream.append(fs.createReadStream('file2.txt'));
-
-combinedStream.pipe(fs.createWriteStream('combined.txt'));
-```
-
-While the example above works great, it will pause all source streams until
-they are needed. If you don't want that to happen, you can set `pauseStreams`
-to `false`:
-
-``` javascript
-var CombinedStream = require('combined-stream');
-var fs = require('fs');
-
-var combinedStream = CombinedStream.create({pauseStreams: false});
-combinedStream.append(fs.createReadStream('file1.txt'));
-combinedStream.append(fs.createReadStream('file2.txt'));
-
-combinedStream.pipe(fs.createWriteStream('combined.txt'));
-```
-
-However, what if you don't have all the source streams yet, or you don't want
-to allocate the resources (file descriptors, memory, etc.) for them right away?
-Well, in that case you can simply provide a callback that supplies the stream
-by calling a `next()` function:
-
-``` javascript
-var CombinedStream = require('combined-stream');
-var fs = require('fs');
-
-var combinedStream = CombinedStream.create();
-combinedStream.append(function(next) {
- next(fs.createReadStream('file1.txt'));
-});
-combinedStream.append(function(next) {
- next(fs.createReadStream('file2.txt'));
-});
-
-combinedStream.pipe(fs.createWriteStream('combined.txt'));
-```
-
-## API
-
-### CombinedStream.create([options])
-
-Returns a new combined stream object. Available options are:
-
-* `maxDataSize`
-* `pauseStreams`
-
-The effect of those options is described below.
-
-### combinedStream.pauseStreams = `true`
-
-Whether to apply back pressure to the underlaying streams. If set to `false`,
-the underlaying streams will never be paused. If set to `true`, the
-underlaying streams will be paused right after being appended, as well as when
-`delayedStream.pipe()` wants to throttle.
-
-### combinedStream.maxDataSize = `2 * 1024 * 1024`
-
-The maximum amount of bytes (or characters) to buffer for all source streams.
-If this value is exceeded, `combinedStream` emits an `'error'` event.
-
-### combinedStream.dataSize = `0`
-
-The amount of bytes (or characters) currently buffered by `combinedStream`.
-
-### combinedStream.append(stream)
-
-Appends the given `stream` to the combinedStream object. If `pauseStreams` is
-set to `true, this stream will also be paused right away.
-
-`streams` can also be a function that takes one parameter called `next`. `next`
-is a function that must be invoked in order to provide the `next` stream, see
-example above.
-
-Regardless of how the `stream` is appended, combined-stream always attaches an
-`'error'` listener to it, so you don't have to do that manually.
-
-Special case: `stream` can also be a String or Buffer.
-
-### combinedStream.write(data)
-
-You should not call this, `combinedStream` takes care of piping the appended
-streams into itself for you.
-
-### combinedStream.resume()
-
-Causes `combinedStream` to start drain the streams it manages. The function is
-idempotent, and also emits a `'resume'` event each time which usually goes to
-the stream that is currently being drained.
-
-### combinedStream.pause();
-
-If `combinedStream.pauseStreams` is set to `false`, this does nothing.
-Otherwise a `'pause'` event is emitted, this goes to the stream that is
-currently being drained, so you can use it to apply back pressure.
-
-### combinedStream.end();
-
-Sets `combinedStream.writable` to false, emits an `'end'` event, and removes
-all streams from the queue.
-
-### combinedStream.destroy();
-
-Same as `combinedStream.end()`, except it emits a `'close'` event instead of
-`'end'`.
-
-## License
-
-combined-stream is licensed under the MIT license.
diff --git a/deps/npm/node_modules/combined-stream/lib/combined_stream.js b/deps/npm/node_modules/combined-stream/lib/combined_stream.js
deleted file mode 100644
index 125f097f358..00000000000
--- a/deps/npm/node_modules/combined-stream/lib/combined_stream.js
+++ /dev/null
@@ -1,208 +0,0 @@
-var util = require('util');
-var Stream = require('stream').Stream;
-var DelayedStream = require('delayed-stream');
-
-module.exports = CombinedStream;
-function CombinedStream() {
- this.writable = false;
- this.readable = true;
- this.dataSize = 0;
- this.maxDataSize = 2 * 1024 * 1024;
- this.pauseStreams = true;
-
- this._released = false;
- this._streams = [];
- this._currentStream = null;
- this._insideLoop = false;
- this._pendingNext = false;
-}
-util.inherits(CombinedStream, Stream);
-
-CombinedStream.create = function(options) {
- var combinedStream = new this();
-
- options = options || {};
- for (var option in options) {
- combinedStream[option] = options[option];
- }
-
- return combinedStream;
-};
-
-CombinedStream.isStreamLike = function(stream) {
- return (typeof stream !== 'function')
- && (typeof stream !== 'string')
- && (typeof stream !== 'boolean')
- && (typeof stream !== 'number')
- && (!Buffer.isBuffer(stream));
-};
-
-CombinedStream.prototype.append = function(stream) {
- var isStreamLike = CombinedStream.isStreamLike(stream);
-
- if (isStreamLike) {
- if (!(stream instanceof DelayedStream)) {
- var newStream = DelayedStream.create(stream, {
- maxDataSize: Infinity,
- pauseStream: this.pauseStreams,
- });
- stream.on('data', this._checkDataSize.bind(this));
- stream = newStream;
- }
-
- this._handleErrors(stream);
-
- if (this.pauseStreams) {
- stream.pause();
- }
- }
-
- this._streams.push(stream);
- return this;
-};
-
-CombinedStream.prototype.pipe = function(dest, options) {
- Stream.prototype.pipe.call(this, dest, options);
- this.resume();
- return dest;
-};
-
-CombinedStream.prototype._getNext = function() {
- this._currentStream = null;
-
- if (this._insideLoop) {
- this._pendingNext = true;
- return; // defer call
- }
-
- this._insideLoop = true;
- try {
- do {
- this._pendingNext = false;
- this._realGetNext();
- } while (this._pendingNext);
- } finally {
- this._insideLoop = false;
- }
-};
-
-CombinedStream.prototype._realGetNext = function() {
- var stream = this._streams.shift();
-
-
- if (typeof stream == 'undefined') {
- this.end();
- return;
- }
-
- if (typeof stream !== 'function') {
- this._pipeNext(stream);
- return;
- }
-
- var getStream = stream;
- getStream(function(stream) {
- var isStreamLike = CombinedStream.isStreamLike(stream);
- if (isStreamLike) {
- stream.on('data', this._checkDataSize.bind(this));
- this._handleErrors(stream);
- }
-
- this._pipeNext(stream);
- }.bind(this));
-};
-
-CombinedStream.prototype._pipeNext = function(stream) {
- this._currentStream = stream;
-
- var isStreamLike = CombinedStream.isStreamLike(stream);
- if (isStreamLike) {
- stream.on('end', this._getNext.bind(this));
- stream.pipe(this, {end: false});
- return;
- }
-
- var value = stream;
- this.write(value);
- this._getNext();
-};
-
-CombinedStream.prototype._handleErrors = function(stream) {
- var self = this;
- stream.on('error', function(err) {
- self._emitError(err);
- });
-};
-
-CombinedStream.prototype.write = function(data) {
- this.emit('data', data);
-};
-
-CombinedStream.prototype.pause = function() {
- if (!this.pauseStreams) {
- return;
- }
-
- if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause();
- this.emit('pause');
-};
-
-CombinedStream.prototype.resume = function() {
- if (!this._released) {
- this._released = true;
- this.writable = true;
- this._getNext();
- }
-
- if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume();
- this.emit('resume');
-};
-
-CombinedStream.prototype.end = function() {
- this._reset();
- this.emit('end');
-};
-
-CombinedStream.prototype.destroy = function() {
- this._reset();
- this.emit('close');
-};
-
-CombinedStream.prototype._reset = function() {
- this.writable = false;
- this._streams = [];
- this._currentStream = null;
-};
-
-CombinedStream.prototype._checkDataSize = function() {
- this._updateDataSize();
- if (this.dataSize <= this.maxDataSize) {
- return;
- }
-
- var message =
- 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.';
- this._emitError(new Error(message));
-};
-
-CombinedStream.prototype._updateDataSize = function() {
- this.dataSize = 0;
-
- var self = this;
- this._streams.forEach(function(stream) {
- if (!stream.dataSize) {
- return;
- }
-
- self.dataSize += stream.dataSize;
- });
-
- if (this._currentStream && this._currentStream.dataSize) {
- this.dataSize += this._currentStream.dataSize;
- }
-};
-
-CombinedStream.prototype._emitError = function(err) {
- this._reset();
- this.emit('error', err);
-};
diff --git a/deps/npm/node_modules/combined-stream/package.json b/deps/npm/node_modules/combined-stream/package.json
deleted file mode 100644
index 6982b6da175..00000000000
--- a/deps/npm/node_modules/combined-stream/package.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- "author": "Felix Geisendörfer <felix@debuggable.com> (http://debuggable.com/)",
- "name": "combined-stream",
- "description": "A stream that emits multiple other streams one after another.",
- "version": "1.0.8",
- "homepage": "https://github.com/felixge/node-combined-stream",
- "repository": {
- "type": "git",
- "url": "git://github.com/felixge/node-combined-stream.git"
- },
- "main": "./lib/combined_stream",
- "scripts": {
- "test": "node test/run.js"
- },
- "engines": {
- "node": ">= 0.8"
- },
- "dependencies": {
- "delayed-stream": "~1.0.0"
- },
- "devDependencies": {
- "far": "~0.0.7"
- },
- "license": "MIT"
-}
diff --git a/deps/npm/node_modules/combined-stream/yarn.lock b/deps/npm/node_modules/combined-stream/yarn.lock
deleted file mode 100644
index 7edf41840c9..00000000000
--- a/deps/npm/node_modules/combined-stream/yarn.lock
+++ /dev/null
@@ -1,17 +0,0 @@
-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
-# yarn lockfile v1
-
-
-delayed-stream@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
-
-far@~0.0.7:
- version "0.0.7"
- resolved "https://registry.yarnpkg.com/far/-/far-0.0.7.tgz#01c1fd362bcd26ce9cf161af3938aa34619f79a7"
- dependencies:
- oop "0.0.3"
-
-oop@0.0.3:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/oop/-/oop-0.0.3.tgz#70fa405a5650891a194fdc82ca68dad6dabf4401"
diff --git a/deps/npm/node_modules/core-util-is/LICENSE b/deps/npm/node_modules/core-util-is/LICENSE
deleted file mode 100644
index d8d7f9437db..00000000000
--- a/deps/npm/node_modules/core-util-is/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright Node.js contributors. All rights reserved.
-
-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/deps/npm/node_modules/core-util-is/float.patch b/deps/npm/node_modules/core-util-is/float.patch
deleted file mode 100644
index a06d5c05f75..00000000000
--- a/deps/npm/node_modules/core-util-is/float.patch
+++ /dev/null
@@ -1,604 +0,0 @@
-diff --git a/lib/util.js b/lib/util.js
-index a03e874..9074e8e 100644
---- a/lib/util.js
-+++ b/lib/util.js
-@@ -19,430 +19,6 @@
- // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- // USE OR OTHER DEALINGS IN THE SOFTWARE.
-
--var formatRegExp = /%[sdj%]/g;
--exports.format = function(f) {
-- if (!isString(f)) {
-- var objects = [];
-- for (var i = 0; i < arguments.length; i++) {
-- objects.push(inspect(arguments[i]));
-- }
-- return objects.join(' ');
-- }
--
-- var i = 1;
-- var args = arguments;
-- var len = args.length;
-- var str = String(f).replace(formatRegExp, function(x) {
-- if (x === '%%') return '%';
-- if (i >= len) return x;
-- switch (x) {
-- case '%s': return String(args[i++]);
-- case '%d': return Number(args[i++]);
-- case '%j':
-- try {
-- return JSON.stringify(args[i++]);
-- } catch (_) {
-- return '[Circular]';
-- }
-- default:
-- return x;
-- }
-- });
-- for (var x = args[i]; i < len; x = args[++i]) {
-- if (isNull(x) || !isObject(x)) {
-- str += ' ' + x;
-- } else {
-- str += ' ' + inspect(x);
-- }
-- }
-- return str;
--};
--
--
--// Mark that a method should not be used.
--// Returns a modified function which warns once by default.
--// If --no-deprecation is set, then it is a no-op.
--exports.deprecate = function(fn, msg) {
-- // Allow for deprecating things in the process of starting up.
-- if (isUndefined(global.process)) {
-- return function() {
-- return exports.deprecate(fn, msg).apply(this, arguments);
-- };
-- }
--
-- if (process.noDeprecation === true) {
-- return fn;
-- }
--
-- var warned = false;
-- function deprecated() {
-- if (!warned) {
-- if (process.throwDeprecation) {
-- throw new Error(msg);
-- } else if (process.traceDeprecation) {
-- console.trace(msg);
-- } else {
-- console.error(msg);
-- }
-- warned = true;
-- }
-- return fn.apply(this, arguments);
-- }
--
-- return deprecated;
--};
--
--
--var debugs = {};
--var debugEnviron;
--exports.debuglog = function(set) {
-- if (isUndefined(debugEnviron))
-- debugEnviron = process.env.NODE_DEBUG || '';
-- set = set.toUpperCase();
-- if (!debugs[set]) {
-- if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
-- var pid = process.pid;
-- debugs[set] = function() {
-- var msg = exports.format.apply(exports, arguments);
-- console.error('%s %d: %s', set, pid, msg);
-- };
-- } else {
-- debugs[set] = function() {};
-- }
-- }
-- return debugs[set];
--};
--
--
--/**
-- * Echos the value of a value. Trys to print the value out
-- * in the best way possible given the different types.
-- *
-- * @param {Object} obj The object to print out.
-- * @param {Object} opts Optional options object that alters the output.
-- */
--/* legacy: obj, showHidden, depth, colors*/
--function inspect(obj, opts) {
-- // default options
-- var ctx = {
-- seen: [],
-- stylize: stylizeNoColor
-- };
-- // legacy...
-- if (arguments.length >= 3) ctx.depth = arguments[2];
-- if (arguments.length >= 4) ctx.colors = arguments[3];
-- if (isBoolean(opts)) {
-- // legacy...
-- ctx.showHidden = opts;
-- } else if (opts) {
-- // got an "options" object
-- exports._extend(ctx, opts);
-- }
-- // set default options
-- if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
-- if (isUndefined(ctx.depth)) ctx.depth = 2;
-- if (isUndefined(ctx.colors)) ctx.colors = false;
-- if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
-- if (ctx.colors) ctx.stylize = stylizeWithColor;
-- return formatValue(ctx, obj, ctx.depth);
--}
--exports.inspect = inspect;
--
--
--// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
--inspect.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]
--};
--
--// Don't use 'blue' not visible on cmd.exe
--inspect.styles = {
-- 'special': 'cyan',
-- 'number': 'yellow',
-- 'boolean': 'yellow',
-- 'undefined': 'grey',
-- 'null': 'bold',
-- 'string': 'green',
-- 'date': 'magenta',
-- // "name": intentionally not styling
-- 'regexp': 'red'
--};
--
--
--function stylizeWithColor(str, styleType) {
-- var style = inspect.styles[styleType];
--
-- if (style) {
-- return '\u001b[' + inspect.colors[style][0] + 'm' + str +
-- '\u001b[' + inspect.colors[style][1] + 'm';
-- } else {
-- return str;
-- }
--}
--
--
--function stylizeNoColor(str, styleType) {
-- return str;
--}
--
--
--function arrayToHash(array) {
-- var hash = {};
--
-- array.forEach(function(val, idx) {
-- hash[val] = true;
-- });
--
-- return hash;
--}
--
--
--function formatValue(ctx, value, recurseTimes) {
-- // Provide a hook for user-specified inspect functions.
-- // Check that value is an object with an inspect function on it
-- if (ctx.customInspect &&
-- value &&
-- isFunction(value.inspect) &&
-- // Filter out the util module, it's inspect function is special
-- value.inspect !== exports.inspect &&
-- // Also filter out any prototype objects using the circular check.
-- !(value.constructor && value.constructor.prototype === value)) {
-- var ret = value.inspect(recurseTimes, ctx);
-- if (!isString(ret)) {
-- ret = formatValue(ctx, ret, recurseTimes);
-- }
-- return ret;
-- }
--
-- // Primitive types cannot have properties
-- var primitive = formatPrimitive(ctx, value);
-- if (primitive) {
-- return primitive;
-- }
--
-- // Look up the keys of the object.
-- var keys = Object.keys(value);
-- var visibleKeys = arrayToHash(keys);
--
-- if (ctx.showHidden) {
-- keys = Object.getOwnPropertyNames(value);
-- }
--
-- // Some type of object without properties can be shortcutted.
-- if (keys.length === 0) {
-- if (isFunction(value)) {
-- var name = value.name ? ': ' + value.name : '';
-- return ctx.stylize('[Function' + name + ']', 'special');
-- }
-- if (isRegExp(value)) {
-- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
-- }
-- if (isDate(value)) {
-- return ctx.stylize(Date.prototype.toString.call(value), 'date');
-- }
-- if (isError(value)) {
-- return formatError(value);
-- }
-- }
--
-- var base = '', array = false, braces = ['{', '}'];
--
-- // Make Array say that they are Array
-- if (isArray(value)) {
-- array = true;
-- braces = ['[', ']'];
-- }
--
-- // Make functions say that they are functions
-- if (isFunction(value)) {
-- var n = value.name ? ': ' + value.name : '';
-- base = ' [Function' + n + ']';
-- }
--
-- // Make RegExps say that they are RegExps
-- if (isRegExp(value)) {
-- base = ' ' + RegExp.prototype.toString.call(value);
-- }
--
-- // Make dates with properties first say the date
-- if (isDate(value)) {
-- base = ' ' + Date.prototype.toUTCString.call(value);
-- }
--
-- // Make error with message first say the error
-- if (isError(value)) {
-- base = ' ' + formatError(value);
-- }
--
-- if (keys.length === 0 && (!array || value.length == 0)) {
-- return braces[0] + base + braces[1];
-- }
--
-- if (recurseTimes < 0) {
-- if (isRegExp(value)) {
-- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
-- } else {
-- return ctx.stylize('[Object]', 'special');
-- }
-- }
--
-- ctx.seen.push(value);
--
-- var output;
-- if (array) {
-- output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
-- } else {
-- output = keys.map(function(key) {
-- return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
-- });
-- }
--
-- ctx.seen.pop();
--
-- return reduceToSingleString(output, base, braces);
--}
--
--
--function formatPrimitive(ctx, value) {
-- if (isUndefined(value))
-- return ctx.stylize('undefined', 'undefined');
-- if (isString(value)) {
-- var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
-- .replace(/'/g, "\\'")
-- .replace(/\\"/g, '"') + '\'';
-- return ctx.stylize(simple, 'string');
-- }
-- if (isNumber(value)) {
-- // Format -0 as '-0'. Strict equality won't distinguish 0 from -0,
-- // so instead we use the fact that 1 / -0 < 0 whereas 1 / 0 > 0 .
-- if (value === 0 && 1 / value < 0)
-- return ctx.stylize('-0', 'number');
-- return ctx.stylize('' + value, 'number');
-- }
-- if (isBoolean(value))
-- return ctx.stylize('' + value, 'boolean');
-- // For some reason typeof null is "object", so special case here.
-- if (isNull(value))
-- return ctx.stylize('null', 'null');
--}
--
--
--function formatError(value) {
-- return '[' + Error.prototype.toString.call(value) + ']';
--}
--
--
--function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
-- var output = [];
-- for (var i = 0, l = value.length; i < l; ++i) {
-- if (hasOwnProperty(value, String(i))) {
-- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
-- String(i), true));
-- } else {
-- output.push('');
-- }
-- }
-- keys.forEach(function(key) {
-- if (!key.match(/^\d+$/)) {
-- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
-- key, true));
-- }
-- });
-- return output;
--}
--
--
--function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
-- var name, str, desc;
-- desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
-- if (desc.get) {
-- if (desc.set) {
-- str = ctx.stylize('[Getter/Setter]', 'special');
-- } else {
-- str = ctx.stylize('[Getter]', 'special');
-- }
-- } else {
-- if (desc.set) {
-- str = ctx.stylize('[Setter]', 'special');
-- }
-- }
-- if (!hasOwnProperty(visibleKeys, key)) {
-- name = '[' + key + ']';
-- }
-- if (!str) {
-- if (ctx.seen.indexOf(desc.value) < 0) {
-- if (isNull(recurseTimes)) {
-- str = formatValue(ctx, desc.value, null);
-- } else {
-- str = formatValue(ctx, desc.value, recurseTimes - 1);
-- }
-- if (str.indexOf('\n') > -1) {
-- if (array) {
-- str = str.split('\n').map(function(line) {
-- return ' ' + line;
-- }).join('\n').substr(2);
-- } else {
-- str = '\n' + str.split('\n').map(function(line) {
-- return ' ' + line;
-- }).join('\n');
-- }
-- }
-- } else {
-- str = ctx.stylize('[Circular]', 'special');
-- }
-- }
-- if (isUndefined(name)) {
-- if (array && key.match(/^\d+$/)) {
-- return str;
-- }
-- name = JSON.stringify('' + key);
-- if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) {
-- name = name.substr(1, name.length - 2);
-- name = ctx.stylize(name, 'name');
-- } else {
-- name = name.replace(/'/g, "\\'")
-- .replace(/\\"/g, '"')
-- .replace(/(^"|"$)/g, "'");
-- name = ctx.stylize(name, 'string');
-- }
-- }
--
-- return name + ': ' + str;
--}
--
--
--function reduceToSingleString(output, base, braces) {
-- var numLinesEst = 0;
-- var length = output.reduce(function(prev, cur) {
-- numLinesEst++;
-- if (cur.indexOf('\n') >= 0) numLinesEst++;
-- return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1;
-- }, 0);
--
-- if (length > 60) {
-- return braces[0] +
-- (base === '' ? '' : base + '\n ') +
-- ' ' +
-- output.join(',\n ') +
-- ' ' +
-- braces[1];
-- }
--
-- return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];
--}
--
--
- // NOTE: These type checking functions intentionally don't use `instanceof`
- // because it is fragile and can be easily faked with `Object.create()`.
- function isArray(ar) {
-@@ -522,166 +98,10 @@ function isPrimitive(arg) {
- exports.isPrimitive = isPrimitive;
-
- function isBuffer(arg) {
-- return arg instanceof Buffer;
-+ return Buffer.isBuffer(arg);
- }
- exports.isBuffer = isBuffer;
-
- function objectToString(o) {
- return Object.prototype.toString.call(o);
--}
--
--
--function pad(n) {
-- return n < 10 ? '0' + n.toString(10) : n.toString(10);
--}
--
--
--var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
-- 'Oct', 'Nov', 'Dec'];
--
--// 26 Feb 16:19:34
--function timestamp() {
-- var d = new Date();
-- var time = [pad(d.getHours()),
-- pad(d.getMinutes()),
-- pad(d.getSeconds())].join(':');
-- return [d.getDate(), months[d.getMonth()], time].join(' ');
--}
--
--
--// log is just a thin wrapper to console.log that prepends a timestamp
--exports.log = function() {
-- console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
--};
--
--
--/**
-- * Inherit the prototype methods from one constructor into another.
-- *
-- * The Function.prototype.inherits from lang.js rewritten as a standalone
-- * function (not on Function.prototype). NOTE: If this file is to be loaded
-- * during bootstrapping this function needs to be rewritten using some native
-- * functions as prototype setup using normal JavaScript does not work as
-- * expected during bootstrapping (see mirror.js in r114903).
-- *
-- * @param {function} ctor Constructor function which needs to inherit the
-- * prototype.
-- * @param {function} superCtor Constructor function to inherit prototype from.
-- */
--exports.inherits = function(ctor, superCtor) {
-- ctor.super_ = superCtor;
-- ctor.prototype = Object.create(superCtor.prototype, {
-- constructor: {
-- value: ctor,
-- enumerable: false,
-- writable: true,
-- configurable: true
-- }
-- });
--};
--
--exports._extend = function(origin, add) {
-- // Don't do anything if add isn't an object
-- if (!add || !isObject(add)) return origin;
--
-- var keys = Object.keys(add);
-- var i = keys.length;
-- while (i--) {
-- origin[keys[i]] = add[keys[i]];
-- }
-- return origin;
--};
--
--function hasOwnProperty(obj, prop) {
-- return Object.prototype.hasOwnProperty.call(obj, prop);
--}
--
--
--// Deprecated old stuff.
--
--exports.p = exports.deprecate(function() {
-- for (var i = 0, len = arguments.length; i < len; ++i) {
-- console.error(exports.inspect(arguments[i]));
-- }
--}, 'util.p: Use console.error() instead');
--
--
--exports.exec = exports.deprecate(function() {
-- return require('child_process').exec.apply(this, arguments);
--}, 'util.exec is now called `child_process.exec`.');
--
--
--exports.print = exports.deprecate(function() {
-- for (var i = 0, len = arguments.length; i < len; ++i) {
-- process.stdout.write(String(arguments[i]));
-- }
--}, 'util.print: Use console.log instead');
--
--
--exports.puts = exports.deprecate(function() {
-- for (var i = 0, len = arguments.length; i < len; ++i) {
-- process.stdout.write(arguments[i] + '\n');
-- }
--}, 'util.puts: Use console.log instead');
--
--
--exports.debug = exports.deprecate(function(x) {
-- process.stderr.write('DEBUG: ' + x + '\n');
--}, 'util.debug: Use console.error instead');
--
--
--exports.error = exports.deprecate(function(x) {
-- for (var i = 0, len = arguments.length; i < len; ++i) {
-- process.stderr.write(arguments[i] + '\n');
-- }
--}, 'util.error: Use console.error instead');
--
--
--exports.pump = exports.deprecate(function(readStream, writeStream, callback) {
-- var callbackCalled = false;
--
-- function call(a, b, c) {
-- if (callback && !callbackCalled) {
-- callback(a, b, c);
-- callbackCalled = true;
-- }
-- }
--
-- readStream.addListener('data', function(chunk) {
-- if (writeStream.write(chunk) === false) readStream.pause();
-- });
--
-- writeStream.addListener('drain', function() {
-- readStream.resume();
-- });
--
-- readStream.addListener('end', function() {
-- writeStream.end();
-- });
--
-- readStream.addListener('close', function() {
-- call();
-- });
--
-- readStream.addListener('error', function(err) {
-- writeStream.end();
-- call(err);
-- });
--
-- writeStream.addListener('error', function(err) {
-- readStream.destroy();
-- call(err);
-- });
--}, 'util.pump(): Use readableStream.pipe() instead');
--
--
--var uv;
--exports._errnoException = function(err, syscall) {
-- if (isUndefined(uv)) uv = process.binding('uv');
-- var errname = uv.errname(err);
-- var e = new Error(syscall + ' ' + errname);
-- e.code = errname;
-- e.errno = errname;
-- e.syscall = syscall;
-- return e;
--};
-+} \ No newline at end of file
diff --git a/deps/npm/node_modules/core-util-is/lib/util.js b/deps/npm/node_modules/core-util-is/lib/util.js
deleted file mode 100644
index ff4c851c075..00000000000
--- a/deps/npm/node_modules/core-util-is/lib/util.js
+++ /dev/null
@@ -1,107 +0,0 @@
-// Copyright Joyent, Inc. and other Node 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.
-
-// NOTE: These type checking functions intentionally don't use `instanceof`
-// because it is fragile and can be easily faked with `Object.create()`.
-
-function isArray(arg) {
- if (Array.isArray) {
- return Array.isArray(arg);
- }
- return objectToString(arg) === '[object Array]';
-}
-exports.isArray = isArray;
-
-function isBoolean(arg) {
- return typeof arg === 'boolean';
-}
-exports.isBoolean = isBoolean;
-
-function isNull(arg) {
- return arg === null;
-}
-exports.isNull = isNull;
-
-function isNullOrUndefined(arg) {
- return arg == null;
-}
-exports.isNullOrUndefined = isNullOrUndefined;
-
-function isNumber(arg) {
- return typeof arg === 'number';
-}
-exports.isNumber = isNumber;
-
-function isString(arg) {
- return typeof arg === 'string';
-}
-exports.isString = isString;
-
-function isSymbol(arg) {
- return typeof arg === 'symbol';
-}
-exports.isSymbol = isSymbol;
-
-function isUndefined(arg) {
- return arg === void 0;
-}
-exports.isUndefined = isUndefined;
-
-function isRegExp(re) {
- return objectToString(re) === '[object RegExp]';
-}
-exports.isRegExp = isRegExp;
-
-function isObject(arg) {
- return typeof arg === 'object' && arg !== null;
-}
-exports.isObject = isObject;
-
-function isDate(d) {
- return objectToString(d) === '[object Date]';
-}
-exports.isDate = isDate;
-
-function isError(e) {
- return (objectToString(e) === '[object Error]' || e instanceof Error);
-}
-exports.isError = isError;
-
-function isFunction(arg) {
- return typeof arg === 'function';
-}
-exports.isFunction = isFunction;
-
-function isPrimitive(arg) {
- return arg === null ||
- typeof arg === 'boolean' ||
- typeof arg === 'number' ||
- typeof arg === 'string' ||
- typeof arg === 'symbol' || // ES6 symbol
- typeof arg === 'undefined';
-}
-exports.isPrimitive = isPrimitive;
-
-exports.isBuffer = Buffer.isBuffer;
-
-function objectToString(o) {
- return Object.prototype.toString.call(o);
-}
diff --git a/deps/npm/node_modules/core-util-is/package.json b/deps/npm/node_modules/core-util-is/package.json
deleted file mode 100644
index 3368e9519f9..00000000000
--- a/deps/npm/node_modules/core-util-is/package.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "name": "core-util-is",
- "version": "1.0.2",
- "description": "The `util.is*` functions introduced in Node v0.12.",
- "main": "lib/util.js",
- "repository": {
- "type": "git",
- "url": "git://github.com/isaacs/core-util-is"
- },
- "keywords": [
- "util",
- "isBuffer",
- "isArray",
- "isNumber",
- "isString",
- "isRegExp",
- "isThis",
- "isThat",
- "polyfill"
- ],
- "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/isaacs/core-util-is/issues"
- },
- "scripts": {
- "test": "tap test.js"
- },
- "devDependencies": {
- "tap": "^2.3.0"
- }
-}
diff --git a/deps/npm/node_modules/core-util-is/test.js b/deps/npm/node_modules/core-util-is/test.js
deleted file mode 100644
index 1a490c65ac8..00000000000
--- a/deps/npm/node_modules/core-util-is/test.js
+++ /dev/null
@@ -1,68 +0,0 @@
-var assert = require('tap');
-
-var t = require('./lib/util');
-
-assert.equal(t.isArray([]), true);
-assert.equal(t.isArray({}), false);
-
-assert.equal(t.isBoolean(null), false);
-assert.equal(t.isBoolean(true), true);
-assert.equal(t.isBoolean(false), true);
-
-assert.equal(t.isNull(null), true);
-assert.equal(t.isNull(undefined), false);
-assert.equal(t.isNull(false), false);
-assert.equal(t.isNull(), false);
-
-assert.equal(t.isNullOrUndefined(null), true);
-assert.equal(t.isNullOrUndefined(undefined), true);
-assert.equal(t.isNullOrUndefined(false), false);
-assert.equal(t.isNullOrUndefined(), true);
-
-assert.equal(t.isNumber(null), false);
-assert.equal(t.isNumber('1'), false);
-assert.equal(t.isNumber(1), true);
-
-assert.equal(t.isString(null), false);
-assert.equal(t.isString('1'), true);
-assert.equal(t.isString(1), false);
-
-assert.equal(t.isSymbol(null), false);
-assert.equal(t.isSymbol('1'), false);
-assert.equal(t.isSymbol(1), false);
-assert.equal(t.isSymbol(Symbol()), true);
-
-assert.equal(t.isUndefined(null), false);
-assert.equal(t.isUndefined(undefined), true);
-assert.equal(t.isUndefined(false), false);
-assert.equal(t.isUndefined(), true);
-
-assert.equal(t.isRegExp(null), false);
-assert.equal(t.isRegExp('1'), false);
-assert.equal(t.isRegExp(new RegExp()), true);
-
-assert.equal(t.isObject({}), true);
-assert.equal(t.isObject([]), true);
-assert.equal(t.isObject(new RegExp()), true);
-assert.equal(t.isObject(new Date()), true);
-
-assert.equal(t.isDate(null), false);
-assert.equal(t.isDate('1'), false);
-assert.equal(t.isDate(new Date()), true);
-
-assert.equal(t.isError(null), false);
-assert.equal(t.isError({ err: true }), false);
-assert.equal(t.isError(new Error()), true);
-
-assert.equal(t.isFunction(null), false);
-assert.equal(t.isFunction({ }), false);
-assert.equal(t.isFunction(function() {}), true);
-
-assert.equal(t.isPrimitive(null), true);
-assert.equal(t.isPrimitive(''), true);
-assert.equal(t.isPrimitive(0), true);
-assert.equal(t.isPrimitive(new Date()), false);
-
-assert.equal(t.isBuffer(null), false);
-assert.equal(t.isBuffer({}), false);
-assert.equal(t.isBuffer(new Buffer(0)), true);
diff --git a/deps/npm/node_modules/dashdash/CHANGES.md b/deps/npm/node_modules/dashdash/CHANGES.md
deleted file mode 100644
index d7c8f4ebe18..00000000000
--- a/deps/npm/node_modules/dashdash/CHANGES.md
+++ /dev/null
@@ -1,364 +0,0 @@
-# node-dashdash changelog
-
-## not yet released
-
-(nothing yet)
-
-## 1.14.1
-
-- [issue #30] Change the output used by dashdash's Bash completion support to
- indicate "there are no completions for this argument" to cope with different
- sorting rules on different Bash/platforms. For example:
-
- $ triton -v -p test2 package get <TAB> # before
- ##-no -tritonpackage- completions-##
-
- $ triton -v -p test2 package get <TAB> # after
- ##-no-completion- -results-##
-
-## 1.14.0
-
-- New `synopsisFromOpt(<option spec>)` function. This will be used by
- [node-cmdln](https://github.com/trentm/node-cmdln) to put together a synopsis
- of options for a command. Some examples:
-
- > synopsisFromOpt({names: ['help', 'h'], type: 'bool'});
- '[ --help | -h ]'
- > synopsisFromOpt({name: 'file', type: 'string', helpArg: 'FILE'});
- '[ --file=FILE ]'
-
-
-## 1.13.1
-
-- [issue #20] `bashCompletionSpecFromOptions` breaks on an options array with
- an empty-string group.
-
-
-## 1.13.0
-
-- Update assert-plus dep to 1.x to get recent fixes (particularly for
- `assert.optional*`).
-
-- Drop testing (and official support in packages.json#engines) for node 0.8.x.
- Add testing against node 5.x and 4.x with `make testall`.
-
-- [pull #16] Change the `positiveInteger` type to NOT accept zero (0).
- For those who might need the old behaviour, see
- "examples/custom-option-intGteZero.js". (By Dave Pacheco.)
-
-
-## 1.12.2
-
-- Bash completion: Add `argtypes` to specify the types of positional args.
- E.g. this would allow you to have an `ssh` command with `argtypes = ['host',
- 'cmd']` for bash completion. You then have to provide Bash functions to
- handle completing those types via the `specExtra` arg. See
- "[examples/ddcompletion.js](examples/ddcompletion.js)" for an example.
-
-- Bash completion: Tweak so that options or only offered as completions when
- there is a leading '-'. E.g. `mytool <TAB>` does NOT offer options, `mytool
- -<TAB>` *does*. Without this, a tool with options would never be able to
- fallback to Bash's "default" completion. For example `ls <TAB>` wouldn't
- result in filename completion. Now it will.
-
-- Bash completion: A workaround for not being able to explicitly have *no*
- completion results. Because dashdash's completion uses `complete -o default`,
- we fallback to Bash's "default" completion (typically for filename
- completion). Before this change, an attempt to explicitly say "there are
- no completions that match" would unintentionally trigger filename completion.
- Instead as a workaround we return:
-
- $ ddcompletion --none <TAB> # the 'none' argtype
- ##-no completions-##
-
- $ ddcompletion # a custom 'fruit' argtype
- apple banana orange
- $ ddcompletion z
- ##-no -fruit- completions-##
-
- This is a bit of a hack, but IMO a better experience than the surprise
- of matching a local filename beginning with 'z', which isn't, in this
- case, a "fruit".
-
-## 1.12.1
-
-- Bash completion: Document `<option spec>.completionType`. Add `includeHidden`
- option to `bashCompletionSpecFromOptions()`. Add support for dealing with
- hidden subcmds.
-
-
-## 1.12.0
-
-- Support for generating Bash completion files. See the "Bash completion"
- section of the README.md and "examples/ddcompletion.js" for an example.
-
-
-## 1.11.0
-
-- Add the `arrayFlatten` boolean option to `dashdash.addOptionType` used for
- custom option types. This allows one to create an `arrayOf...` option type
- where each usage of the option can return multiple results. For example:
-
- node mytool.js --foo a,b --foo c
-
- We could define an option type for `--foo` such that
- `opts.foo = ['a', 'b', 'c']`. See
- "[examples/custom-option-arrayOfCommaSepString.js](examples/custom-option-arrayOfCommaSepString.js)"
- for an example.
-
-
-## 1.10.1
-
-- Trim the published package to the minimal bits. Before: 24K tarball, 144K unpacked.
- After: 12K tarball, 48K unpacked. `npm` won't let me drop the README.md. :)
-
-
-## 1.10.0
-
-- [issue #9] Support `includeDefault` in help config (similar to `includeEnv`) to have a
- note of an option's default value, if any, in help output.
-- [issue #11] Fix option group breakage introduced in v1.9.0.
-
-
-## 1.9.0
-
-- [issue #10] Custom option types added with `addOptionType` can specify a
- "default" value. See "examples/custom-option-fruit.js".
-
-
-## 1.8.0
-
-- Support `hidden: true` in an option spec to have help output exclude this
- option.
-
-
-## 1.7.3
-
-- [issue #8] Fix parsing of a short option group when one of the
- option takes an argument. For example, consider `tail` with
- a `-f` boolean option and a `-n` option that takes a number
- argument. This should parse:
-
- tail -fn5
-
- Before this change, that would not parse correctly.
- It is suspected that this was introduced in version 1.4.0
- (with commit 656fa8bc71c372ebddad0a7026bd71611e2ec99a).
-
-
-## 1.7.2
-
-- Known issues: #8
-
-- Exclude 'tools/' dir in packages published to npm.
-
-
-## 1.7.1
-
-- Known issues: #8
-
-- Support an option group *empty string* value:
-
- ...
- { group: '' },
- ...
-
- to render as a blank line in option help. This can help separate loosely
- related sets of options without resorting to a title for option groups.
-
-
-## 1.7.0
-
-- Known issues: #8
-
-- [pull #7] Support for `<parser>.help({helpWrap: false, ...})` option to be able
- to fully control the formatting for option help (by Patrick Mooney) `helpWrap:
- false` can also be set on individual options in the option objects, e.g.:
-
- var options = [
- {
- names: ['foo'],
- type: 'string',
- helpWrap: false,
- help: 'long help with\n newlines' +
- '\n spaces\n and such\nwill render correctly'
- },
- ...
- ];
-
-
-## 1.6.0
-
-- Known issues: #8
-
-- [pull #6] Support headings between groups of options (by Joshua M. Clulow)
- so that this code:
-
- var options = [
- { group: 'Armament Options' },
- { names: [ 'weapon', 'w' ], type: 'string' },
- { group: 'General Options' },
- { names: [ 'help', 'h' ], type: 'bool' }
- ];
- ...
-
- will give you this help output:
-
- ...
- Armament Options:
- -w, --weapon
-
- General Options:
- -h, --help
- ...
-
-
-## 1.5.0
-
-- Known issues: #8
-
-- Add support for adding custom option types. "examples/custom-option-duration.js"
- shows an example adding a "duration" option type.
-
- $ node custom-option-duration.js -t 1h
- duration: 3600000 ms
- $ node custom-option-duration.js -t 1s
- duration: 1000 ms
- $ node custom-option-duration.js -t 5d
- duration: 432000000 ms
- $ node custom-option-duration.js -t bogus
- custom-option-duration.js: error: arg for "-t" is not a valid duration: "bogus"
-
- A custom option type is added via:
-
- var dashdash = require('dashdash');
- dashdash.addOptionType({
- name: '...',
- takesArg: true,
- helpArg: '...',
- parseArg: function (option, optstr, arg) {
- ...
- }
- });
-
-- [issue #4] Add `date` and `arrayOfDate` option types. They accept these date
- formats: epoch second times (e.g. 1396031701) and ISO 8601 format:
- `YYYY-MM-DD[THH:MM:SS[.sss][Z]]` (e.g. "2014-03-28",
- "2014-03-28T18:35:01.489Z"). See "examples/date.js" for an example usage.
-
- $ node examples/date.js -s 2014-01-01 -e $(date +%s)
- start at 2014-01-01T00:00:00.000Z
- end at 2014-03-29T04:26:18.000Z
-
-
-## 1.4.0
-
-- Known issues: #8
-
-- [pull #2, pull #3] Add a `allowUnknown: true` option on `createParser` to
- allow unknown options to be passed through as `opts._args` instead of parsing
- throwing an exception (by https://github.com/isaacs).
-
- See 'allowUnknown' in the README for a subtle caveat.
-
-
-## 1.3.2
-
-- Fix a subtlety where a *bool* option using both `env` and `default` didn't
- work exactly correctly. If `default: false` then all was fine (by luck).
- However, if you had an option like this:
-
- options: [ {
- names: ['verbose', 'v'],
- env: 'FOO_VERBOSE',
- 'default': true, // <--- this
- type: 'bool'
- } ],
-
- wanted `FOO_VERBOSE=0` to make the option false, then you need the fix
- in this version of dashdash.
-
-
-## 1.3.1
-
-- [issue #1] Fix an envvar not winning over an option 'default'. Previously
- an option with both `default` and `env` would never take a value from the
- environment variable. E.g. `FOO_FILE` would never work here:
-
- options: [ {
- names: ['file', 'f'],
- env: 'FOO_FILE',
- 'default': 'default.file',
- type: 'string'
- } ],
-
-
-## 1.3.0
-
-- [Backward incompatible change for boolean envvars] Change the
- interpretation of environment variables for boolean options to consider '0'
- to be false. Previous to this *any* value to the envvar was considered
- true -- which was quite misleading. Example:
-
- $ FOO_VERBOSE=0 node examples/foo.js
- # opts: { verbose: [ false ],
- _order: [ { key: 'verbose', value: false, from: 'env' } ],
- _args: [] }
- # args: []
-
-
-## 1.2.1
-
-- Fix for `parse.help({includeEnv: true, ...})` handling to ensure that an
- option with an `env` **but no `help`** still has the "Environment: ..."
- output. E.g.:
-
- { names: ['foo'], type: 'string', env: 'FOO' }
-
- ...
-
- --foo=ARG Environment: FOO=ARG
-
-
-## 1.2.0
-
-- Transform the option key on the `opts` object returned from
- `<parser>.parse()` for convenience. Currently this is just
- `s/-/_/g`, e.g. '--dry-run' -> `opts.dry_run`. This allow one to use hyphen
- in option names (common) but not have to do silly things like
- `opt["dry-run"]` to access the parsed results.
-
-
-## 1.1.0
-
-- Environment variable integration. Envvars can be associated with an option,
- then option processing will fallback to using that envvar if defined and
- if the option isn't specified in argv. See the "Environment variable
- integration" section in the README.
-
-- Change the `<parser>.parse()` signature to take a single object with keys
- for arguments. The old signature is still supported.
-
-- `dashdash.createParser(CONFIG)` alternative to `new dashdash.Parser(CONFIG)`
- a la many node-land APIs.
-
-
-## 1.0.2
-
-- Add "positiveInteger" and "arrayOfPositiveInteger" option types that only
- accept positive integers.
-
-- Add "integer" and "arrayOfInteger" option types that accepts only integers.
- Note that, for better or worse, these do NOT accept: "0x42" (hex), "1e2"
- (with exponent) or "1.", "3.0" (floats).
-
-
-## 1.0.1
-
-- Fix not modifying the given option spec objects (which breaks creating
- a Parser with them more than once).
-
-
-## 1.0.0
-
-First release.
diff --git a/deps/npm/node_modules/dashdash/LICENSE.txt b/deps/npm/node_modules/dashdash/LICENSE.txt
deleted file mode 100644
index 54706c66e88..00000000000
--- a/deps/npm/node_modules/dashdash/LICENSE.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-# This is the MIT license
-
-Copyright (c) 2013 Trent Mick. All rights reserved.
-Copyright (c) 2013 Joyent Inc. All rights reserved.
-
-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/deps/npm/node_modules/dashdash/etc/dashdash.bash_completion.in b/deps/npm/node_modules/dashdash/etc/dashdash.bash_completion.in
deleted file mode 100644
index dc333096c85..00000000000
--- a/deps/npm/node_modules/dashdash/etc/dashdash.bash_completion.in
+++ /dev/null
@@ -1,389 +0,0 @@
-#!/bin/bash
-#
-# Bash completion generated for '{{name}}' at {{date}}.
-#
-# The original template lives here:
-# https://github.com/trentm/node-dashdash/blob/master/etc/dashdash.bash_completion.in
-#
-
-#
-# Copyright 2016 Trent Mick
-# Copyright 2016 Joyent, Inc.
-#
-#
-# A generic Bash completion driver script.
-#
-# This is meant to provide a re-usable chunk of Bash to use for
-# "etc/bash_completion.d/" files for individual tools. Only the "Configuration"
-# section with tool-specific info need differ. Features:
-#
-# - support for short and long opts
-# - support for knowing which options take arguments
-# - support for subcommands (e.g. 'git log <TAB>' to show just options for the
-# log subcommand)
-# - does the right thing with "--" to stop options
-# - custom optarg and arg types for custom completions
-# - (TODO) support for shells other than Bash (tcsh, zsh, fish?, etc.)
-#
-#
-# Examples/design:
-#
-# 1. Bash "default" completion. By default Bash's 'complete -o default' is
-# enabled. That means when there are no completions (e.g. if no opts match
-# the current word), then you'll get Bash's default completion. Most notably
-# that means you get filename completion. E.g.:
-# $ tool ./<TAB>
-# $ tool READ<TAB>
-#
-# 2. all opts and subcmds:
-# $ tool <TAB>
-# $ tool -v <TAB> # assuming '-v' doesn't take an arg
-# $ tool -<TAB> # matching opts
-# $ git lo<TAB> # matching subcmds
-#
-# Long opt completions are given *without* the '=', i.e. we prefer space
-# separated because that's easier for good completions.
-#
-# 3. long opt arg with '='
-# $ tool --file=<TAB>
-# $ tool --file=./d<TAB>
-# We maintain the "--file=" prefix. Limitation: With the attached prefix
-# the 'complete -o filenames' doesn't know to do dirname '/' suffixing. Meh.
-#
-# 4. envvars:
-# $ tool $<TAB>
-# $ tool $P<TAB>
-# Limitation: Currently only getting exported vars, so we miss "PS1" and
-# others.
-#
-# 5. Defer to other completion in a subshell:
-# $ tool --file $(cat ./<TAB>
-# We get this from 'complete -o default ...'.
-#
-# 6. Custom completion types from a provided bash function.
-# $ tool --profile <TAB> # complete available "profiles"
-#
-#
-# Dev Notes:
-# - compgen notes, from http://unix.stackexchange.com/questions/151118/understand-compgen-builtin-command
-# - https://www.gnu.org/software/bash/manual/html_node/Programmable-Completion-Builtins.html
-#
-
-
-# Debugging this completion:
-# 1. Uncomment the "_{{name}}_log_file=..." line.
-# 2. 'tail -f /var/tmp/dashdash-completion.log' in one terminal.
-# 3. Re-source this bash completion file.
-#_{{name}}_log=/var/tmp/dashdash-completion.log
-
-function _{{name}}_completer {
-
- # ---- cmd definition
-
- {{spec}}
-
-
- # ---- locals
-
- declare -a argv
-
-
- # ---- support functions
-
- function trace {
- [[ -n "$_{{name}}_log" ]] && echo "$*" >&2
- }
-
- function _dashdash_complete {
- local idx context
- idx=$1
- context=$2
-
- local shortopts longopts optargs subcmds allsubcmds argtypes
- shortopts="$(eval "echo \${cmd${context}_shortopts}")"
- longopts="$(eval "echo \${cmd${context}_longopts}")"
- optargs="$(eval "echo \${cmd${context}_optargs}")"
- subcmds="$(eval "echo \${cmd${context}_subcmds}")"
- allsubcmds="$(eval "echo \${cmd${context}_allsubcmds}")"
- IFS=', ' read -r -a argtypes <<< "$(eval "echo \${cmd${context}_argtypes}")"
-
- trace ""
- trace "_dashdash_complete(idx=$idx, context=$context)"
- trace " shortopts: $shortopts"
- trace " longopts: $longopts"
- trace " optargs: $optargs"
- trace " subcmds: $subcmds"
- trace " allsubcmds: $allsubcmds"
-
- # Get 'state' of option parsing at this COMP_POINT.
- # Copying "dashdash.js#parse()" behaviour here.
- local state=
- local nargs=0
- local i=$idx
- local argtype
- local optname
- local prefix
- local word
- local dashdashseen=
- while [[ $i -lt $len && $i -le $COMP_CWORD ]]; do
- argtype=
- optname=
- prefix=
- word=
-
- arg=${argv[$i]}
- trace " consider argv[$i]: '$arg'"
-
- if [[ "$arg" == "--" && $i -lt $COMP_CWORD ]]; then
- trace " dashdash seen"
- dashdashseen=yes
- state=arg
- word=$arg
- elif [[ -z "$dashdashseen" && "${arg:0:2}" == "--" ]]; then
- arg=${arg:2}
- if [[ "$arg" == *"="* ]]; then
- optname=${arg%%=*}
- val=${arg##*=}
- trace " long opt: optname='$optname' val='$val'"
- state=arg
- argtype=$(echo "$optargs" | awk -F "-$optname=" '{print $2}' | cut -d' ' -f1)
- word=$val
- prefix="--$optname="
- else
- optname=$arg
- val=
- trace " long opt: optname='$optname'"
- state=longopt
- word=--$optname
-
- if [[ "$optargs" == *"-$optname="* && $i -lt $COMP_CWORD ]]; then
- i=$(( $i + 1 ))
- state=arg
- argtype=$(echo "$optargs" | awk -F "-$optname=" '{print $2}' | cut -d' ' -f1)
- word=${argv[$i]}
- trace " takes arg (consume argv[$i], word='$word')"
- fi
- fi
- elif [[ -z "$dashdashseen" && "${arg:0:1}" == "-" ]]; then
- trace " short opt group"
- state=shortopt
- word=$arg
-
- local j=1
- while [[ $j -lt ${#arg} ]]; do
- optname=${arg:$j:1}
- trace " consider index $j: optname '$optname'"
-
- if [[ "$optargs" == *"-$optname="* ]]; then
- argtype=$(echo "$optargs" | awk -F "-$optname=" '{print $2}' | cut -d' ' -f1)
- if [[ $(( $j + 1 )) -lt ${#arg} ]]; then
- state=arg
- word=${arg:$(( $j + 1 ))}
- trace " takes arg (rest of this arg, word='$word', argtype='$argtype')"
- elif [[ $i -lt $COMP_CWORD ]]; then
- state=arg
- i=$(( $i + 1 ))
- word=${argv[$i]}
- trace " takes arg (word='$word', argtype='$argtype')"
- fi
- break
- fi
-
- j=$(( $j + 1 ))
- done
- elif [[ $i -lt $COMP_CWORD && -n "$arg" ]] && $(echo "$allsubcmds" | grep -w "$arg" >/dev/null); then
- trace " complete subcmd: recurse _dashdash_complete"
- _dashdash_complete $(( $i + 1 )) "${context}__${arg/-/_}"
- return
- else
- trace " not an opt or a complete subcmd"
- state=arg
- word=$arg
- nargs=$(( $nargs + 1 ))
- if [[ ${#argtypes[@]} -gt 0 ]]; then
- argtype="${argtypes[$(( $nargs - 1 ))]}"
- if [[ -z "$argtype" ]]; then
- # If we have more args than argtypes, we use the
- # last type.
- argtype="${argtypes[@]: -1:1}"
- fi
- fi
- fi
-
- trace " state=$state prefix='$prefix' word='$word'"
- i=$(( $i + 1 ))
- done
-
- trace " parsed: state=$state optname='$optname' argtype='$argtype' prefix='$prefix' word='$word' dashdashseen=$dashdashseen"
- local compgen_opts=
- if [[ -n "$prefix" ]]; then
- compgen_opts="$compgen_opts -P $prefix"
- fi
-
- case $state in
- shortopt)
- compgen $compgen_opts -W "$shortopts $longopts" -- "$word"
- ;;
- longopt)
- compgen $compgen_opts -W "$longopts" -- "$word"
- ;;
- arg)
- # If we don't know what completion to do, then emit nothing. We
- # expect that we are running with:
- # complete -o default ...
- # where "default" means: "Use Readline's default completion if
- # the compspec generates no matches." This gives us the good filename
- # completion, completion in subshells/backticks.
- #
- # We cannot support an argtype="directory" because
- # compgen -S '/' -A directory -- "$word"
- # doesn't give a satisfying result. It doesn't stop at the trailing '/'
- # so you cannot descend into dirs.
- if [[ "${word:0:1}" == '$' ]]; then
- # By default, Bash will complete '$<TAB>' to all envvars. Apparently
- # 'complete -o default' does *not* give us that. The following
- # gets *close* to the same completions: '-A export' misses envvars
- # like "PS1".
- trace " completing envvars"
- compgen $compgen_opts -P '$' -A export -- "${word:1}"
- elif [[ -z "$argtype" ]]; then
- # Only include opts in completions if $word is not empty.
- # This is to avoid completing the leading '-', which foils
- # using 'default' completion.
- if [[ -n "$dashdashseen" ]]; then
- trace " completing subcmds, if any (no argtype, dashdash seen)"
- compgen $compgen_opts -W "$subcmds" -- "$word"
- elif [[ -z "$word" ]]; then
- trace " completing subcmds, if any (no argtype, empty word)"
- compgen $compgen_opts -W "$subcmds" -- "$word"
- else
- trace " completing opts & subcmds (no argtype)"
- compgen $compgen_opts -W "$shortopts $longopts $subcmds" -- "$word"
- fi
- elif [[ $argtype == "none" ]]; then
- # We want *no* completions, i.e. some way to get the active
- # 'complete -o default' to not do filename completion.
- trace " completing 'none' (hack to imply no completions)"
- echo "##-no-completion- -results-##"
- elif [[ $argtype == "file" ]]; then
- # 'complete -o default' gives the best filename completion, at least
- # on Mac.
- trace " completing 'file' (let 'complete -o default' handle it)"
- echo ""
- elif ! type complete_$argtype 2>/dev/null >/dev/null; then
- trace " completing '$argtype' (fallback to default b/c complete_$argtype is unknown)"
- echo ""
- else
- trace " completing custom '$argtype'"
- completions=$(complete_$argtype "$word")
- if [[ -z "$completions" ]]; then
- trace " no custom '$argtype' completions"
- # These are in ascii and "dictionary" order so they sort
- # correctly.
- echo "##-no-completion- -results-##"
- else
- echo $completions
- fi
- fi
- ;;
- *)
- trace " unknown state: $state"
- ;;
- esac
- }
-
-
- trace ""
- trace "-- $(date)"
- #trace "\$IFS: '$IFS'"
- #trace "\$@: '$@'"
- #trace "COMP_WORDBREAKS: '$COMP_WORDBREAKS'"
- trace "COMP_CWORD: '$COMP_CWORD'"
- trace "COMP_LINE: '$COMP_LINE'"
- trace "COMP_POINT: $COMP_POINT"
-
- # Guard against negative COMP_CWORD. This is a Bash bug at least on
- # Mac 10.10.4's bash. See
- # <https://lists.gnu.org/archive/html/bug-bash/2009-07/msg00125.html>.
- if [[ $COMP_CWORD -lt 0 ]]; then
- trace "abort on negative COMP_CWORD"
- exit 1;
- fi
-
- # I don't know how to do array manip on argv vars,
- # so copy over to argv array to work on them.
- shift # the leading '--'
- i=0
- len=$#
- while [[ $# -gt 0 ]]; do
- argv[$i]=$1
- shift;
- i=$(( $i + 1 ))
- done
- trace "argv: '${argv[@]}'"
- trace "argv[COMP_CWORD-1]: '${argv[$(( $COMP_CWORD - 1 ))]}'"
- trace "argv[COMP_CWORD]: '${argv[$COMP_CWORD]}'"
- trace "argv len: '$len'"
-
- _dashdash_complete 1 ""
-}
-
-
-# ---- mainline
-
-# Note: This if-block to help work with 'compdef' and 'compctl' is
-# adapted from 'npm completion'.
-if type complete &>/dev/null; then
- function _{{name}}_completion {
- local _log_file=/dev/null
- [[ -z "$_{{name}}_log" ]] || _log_file="$_{{name}}_log"
- COMPREPLY=($(COMP_CWORD="$COMP_CWORD" \
- COMP_LINE="$COMP_LINE" \
- COMP_POINT="$COMP_POINT" \
- _{{name}}_completer -- "${COMP_WORDS[@]}" \
- 2>$_log_file)) || return $?
- }
- complete -o default -F _{{name}}_completion {{name}}
-elif type compdef &>/dev/null; then
- function _{{name}}_completion {
- local _log_file=/dev/null
- [[ -z "$_{{name}}_log" ]] || _log_file="$_{{name}}_log"
- compadd -- $(COMP_CWORD=$((CURRENT-1)) \
- COMP_LINE=$BUFFER \
- COMP_POINT=0 \
- _{{name}}_completer -- "${words[@]}" \
- 2>$_log_file)
- }
- compdef _{{name}}_completion {{name}}
-elif type compctl &>/dev/null; then
- function _{{name}}_completion {
- local cword line point words si
- read -Ac words
- read -cn cword
- let cword-=1
- read -l line
- read -ln point
- local _log_file=/dev/null
- [[ -z "$_{{name}}_log" ]] || _log_file="$_{{name}}_log"
- reply=($(COMP_CWORD="$cword" \
- COMP_LINE="$line" \
- COMP_POINT="$point" \
- _{{name}}_completer -- "${words[@]}" \
- 2>$_log_file)) || return $?
- }
- compctl -K _{{name}}_completion {{name}}
-fi
-
-
-##
-## This is a Bash completion file for the '{{name}}' command. You can install
-## with either:
-##
-## cp FILE /usr/local/etc/bash_completion.d/{{name}} # Mac
-## cp FILE /etc/bash_completion.d/{{name}} # Linux
-##
-## or:
-##
-## cp FILE > ~/.{{name}}.completion
-## echo "source ~/.{{name}}.completion" >> ~/.bashrc
-## \ No newline at end of file
diff --git a/deps/npm/node_modules/dashdash/lib/dashdash.js b/deps/npm/node_modules/dashdash/lib/dashdash.js
deleted file mode 100644
index adb6f13b158..00000000000
--- a/deps/npm/node_modules/dashdash/lib/dashdash.js
+++ /dev/null
@@ -1,1055 +0,0 @@
-/**
- * dashdash - A light, featureful and explicit option parsing library for
- * node.js.
- */
-// vim: set ts=4 sts=4 sw=4 et:
-
-var assert = require('assert-plus');
-var format = require('util').format;
-var fs = require('fs');
-var path = require('path');
-
-
-var DEBUG = true;
-if (DEBUG) {
- var debug = console.warn;
-} else {
- var debug = function () {};
-}
-
-
-
-// ---- internal support stuff
-
-// Replace {{variable}} in `s` with the template data in `d`.
-function renderTemplate(s, d) {
- return s.replace(/{{([a-zA-Z]+)}}/g, function (match, key) {
- return d.hasOwnProperty(key) ? d[key] : match;
- });
-}
-
-/**
- * Return a shallow copy of the given object;
- */
-function shallowCopy(obj) {
- if (!obj) {
- return (obj);
- }
- var copy = {};
- Object.keys(obj).forEach(function (k) {
- copy[k] = obj[k];
- });
- return (copy);
-}
-
-
-function space(n) {
- var s = '';
- for (var i = 0; i < n; i++) {
- s += ' ';
- }
- return s;
-}
-
-
-function makeIndent(arg, deflen, name) {
- if (arg === null || arg === undefined)
- return space(deflen);
- else if (typeof (arg) === 'number')
- return space(arg);
- else if (typeof (arg) === 'string')
- return arg;
- else
- assert.fail('invalid "' + name + '": not a string or number: ' + arg);
-}
-
-
-/**
- * Return an array of lines wrapping the given text to the given width.
- * This splits on whitespace. Single tokens longer than `width` are not
- * broken up.
- */
-function textwrap(s, width) {
- var words = s.trim().split(/\s+/);
- var lines = [];
- var line = '';
- words.forEach(function (w) {
- var newLength = line.length + w.length;
- if (line.length > 0)
- newLength += 1;
- if (newLength > width) {
- lines.push(line);
- line = '';
- }
- if (line.length > 0)
- line += ' ';
- line += w;
- });
- lines.push(line);
- return lines;
-}
-
-
-/**
- * Transform an option name to a "key" that is used as the field
- * on the `opts` object returned from `<parser>.parse()`.
- *
- * Transformations:
- * - '-' -> '_': This allow one to use hyphen in option names (common)
- * but not have to do silly things like `opt["dry-run"]` to access the
- * parsed results.
- */
-function optionKeyFromName(name) {
- return name.replace(/-/g, '_');
-}
-
-
-
-// ---- Option types
-
-function parseBool(option, optstr, arg) {
- return Boolean(arg);
-}
-
-function parseString(option, optstr, arg) {
- assert.string(arg, 'arg');
- return arg;
-}
-
-function parseNumber(option, optstr, arg) {
- assert.string(arg, 'arg');
- var num = Number(arg);
- if (isNaN(num)) {
- throw new Error(format('arg for "%s" is not a number: "%s"',
- optstr, arg));
- }
- return num;
-}
-
-function parseInteger(option, optstr, arg) {
- assert.string(arg, 'arg');
- var num = Number(arg);
- if (!/^[0-9-]+$/.test(arg) || isNaN(num)) {
- throw new Error(format('arg for "%s" is not an integer: "%s"',
- optstr, arg));
- }
- return num;
-}
-
-function parsePositiveInteger(option, optstr, arg) {
- assert.string(arg, 'arg');
- var num = Number(arg);
- if (!/^[0-9]+$/.test(arg) || isNaN(num) || num === 0) {
- throw new Error(format('arg for "%s" is not a positive integer: "%s"',
- optstr, arg));
- }
- return num;
-}
-
-/**
- * Supported date args:
- * - epoch second times (e.g. 1396031701)
- * - ISO 8601 format: YYYY-MM-DD[THH:MM:SS[.sss][Z]]
- * 2014-03-28T18:35:01.489Z
- * 2014-03-28T18:35:01.489
- * 2014-03-28T18:35:01Z
- * 2014-03-28T18:35:01
- * 2014-03-28
- */
-function parseDate(option, optstr, arg) {
- assert.string(arg, 'arg');
- var date;
- if (/^\d+$/.test(arg)) {
- // epoch seconds
- date = new Date(Number(arg) * 1000);
- /* JSSTYLED */
- } else if (/^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?Z?)?$/i.test(arg)) {
- // ISO 8601 format
- date = new Date(arg);
- } else {
- throw new Error(format('arg for "%s" is not a valid date format: "%s"',
- optstr, arg));
- }
- if (date.toString() === 'Invalid Date') {
- throw new Error(format('arg for "%s" is an invalid date: "%s"',
- optstr, arg));
- }
- return date;
-}
-
-var optionTypes = {
- bool: {
- takesArg: false,
- parseArg: parseBool
- },
- string: {
- takesArg: true,
- helpArg: 'ARG',
- parseArg: parseString
- },
- number: {
- takesArg: true,
- helpArg: 'NUM',
- parseArg: parseNumber
- },
- integer: {
- takesArg: true,
- helpArg: 'INT',
- parseArg: parseInteger
- },
- positiveInteger: {
- takesArg: true,
- helpArg: 'INT',
- parseArg: parsePositiveInteger
- },
- date: {
- takesArg: true,
- helpArg: 'DATE',
- parseArg: parseDate
- },
- arrayOfBool: {
- takesArg: false,
- array: true,
- parseArg: parseBool
- },
- arrayOfString: {
- takesArg: true,
- helpArg: 'ARG',
- array: true,
- parseArg: parseString
- },
- arrayOfNumber: {
- takesArg: true,
- helpArg: 'NUM',
- array: true,
- parseArg: parseNumber
- },
- arrayOfInteger: {
- takesArg: true,
- helpArg: 'INT',
- array: true,
- parseArg: parseInteger
- },
- arrayOfPositiveInteger: {
- takesArg: true,
- helpArg: 'INT',
- array: true,
- parseArg: parsePositiveInteger
- },
- arrayOfDate: {
- takesArg: true,
- helpArg: 'INT',
- array: true,
- parseArg: parseDate
- },
-};
-
-
-
-// ---- Parser
-
-/**
- * Parser constructor.
- *
- * @param config {Object} The parser configuration
- * - options {Array} Array of option specs. See the README for how to
- * specify each option spec.
- * - allowUnknown {Boolean} Default false. Whether to throw on unknown
- * options. If false, then unknown args are included in the _args array.
- * - interspersed {Boolean} Default true. Whether to allow interspersed
- * arguments (non-options) and options. E.g.:
- * node tool.js arg1 arg2 -v
- * '-v' is after some args here. If `interspersed: false` then '-v'
- * would not be parsed out. Note that regardless of `interspersed`
- * the presence of '--' will stop option parsing, as all good
- * option parsers should.
- */
-function Parser(config) {
- assert.object(config, 'config');
- assert.arrayOfObject(config.options, 'config.options');
- assert.optionalBool(config.interspersed, 'config.interspersed');
- var self = this;
-
- // Allow interspersed arguments (true by default).
- this.interspersed = (config.interspersed !== undefined
- ? config.interspersed : true);
-
- // Don't allow unknown flags (true by default).
- this.allowUnknown = (config.allowUnknown !== undefined
- ? config.allowUnknown : false);
-
- this.options = config.options.map(function (o) { return shallowCopy(o); });
- this.optionFromName = {};
- this.optionFromEnv = {};
- for (var i = 0; i < this.options.length; i++) {
- var o = this.options[i];
- if (o.group !== undefined && o.group !== null) {
- assert.optionalString(o.group,
- format('config.options.%d.group', i));
- continue;
- }
- assert.ok(optionTypes[o.type],
- format('invalid config.options.%d.type: "%s" in %j',
- i, o.type, o));
- assert.optionalString(o.name, format('config.options.%d.name', i));
- assert.optionalArrayOfString(o.names,
- format('config.options.%d.names', i));
- assert.ok((o.name || o.names) && !(o.name && o.names),
- format('exactly one of "name" or "names" required: %j', o));
- assert.optionalString(o.help, format('config.options.%d.help', i));
- var env = o.env || [];
- if (typeof (env) === 'string') {
- env = [env];
- }
- assert.optionalArrayOfString(env, format('config.options.%d.env', i));
- assert.optionalString(o.helpGroup,
- format('config.options.%d.helpGroup', i));
- assert.optionalBool(o.helpWrap,
- format('config.options.%d.helpWrap', i));
- assert.optionalBool(o.hidden, format('config.options.%d.hidden', i));
-
- if (o.name) {
- o.names = [o.name];
- } else {
- assert.string(o.names[0],
- format('config.options.%d.names is empty', i));
- }
- o.key = optionKeyFromName(o.names[0]);
- o.names.forEach(function (n) {
- if (self.optionFromName[n]) {
- throw new Error(format(
- 'option name collision: "%s" used in %j and %j',
- n, self.optionFromName[n], o));
- }
- self.optionFromName[n] = o;
- });
- env.forEach(function (n) {
- if (self.optionFromEnv[n]) {
- throw new Error(format(
- 'option env collision: "%s" used in %j and %j',
- n, self.optionFromEnv[n], o));
- }
- self.optionFromEnv[n] = o;
- });
- }
-}
-
-Parser.prototype.optionTakesArg = function optionTakesArg(option) {
- return optionTypes[option.type].takesArg;
-};
-
-/**
- * Parse options from the given argv.
- *
- * @param inputs {Object} Optional.
- * - argv {Array} Optional. The argv to parse. Defaults to
- * `process.argv`.
- * - slice {Number} The index into argv at which options/args begin.
- * Default is 2, as appropriate for `process.argv`.
- * - env {Object} Optional. The env to use for 'env' entries in the
- * option specs. Defaults to `process.env`.
- * @returns {Object} Parsed `opts`. It has special keys `_args` (the
- * remaining args from `argv`) and `_order` (gives the order that
- * options were specified).
- */
-Parser.prototype.parse = function parse(inputs) {
- var self = this;
-
- // Old API was `parse([argv, [slice]])`
- if (Array.isArray(arguments[0])) {
- inputs = {argv: arguments[0], slice: arguments[1]};
- }
-
- assert.optionalObject(inputs, 'inputs');
- if (!inputs) {
- inputs = {};
- }
- assert.optionalArrayOfString(inputs.argv, 'inputs.argv');
- //assert.optionalNumber(slice, 'slice');
- var argv = inputs.argv || process.argv;
- var slice = inputs.slice !== undefined ? inputs.slice : 2;
- var args = argv.slice(slice);
- var env = inputs.env || process.env;
- var opts = {};
- var _order = [];
-
- function addOpt(option, optstr, key, val, from) {
- var type = optionTypes[option.type];
- var parsedVal = type.parseArg(option, optstr, val);
- if (type.array) {
- if (!opts[key]) {
- opts[key] = [];
- }
- if (type.arrayFlatten && Array.isArray(parsedVal)) {
- for (var i = 0; i < parsedVal.length; i++) {
- opts[key].push(parsedVal[i]);
- }
- } else {
- opts[key].push(parsedVal);
- }
- } else {
- opts[key] = parsedVal;
- }
- var item = { key: key, value: parsedVal, from: from };
- _order.push(item);
- }
-
- // Parse args.
- var _args = [];
- var i = 0;
- outer: while (i < args.length) {
- var arg = args[i];
-
- // End of options marker.
- if (arg === '--') {
- i++;
- break;
-
- // Long option
- } else if (arg.slice(0, 2) === '--') {
- var name = arg.slice(2);
- var val = null;
- var idx = name.indexOf('=');
- if (idx !== -1) {
- val = name.slice(idx + 1);
- name = name.slice(0, idx);
- }
- var option = this.optionFromName[name];
- if (!option) {
- if (!this.allowUnknown)
- throw new Error(format('unknown option: "--%s"', name));
- else if (this.interspersed)
- _args.push(arg);
- else
- break outer;
- } else {
- var takesArg = this.optionTakesArg(option);
- if (val !== null && !takesArg) {
- throw new Error(format('argument given to "--%s" option '
- + 'that does not take one: "%s"', name, arg));
- }
- if (!takesArg) {
- addOpt(option, '--'+name, option.key, true, 'argv');
- } else if (val !== null) {
- addOpt(option, '--'+name, option.key, val, 'argv');
- } else if (i + 1 >= args.length) {
- throw new Error(format('do not have enough args for "--%s" '
- + 'option', name));
- } else {
- addOpt(option, '--'+name, option.key, args[i + 1], 'argv');
- i++;
- }
- }
-
- // Short option
- } else if (arg[0] === '-' && arg.length > 1) {
- var j = 1;
- var allFound = true;
- while (j < arg.length) {
- var name = arg[j];
- var option = this.optionFromName[name];
- if (!option) {
- allFound = false;
- if (this.allowUnknown) {
- if (this.interspersed) {
- _args.push(arg);
- break;
- } else
- break outer;
- } else if (arg.length > 2) {
- throw new Error(format(
- 'unknown option: "-%s" in "%s" group',
- name, arg));
- } else {
- throw new Error(format('unknown option: "-%s"', name));
- }
- } else if (this.optionTakesArg(option)) {
- break;
- }
- j++;
- }
-
- j = 1;
- while (allFound && j < arg.length) {
- var name = arg[j];
- var val = arg.slice(j + 1); // option val if it takes an arg
- var option = this.optionFromName[name];
- var takesArg = this.optionTakesArg(option);
- if (!takesArg) {
- addOpt(option, '-'+name, option.key, true, 'argv');
- } else if (val) {
- addOpt(option, '-'+name, option.key, val, 'argv');
- break;
- } else {
- if (i + 1 >= args.length) {
- throw new Error(format('do not have enough args '
- + 'for "-%s" option', name));
- }
- addOpt(option, '-'+name, option.key, args[i + 1], 'argv');
- i++;
- break;
- }
- j++;
- }
-
- // An interspersed arg
- } else if (this.interspersed) {
- _args.push(arg);
-
- // An arg and interspersed args are not allowed, so done options.
- } else {
- break outer;
- }
- i++;
- }
- _args = _args.concat(args.slice(i));
-
- // Parse environment.
- Object.keys(this.optionFromEnv).forEach(function (envname) {
- var val = env[envname];
- if (val === undefined)
- return;
- var option = self.optionFromEnv[envname];
- if (opts[option.key] !== undefined)
- return;
- var takesArg = self.optionTakesArg(option);
- if (takesArg) {
- addOpt(option, envname, option.key, val, 'env');
- } else if (val !== '') {
- // Boolean envvar handling:
- // - VAR=<empty-string> not set (as if the VAR was not set)
- // - VAR=0 false
- // - anything else true
- addOpt(option, envname, option.key, (val !== '0'), 'env');
- }
- });
-
- // Apply default values.
- this.options.forEach(function (o) {
- if (opts[o.key] === undefined) {
- if (o.default !== undefined) {
- opts[o.key] = o.default;
- } else if (o.type && optionTypes[o.type].default !== undefined) {
- opts[o.key] = optionTypes[o.type].default;
- }
- }
- });
-
- opts._order = _order;
- opts._args = _args;
- return opts;
-};
-
-
-/**
- * Return help output for the current options.
- *
- * E.g.: if the current options are:
- * [{names: ['help', 'h'], type: 'bool', help: 'Show help and exit.'}]
- * then this would return:
- * ' -h, --help Show help and exit.\n'
- *
- * @param config {Object} Config for controlling the option help output.
- * - indent {Number|String} Default 4. An indent/prefix to use for
- * each option line.
- * - nameSort {String} Default is 'length'. By default the names are
- * sorted to put the short opts first (i.e. '-h, --help' preferred
- * to '--help, -h'). Set to 'none' to not do this sorting.
- * - maxCol {Number} Default 80. Note that long tokens in a help string
- * can go past this.
- * - helpCol {Number} Set to specify a specific column at which
- * option help will be aligned. By default this is determined
- * automatically.
- * - minHelpCol {Number} Default 20.
- * - maxHelpCol {Number} Default 40.
- * - includeEnv {Boolean} Default false. If true, a note stating the `env`
- * envvar (if specified for this option) will be appended to the help
- * output.
- * - includeDefault {Boolean} Default false. If true, a note stating
- * the `default` for this option, if any, will be appended to the help
- * output.
- * - helpWrap {Boolean} Default true. Wrap help text in helpCol..maxCol
- * bounds.
- * @returns {String}
- */
-Parser.prototype.help = function help(config) {
- config = config || {};
- assert.object(config, 'config');
-
- var indent = makeIndent(config.indent, 4, 'config.indent');
- var headingIndent = makeIndent(config.headingIndent,
- Math.round(indent.length / 2), 'config.headingIndent');
-
- assert.optionalString(config.nameSort, 'config.nameSort');
- var nameSort = config.nameSort || 'length';
- assert.ok(~['length', 'none'].indexOf(nameSort),
- 'invalid "config.nameSort"');
- assert.optionalNumber(config.maxCol, 'config.maxCol');
- assert.optionalNumber(config.maxHelpCol, 'config.maxHelpCol');
- assert.optionalNumber(config.minHelpCol, 'config.minHelpCol');
- assert.optionalNumber(config.helpCol, 'config.helpCol');
- assert.optionalBool(config.includeEnv, 'config.includeEnv');
- assert.optionalBool(config.includeDefault, 'config.includeDefault');
- assert.optionalBool(config.helpWrap, 'config.helpWrap');
- var maxCol = config.maxCol || 80;
- var minHelpCol = config.minHelpCol || 20;
- var maxHelpCol = config.maxHelpCol || 40;
-
- var lines = [];
- var maxWidth = 0;
- this.options.forEach(function (o) {
- if (o.hidden) {
- return;
- }
- if (o.group !== undefined && o.group !== null) {
- // We deal with groups in the next pass
- lines.push(null);
- return;
- }
- var type = optionTypes[o.type];
- var arg = o.helpArg || type.helpArg || 'ARG';
- var line = '';
- var names = o.names.slice();
- if (nameSort === 'length') {
- names.sort(function (a, b) {
- if (a.length < b.length)
- return -1;
- else if (b.length < a.length)
- return 1;
- else
- return 0;
- })
- }
- names.forEach(function (name, i) {
- if (i > 0)
- line += ', ';
- if (name.length === 1) {
- line += '-' + name
- if (type.takesArg)
- line += ' ' + arg;
- } else {
- line += '--' + name
- if (type.takesArg)
- line += '=' + arg;
- }
- });
- maxWidth = Math.max(maxWidth, line.length);
- lines.push(line);
- });
-
- // Add help strings.
- var helpCol = config.helpCol;
- if (!helpCol) {
- helpCol = maxWidth + indent.length + 2;
- helpCol = Math.min(Math.max(helpCol, minHelpCol), maxHelpCol);
- }
- var i = -1;
- this.options.forEach(function (o) {
- if (o.hidden) {
- return;
- }
- i++;
-
- if (o.group !== undefined && o.group !== null) {
- if (o.group === '') {
- // Support a empty string "group" to have a blank line between
- // sets of options.
- lines[i] = '';
- } else {
- // Render the group heading with the heading-specific indent.
- lines[i] = (i === 0 ? '' : '\n') + headingIndent +
- o.group + ':';
- }
- return;
- }
-
- var helpDefault;
- if (config.includeDefault) {
- if (o.default !== undefined) {
- helpDefault = format('Default: %j', o.default);
- } else if (o.type && optionTypes[o.type].default !== undefined) {
- helpDefault = format('Default: %j',
- optionTypes[o.type].default);
- }
- }
-
- var line = lines[i] = indent + lines[i];
- if (!o.help && !(config.includeEnv && o.env) && !helpDefault) {
- return;
- }
- var n = helpCol - line.length;
- if (n >= 0) {
- line += space(n);
- } else {
- line += '\n' + space(helpCol);
- }
-
- var helpEnv = '';
- if (o.env && o.env.length && config.includeEnv) {
- helpEnv += 'Environment: ';
- var type = optionTypes[o.type];
- var arg = o.helpArg || type.helpArg || 'ARG';
- var envs = (Array.isArray(o.env) ? o.env : [o.env]).map(
- function (e) {
- if (type.takesArg) {
- return e + '=' + arg;
- } else {
- return e + '=1';
- }
- }
- );
- helpEnv += envs.join(', ');
- }
- var help = (o.help || '').trim();
- if (o.helpWrap !== false && config.helpWrap !== false) {
- // Wrap help description normally.
- if (help.length && !~'.!?"\''.indexOf(help.slice(-1))) {
- help += '.';
- }
- if (help.length) {
- help += ' ';
- }
- help += helpEnv;
- if (helpDefault) {
- if (helpEnv) {
- help += '. ';
- }
- help += helpDefault;
- }
- line += textwrap(help, maxCol - helpCol).join(
- '\n' + space(helpCol));
- } else {
- // Do not wrap help description, but indent newlines appropriately.
- var helpLines = help.split('\n').filter(
- function (ln) { return ln.length });
- if (helpEnv !== '') {
- helpLines.push(helpEnv);
- }
- if (helpDefault) {
- helpLines.push(helpDefault);
- }
- line += helpLines.join('\n' + space(helpCol));
- }
-
- lines[i] = line;
- });
-
- var rv = '';
- if (lines.length > 0) {
- rv = lines.join('\n') + '\n';
- }
- return rv;
-};
-
-
-/**
- * Return a string suitable for a Bash completion file for this tool.
- *
- * @param args.name {String} The tool name.
- * @param args.specExtra {String} Optional. Extra Bash code content to add
- * to the end of the "spec". Typically this is used to append Bash
- * "complete_TYPE" functions for custom option types. See
- * "examples/ddcompletion.js" for an example.
- * @param args.argtypes {Array} Optional. Array of completion types for
- * positional args (i.e. non-options). E.g.
- * argtypes = ['fruit', 'veggie', 'file']
- * will result in completion of fruits for the first arg, veggies for the
- * second, and filenames for the third and subsequent positional args.
- * If not given, positional args will use Bash's 'default' completion.
- * See `specExtra` for providing Bash `complete_TYPE` functions, e.g.
- * `complete_fruit` and `complete_veggie` in this example.
- */
-Parser.prototype.bashCompletion = function bashCompletion(args) {
- assert.object(args, 'args');
- assert.string(args.name, 'args.name');
- assert.optionalString(args.specExtra, 'args.specExtra');
- assert.optionalArrayOfString(args.argtypes, 'args.argtypes');
-
- return bashCompletionFromOptions({
- name: args.name,
- specExtra: args.specExtra,
- argtypes: args.argtypes,
- options: this.options
- });
-};
-
-
-// ---- Bash completion
-
-const BASH_COMPLETION_TEMPLATE_PATH = path.join(
- __dirname, '../etc/dashdash.bash_completion.in');
-
-/**
- * Return the Bash completion "spec" (the string value for the "{{spec}}"
- * var in the "dashdash.bash_completion.in" template) for this tool.
- *
- * The "spec" is Bash code that defines the CLI options and subcmds for
- * the template's completion code. It looks something like this:
- *
- * local cmd_shortopts="-J ..."
- * local cmd_longopts="--help ..."
- * local cmd_optargs="-p=tritonprofile ..."
- *
- * @param args.options {Array} The array of dashdash option specs.
- * @param args.context {String} Optional. A context string for the "local cmd*"
- * vars in the spec. By default it is the empty string. When used to
- * scope for completion on a *sub-command* (e.g. for "git log" on a "git"
- * tool), then it would have a value (e.g. "__log"). See
- * <http://github.com/trentm/node-cmdln> Bash completion for details.
- * @param opts.includeHidden {Boolean} Optional. Default false. By default
- * hidden options and subcmds are "excluded". Here excluded means they
- * won't be offered as a completion, but if used, their argument type
- * will be completed. "Hidden" options and subcmds are ones with the
- * `hidden: true` attribute to exclude them from default help output.
- * @param args.argtypes {Array} Optional. Array of completion types for
- * positional args (i.e. non-options). E.g.
- * argtypes = ['fruit', 'veggie', 'file']
- * will result in completion of fruits for the first arg, veggies for the
- * second, and filenames for the third and subsequent positional args.
- * If not given, positional args will use Bash's 'default' completion.
- * See `specExtra` for providing Bash `complete_TYPE` functions, e.g.
- * `complete_fruit` and `complete_veggie` in this example.
- */
-function bashCompletionSpecFromOptions(args) {
- assert.object(args, 'args');
- assert.object(args.options, 'args.options');
- assert.optionalString(args.context, 'args.context');
- assert.optionalBool(args.includeHidden, 'args.includeHidden');
- assert.optionalArrayOfString(args.argtypes, 'args.argtypes');
-
- var context = args.context || '';
- var includeHidden = (args.includeHidden === undefined
- ? false : args.includeHidden);
-
- var spec = [];
- var shortopts = [];
- var longopts = [];
- var optargs = [];
- (args.options || []).forEach(function (o) {
- if (o.group !== undefined && o.group !== null) {
- // Skip group headers.
- return;
- }
-
- var optNames = o.names || [o.name];
- var optType = getOptionType(o.type);
- if (optType.takesArg) {
- var completionType = o.completionType ||
- optType.completionType || o.type;
- optNames.forEach(function (optName) {
- if (optName.length === 1) {
- if (includeHidden || !o.hidden) {
- shortopts.push('-' + optName);
- }
- // Include even hidden options in `optargs` so that bash
- // completion of its arg still works.
- optargs.push('-' + optName + '=' + completionType);
- } else {
- if (includeHidden || !o.hidden) {
- longopts.push('--' + optName);
- }
- optargs.push('--' + optName + '=' + completionType);
- }
- });
- } else {
- optNames.forEach(function (optName) {
- if (includeHidden || !o.hidden) {
- if (optName.length === 1) {
- shortopts.push('-' + optName);
- } else {
- longopts.push('--' + optName);
- }
- }
- });
- }
- });
-
- spec.push(format('local cmd%s_shortopts="%s"',
- context, shortopts.sort().join(' ')));
- spec.push(format('local cmd%s_longopts="%s"',
- context, longopts.sort().join(' ')));
- spec.push(format('local cmd%s_optargs="%s"',
- context, optargs.sort().join(' ')));
- if (args.argtypes) {
- spec.push(format('local cmd%s_argtypes="%s"',
- context, args.argtypes.join(' ')));
- }
- return spec.join('\n');
-}
-
-
-/**
- * Return a string suitable for a Bash completion file for this tool.
- *
- * @param args.name {String} The tool name.
- * @param args.options {Array} The array of dashdash option specs.
- * @param args.specExtra {String} Optional. Extra Bash code content to add
- * to the end of the "spec". Typically this is used to append Bash
- * "complete_TYPE" functions for custom option types. See
- * "examples/ddcompletion.js" for an example.
- * @param args.argtypes {Array} Optional. Array of completion types for
- * positional args (i.e. non-options). E.g.
- * argtypes = ['fruit', 'veggie', 'file']
- * will result in completion of fruits for the first arg, veggies for the
- * second, and filenames for the third and subsequent positional args.
- * If not given, positional args will use Bash's 'default' completion.
- * See `specExtra` for providing Bash `complete_TYPE` functions, e.g.
- * `complete_fruit` and `complete_veggie` in this example.
- */
-function bashCompletionFromOptions(args) {
- assert.object(args, 'args');
- assert.object(args.options, 'args.options');
- assert.string(args.name, 'args.name');
- assert.optionalString(args.specExtra, 'args.specExtra');
- assert.optionalArrayOfString(args.argtypes, 'args.argtypes');
-
- // Gather template data.
- var data = {
- name: args.name,
- date: new Date(),
- spec: bashCompletionSpecFromOptions({
- options: args.options,
- argtypes: args.argtypes
- }),
- };
- if (args.specExtra) {
- data.spec += '\n\n' + args.specExtra;
- }
-
- // Render template.
- var template = fs.readFileSync(BASH_COMPLETION_TEMPLATE_PATH, 'utf8');
- return renderTemplate(template, data);
-}
-
-
-
-// ---- exports
-
-function createParser(config) {
- return new Parser(config);
-}
-
-/**
- * Parse argv with the given options.
- *
- * @param config {Object} A merge of all the available fields from
- * `dashdash.Parser` and `dashdash.Parser.parse`: options, interspersed,
- * argv, env, slice.
- */
-function parse(config) {
- assert.object(config, 'config');
- assert.optionalArrayOfString(config.argv, 'config.argv');
- assert.optionalObject(config.env, 'config.env');
- var config = shallowCopy(config);
- var argv = config.argv;
- delete config.argv;
- var env = config.env;
- delete config.env;
-
- var parser = new Parser(config);
- return parser.parse({argv: argv, env: env});
-}
-
-
-/**
- * Add a new option type.
- *
- * @params optionType {Object}:
- * - name {String} Required.
- * - takesArg {Boolean} Required. Whether this type of option takes an
- * argument on process.argv. Typically this is true for all but the
- * "bool" type.
- * - helpArg {String} Required iff `takesArg === true`. The string to
- * show in generated help for options of this type.
- * - parseArg {Function} Require. `function (option, optstr, arg)` parser
- * that takes a string argument and returns an instance of the
- * appropriate type, or throws an error if the arg is invalid.
- * - array {Boolean} Optional. Set to true if this is an 'arrayOf' type
- * that collects multiple usages of the option in process.argv and
- * puts results in an array.
- * - arrayFlatten {Boolean} Optional. XXX
- * - default Optional. Default value for options of this type, if no
- * default is specified in the option type usage.
- */
-function addOptionType(optionType) {
- assert.object(optionType, 'optionType');
- assert.string(optionType.name, 'optionType.name');
- assert.bool(optionType.takesArg, 'optionType.takesArg');
- if (optionType.takesArg) {
- assert.string(optionType.helpArg, 'optionType.helpArg');
- }
- assert.func(optionType.parseArg, 'optionType.parseArg');
- assert.optionalBool(optionType.array, 'optionType.array');
- assert.optionalBool(optionType.arrayFlatten, 'optionType.arrayFlatten');
-
- optionTypes[optionType.name] = {
- takesArg: optionType.takesArg,
- helpArg: optionType.helpArg,
- parseArg: optionType.parseArg,
- array: optionType.array,
- arrayFlatten: optionType.arrayFlatten,
- default: optionType.default
- }
-}
-
-
-function getOptionType(name) {
- assert.string(name, 'name');
- return optionTypes[name];
-}
-
-
-/**
- * Return a synopsis string for the given option spec.
- *
- * Examples:
- * > synopsisFromOpt({names: ['help', 'h'], type: 'bool'});
- * '[ --help | -h ]'
- * > synopsisFromOpt({name: 'file', type: 'string', helpArg: 'FILE'});
- * '[ --file=FILE ]'
- */
-function synopsisFromOpt(o) {
- assert.object(o, 'o');
-
- if (o.hasOwnProperty('group')) {
- return null;
- }
- var names = o.names || [o.name];
- // `type` here could be undefined if, for example, the command has a
- // dashdash option spec with a bogus 'type'.
- var type = getOptionType(o.type);
- var helpArg = o.helpArg || (type && type.helpArg) || 'ARG';
- var parts = [];
- names.forEach(function (name) {
- var part = (name.length === 1 ? '-' : '--') + name;
- if (type && type.takesArg) {
- part += (name.length === 1 ? ' ' + helpArg : '=' + helpArg);
- }
- parts.push(part);
- });
- return ('[ ' + parts.join(' | ') + ' ]');
-};
-
-
-module.exports = {
- createParser: createParser,
- Parser: Parser,
- parse: parse,
- addOptionType: addOptionType,
- getOptionType: getOptionType,
- synopsisFromOpt: synopsisFromOpt,
-
- // Bash completion-related exports
- BASH_COMPLETION_TEMPLATE_PATH: BASH_COMPLETION_TEMPLATE_PATH,
- bashCompletionFromOptions: bashCompletionFromOptions,
- bashCompletionSpecFromOptions: bashCompletionSpecFromOptions,
-
- // Export the parseFoo parsers because they might be useful as primitives
- // for custom option types.
- parseBool: parseBool,
- parseString: parseString,
- parseNumber: parseNumber,
- parseInteger: parseInteger,
- parsePositiveInteger: parsePositiveInteger,
- parseDate: parseDate
-};
diff --git a/deps/npm/node_modules/dashdash/package.json b/deps/npm/node_modules/dashdash/package.json
deleted file mode 100644
index a11e1f5832a..00000000000
--- a/deps/npm/node_modules/dashdash/package.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "name": "dashdash",
- "description": "A light, featureful and explicit option parsing library.",
- "version": "1.14.1",
- "author": "Trent Mick <trentm@gmail.com> (http://trentm.com)",
- "keywords": ["option", "parser", "parsing", "cli", "command", "args",
- "bash", "completion"],
- "repository": {
- "type": "git",
- "url": "git://github.com/trentm/node-dashdash.git"
- },
- "main": "./lib/dashdash.js",
- "dependencies": {
- "assert-plus": "^1.0.0"
- },
- "devDependencies": {
- "nodeunit": "0.9.x"
- },
- "engines": {
- "node": ">=0.10"
- },
- "scripts": {
- "test": "nodeunit test/*.test.js"
- },
- "license": "MIT"
-}
diff --git a/deps/npm/node_modules/delayed-stream/License b/deps/npm/node_modules/delayed-stream/License
deleted file mode 100644
index 4804b7ab411..00000000000
--- a/deps/npm/node_modules/delayed-stream/License
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2011 Debuggable Limited <felix@debuggable.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/deps/npm/node_modules/delayed-stream/Makefile b/deps/npm/node_modules/delayed-stream/Makefile
deleted file mode 100644
index b4ff85a33b6..00000000000
--- a/deps/npm/node_modules/delayed-stream/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-SHELL := /bin/bash
-
-test:
- @./test/run.js
-
-.PHONY: test
-
diff --git a/deps/npm/node_modules/delayed-stream/Readme.md b/deps/npm/node_modules/delayed-stream/Readme.md
deleted file mode 100644
index aca36f9f0bc..00000000000
--- a/deps/npm/node_modules/delayed-stream/Readme.md
+++ /dev/null
@@ -1,141 +0,0 @@
-# delayed-stream
-
-Buffers events from a stream until you are ready to handle them.
-
-## Installation
-
-``` bash
-npm install delayed-stream
-```
-
-## Usage
-
-The following example shows how to write a http echo server that delays its
-response by 1000 ms.
-
-``` javascript
-var DelayedStream = require('delayed-stream');
-var http = require('http');
-
-http.createServer(function(req, res) {
- var delayed = DelayedStream.create(req);
-
- setTimeout(function() {
- res.writeHead(200);
- delayed.pipe(res);
- }, 1000);
-});
-```
-
-If you are not using `Stream#pipe`, you can also manually release the buffered
-events by calling `delayedStream.resume()`:
-
-``` javascript
-var delayed = DelayedStream.create(req);
-
-setTimeout(function() {
- // Emit all buffered events and resume underlaying source
- delayed.resume();
-}, 1000);
-```
-
-## Implementation
-
-In order to use this meta stream properly, here are a few things you should
-know about the implementation.
-
-### Event Buffering / Proxying
-
-All events of the `source` stream are hijacked by overwriting the `source.emit`
-method. Until node implements a catch-all event listener, this is the only way.
-
-However, delayed-stream still continues to emit all events it captures on the
-`source`, regardless of whether you have released the delayed stream yet or
-not.
-
-Upon creation, delayed-stream captures all `source` events and stores them in
-an internal event buffer. Once `delayedStream.release()` is called, all
-buffered events are emitted on the `delayedStream`, and the event buffer is
-cleared. After that, delayed-stream merely acts as a proxy for the underlaying
-source.
-
-### Error handling
-
-Error events on `source` are buffered / proxied just like any other events.
-However, `delayedStream.create` attaches a no-op `'error'` listener to the
-`source`. This way you only have to handle errors on the `delayedStream`
-object, rather than in two places.
-
-### Buffer limits
-
-delayed-stream provides a `maxDataSize` property that can be used to limit
-the amount of data being buffered. In order to protect you from bad `source`
-streams that don't react to `source.pause()`, this feature is enabled by
-default.
-
-## API
-
-### DelayedStream.create(source, [options])
-
-Returns a new `delayedStream`. Available options are:
-
-* `pauseStream`
-* `maxDataSize`
-
-The description for those properties can be found below.
-
-### delayedStream.source
-
-The `source` stream managed by this object. This is useful if you are
-passing your `delayedStream` around, and you still want to access properties
-on the `source` object.
-
-### delayedStream.pauseStream = true
-
-Whether to pause the underlaying `source` when calling
-`DelayedStream.create()`. Modifying this property afterwards has no effect.
-
-### delayedStream.maxDataSize = 1024 * 1024
-
-The amount of data to buffer before emitting an `error`.
-
-If the underlaying source is emitting `Buffer` objects, the `maxDataSize`
-refers to bytes.
-
-If the underlaying source is emitting JavaScript strings, the size refers to
-characters.
-
-If you know what you are doing, you can set this property to `Infinity` to
-disable this feature. You can also modify this property during runtime.
-
-### delayedStream.dataSize = 0
-
-The amount of data buffered so far.
-
-### delayedStream.readable
-
-An ECMA5 getter that returns the value of `source.readable`.
-
-### delayedStream.resume()
-
-If the `delayedStream` has not been released so far, `delayedStream.release()`
-is called.
-
-In either case, `source.resume()` is called.
-
-### delayedStream.pause()
-
-Calls `source.pause()`.
-
-### delayedStream.pipe(dest)
-
-Calls `delayedStream.resume()` and then proxies the arguments to `source.pipe`.
-
-### delayedStream.release()
-
-Emits and clears all events that have been buffered up so far. This does not
-resume the underlaying source, use `delayedStream.resume()` instead.
-
-## License
-
-delayed-stream is licensed under the MIT license.
diff --git a/deps/npm/node_modules/delayed-stream/lib/delayed_stream.js b/deps/npm/node_modules/delayed-stream/lib/delayed_stream.js
deleted file mode 100644
index b38fc85ff41..00000000000
--- a/deps/npm/node_modules/delayed-stream/lib/delayed_stream.js
+++ /dev/null
@@ -1,107 +0,0 @@
-var Stream = require('stream').Stream;
-var util = require('util');
-
-module.exports = DelayedStream;
-function DelayedStream() {
- this.source = null;
- this.dataSize = 0;
- this.maxDataSize = 1024 * 1024;
- this.pauseStream = true;
-
- this._maxDataSizeExceeded = false;
- this._released = false;
- this._bufferedEvents = [];
-}
-util.inherits(DelayedStream, Stream);
-
-DelayedStream.create = function(source, options) {
- var delayedStream = new this();
-
- options = options || {};
- for (var option in options) {
- delayedStream[option] = options[option];
- }
-
- delayedStream.source = source;
-
- var realEmit = source.emit;
- source.emit = function() {
- delayedStream._handleEmit(arguments);
- return realEmit.apply(source, arguments);
- };
-
- source.on('error', function() {});
- if (delayedStream.pauseStream) {
- source.pause();
- }
-
- return delayedStream;
-};
-
-Object.defineProperty(DelayedStream.prototype, 'readable', {
- configurable: true,
- enumerable: true,
- get: function() {
- return this.source.readable;
- }
-});
-
-DelayedStream.prototype.setEncoding = function() {
- return this.source.setEncoding.apply(this.source, arguments);
-};
-
-DelayedStream.prototype.resume = function() {
- if (!this._released) {
- this.release();
- }
-
- this.source.resume();
-};
-
-DelayedStream.prototype.pause = function() {
- this.source.pause();
-};
-
-DelayedStream.prototype.release = function() {
- this._released = true;
-
- this._bufferedEvents.forEach(function(args) {
- this.emit.apply(this, args);
- }.bind(this));
- this._bufferedEvents = [];
-};
-
-DelayedStream.prototype.pipe = function() {
- var r = Stream.prototype.pipe.apply(this, arguments);
- this.resume();
- return r;
-};
-
-DelayedStream.prototype._handleEmit = function(args) {
- if (this._released) {
- this.emit.apply(this, args);
- return;
- }
-
- if (args[0] === 'data') {
- this.dataSize += args[1].length;
- this._checkIfMaxDataSizeExceeded();
- }
-
- this._bufferedEvents.push(args);
-};
-
-DelayedStream.prototype._checkIfMaxDataSizeExceeded = function() {
- if (this._maxDataSizeExceeded) {
- return;
- }
-
- if (this.dataSize <= this.maxDataSize) {
- return;
- }
-
- this._maxDataSizeExceeded = true;
- var message =
- 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.'
- this.emit('error', new Error(message));
-};
diff --git a/deps/npm/node_modules/delayed-stream/package.json b/deps/npm/node_modules/delayed-stream/package.json
deleted file mode 100644
index eea3291c54b..00000000000
--- a/deps/npm/node_modules/delayed-stream/package.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "author": "Felix Geisendörfer <felix@debuggable.com> (http://debuggable.com/)",
- "contributors": [
- "Mike Atkins <apeherder@gmail.com>"
- ],
- "name": "delayed-stream",
- "description": "Buffers events from a stream until you are ready to handle them.",
- "license": "MIT",
- "version": "1.0.0",
- "homepage": "https://github.com/felixge/node-delayed-stream",
- "repository": {
- "type": "git",
- "url": "git://github.com/felixge/node-delayed-stream.git"
- },
- "main": "./lib/delayed_stream",
- "engines": {
- "node": ">=0.4.0"
- },
- "scripts": {
- "test": "make test"
- },
- "dependencies": {},
- "devDependencies": {
- "fake": "0.2.0",
- "far": "0.0.1"
- }
-}
diff --git a/deps/npm/node_modules/ecc-jsbn/LICENSE b/deps/npm/node_modules/ecc-jsbn/LICENSE
deleted file mode 100755
index f668fefc624..00000000000
--- a/deps/npm/node_modules/ecc-jsbn/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Jeremie Miller
-
-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. \ No newline at end of file
diff --git a/deps/npm/node_modules/ecc-jsbn/index.js b/deps/npm/node_modules/ecc-jsbn/index.js
deleted file mode 100755
index fb19a1d6fcb..00000000000
--- a/deps/npm/node_modules/ecc-jsbn/index.js
+++ /dev/null
@@ -1,58 +0,0 @@
-var crypto = require("crypto");
-var BigInteger = require("jsbn").BigInteger;
-var ECPointFp = require("./lib/ec.js").ECPointFp;
-var Buffer = require("safer-buffer").Buffer;
-exports.ECCurves = require("./lib/sec.js");
-
-// zero prepad
-function unstupid(hex,len)
-{
- return (hex.length >= len) ? hex : unstupid("0"+hex,len);
-}
-
-exports.ECKey = function(curve, key, isPublic)
-{
- var priv;
- var c = curve();
- var n = c.getN();
- var bytes = Math.floor(n.bitLength()/8);
-
- if(key)
- {
- if(isPublic)
- {
- var curve = c.getCurve();
-// var x = key.slice(1,bytes+1); // skip the 04 for uncompressed format
-// var y = key.slice(bytes+1);
-// this.P = new ECPointFp(curve,
-// curve.fromBigInteger(new BigInteger(x.toString("hex"), 16)),
-// curve.fromBigInteger(new BigInteger(y.toString("hex"), 16)));
- this.P = curve.decodePointHex(key.toString("hex"));
- }else{
- if(key.length != bytes) return false;
- priv = new BigInteger(key.toString("hex"), 16);
- }
- }else{
- var n1 = n.subtract(BigInteger.ONE);
- var r = new BigInteger(crypto.randomBytes(n.bitLength()));
- priv = r.mod(n1).add(BigInteger.ONE);
- this.P = c.getG().multiply(priv);
- }
- if(this.P)
- {
-// var pubhex = unstupid(this.P.getX().toBigInteger().toString(16),bytes*2)+unstupid(this.P.getY().toBigInteger().toString(16),bytes*2);
-// this.PublicKey = Buffer.from("04"+pubhex,"hex");
- this.PublicKey = Buffer.from(c.getCurve().encodeCompressedPointHex(this.P),"hex");
- }
- if(priv)
- {
- this.PrivateKey = Buffer.from(unstupid(priv.toString(16),bytes*2),"hex");
- this.deriveSharedSecret = function(key)
- {
- if(!key || !key.P) return false;
- var S = key.P.multiply(priv);
- return Buffer.from(unstupid(S.getX().toBigInteger().toString(16),bytes*2),"hex");
- }
- }
-}
-
diff --git a/deps/npm/node_modules/ecc-jsbn/lib/LICENSE-jsbn b/deps/npm/node_modules/ecc-jsbn/lib/LICENSE-jsbn
deleted file mode 100755
index 24502a9cf74..00000000000
--- a/deps/npm/node_modules/ecc-jsbn/lib/LICENSE-jsbn
+++ /dev/null
@@ -1,40 +0,0 @@
-Licensing
----------
-
-This software is covered under the following copyright:
-
-/*
- * Copyright (c) 2003-2005 Tom Wu
- * All Rights Reserved.
- *
- * 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" AND WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
- * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
- *
- * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
- * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
- * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * In addition, the following condition applies:
- *
- * All redistributions must retain an intact copy of this copyright notice
- * and disclaimer.
- */
-
-Address all questions regarding this license to:
-
- Tom Wu
- tjw@cs.Stanford.EDU
diff --git a/deps/npm/node_modules/ecc-jsbn/lib/ec.js b/deps/npm/node_modules/ecc-jsbn/lib/ec.js
deleted file mode 100755
index 3852671eca2..00000000000
--- a/deps/npm/node_modules/ecc-jsbn/lib/ec.js
+++ /dev/null
@@ -1,561 +0,0 @@
-// Basic Javascript Elliptic Curve implementation
-// Ported loosely from BouncyCastle's Java EC code
-// Only Fp curves implemented for now
-
-// Requires jsbn.js and jsbn2.js
-var BigInteger = require('jsbn').BigInteger
-var Barrett = BigInteger.prototype.Barrett
-
-// ----------------
-// ECFieldElementFp
-
-// constructor
-function ECFieldElementFp(q,x) {
- this.x = x;
- // TODO if(x.compareTo(q) >= 0) error
- this.q = q;
-}
-
-function feFpEquals(other) {
- if(other == this) return true;
- return (this.q.equals(other.q) && this.x.equals(other.x));
-}
-
-function feFpToBigInteger() {
- return this.x;
-}
-
-function feFpNegate() {
- return new ECFieldElementFp(this.q, this.x.negate().mod(this.q));
-}
-
-function feFpAdd(b) {
- return new ECFieldElementFp(this.q, this.x.add(b.toBigInteger()).mod(this.q));
-}
-
-function feFpSubtract(b) {
- return new ECFieldElementFp(this.q, this.x.subtract(b.toBigInteger()).mod(this.q));
-}
-
-function feFpMultiply(b) {
- return new ECFieldElementFp(this.q, this.x.multiply(b.toBigInteger()).mod(this.q));
-}
-
-function feFpSquare() {
- return new ECFieldElementFp(this.q, this.x.square().mod(this.q));
-}
-
-function feFpDivide(b) {
- return new ECFieldElementFp(this.q, this.x.multiply(b.toBigInteger().modInverse(this.q)).mod(this.q));
-}
-
-ECFieldElementFp.prototype.equals = feFpEquals;
-ECFieldElementFp.prototype.toBigInteger = feFpToBigInteger;
-ECFieldElementFp.prototype.negate = feFpNegate;
-ECFieldElementFp.prototype.add = feFpAdd;
-ECFieldElementFp.prototype.subtract = feFpSubtract;
-ECFieldElementFp.prototype.multiply = feFpMultiply;
-ECFieldElementFp.prototype.square = feFpSquare;
-ECFieldElementFp.prototype.divide = feFpDivide;
-
-// ----------------
-// ECPointFp
-
-// constructor
-function ECPointFp(curve,x,y,z) {
- this.curve = curve;
- this.x = x;
- this.y = y;
- // Projective coordinates: either zinv == null or z * zinv == 1
- // z and zinv are just BigIntegers, not fieldElements
- if(z == null) {
- this.z = BigInteger.ONE;
- }
- else {
- this.z = z;
- }
- this.zinv = null;
- //TODO: compression flag
-}
-
-function pointFpGetX() {
- if(this.zinv == null) {
- this.zinv = this.z.modInverse(this.curve.q);
- }
- var r = this.x.toBigInteger().multiply(this.zinv);
- this.curve.reduce(r);
- return this.curve.fromBigInteger(r);
-}
-
-function pointFpGetY() {
- if(this.zinv == null) {
- this.zinv = this.z.modInverse(this.curve.q);
- }
- var r = this.y.toBigInteger().multiply(this.zinv);
- this.curve.reduce(r);
- return this.curve.fromBigInteger(r);
-}
-
-function pointFpEquals(other) {
- if(other == this) return true;
- if(this.isInfinity()) return other.isInfinity();
- if(other.isInfinity()) return this.isInfinity();
- var u, v;
- // u = Y2 * Z1 - Y1 * Z2
- u = other.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(other.z)).mod(this.curve.q);
- if(!u.equals(BigInteger.ZERO)) return false;
- // v = X2 * Z1 - X1 * Z2
- v = other.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(other.z)).mod(this.curve.q);
- return v.equals(BigInteger.ZERO);
-}
-
-function pointFpIsInfinity() {
- if((this.x == null) && (this.y == null)) return true;
- return this.z.equals(BigInteger.ZERO) && !this.y.toBigInteger().equals(BigInteger.ZERO);
-}
-
-function pointFpNegate() {
- return new ECPointFp(this.curve, this.x, this.y.negate(), this.z);
-}
-
-function pointFpAdd(b) {
- if(this.isInfinity()) return b;
- if(b.isInfinity()) return this;
-
- // u = Y2 * Z1 - Y1 * Z2
- var u = b.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(b.z)).mod(this.curve.q);
- // v = X2 * Z1 - X1 * Z2
- var v = b.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(b.z)).mod(this.curve.q);
-
- if(BigInteger.ZERO.equals(v)) {
- if(BigInteger.ZERO.equals(u)) {
- return this.twice(); // this == b, so double
- }
- return this.curve.getInfinity(); // this = -b, so infinity
- }
-
- var THREE = new BigInteger("3");
- var x1 = this.x.toBigInteger();
- var y1 = this.y.toBigInteger();
- var x2 = b.x.toBigInteger();
- var y2 = b.y.toBigInteger();
-
- var v2 = v.square();
- var v3 = v2.multiply(v);
- var x1v2 = x1.multiply(v2);
- var zu2 = u.square().multiply(this.z);
-
- // x3 = v * (z2 * (z1 * u^2 - 2 * x1 * v^2) - v^3)
- var x3 = zu2.subtract(x1v2.shiftLeft(1)).multiply(b.z).subtract(v3).multiply(v).mod(this.curve.q);
- // y3 = z2 * (3 * x1 * u * v^2 - y1 * v^3 - z1 * u^3) + u * v^3
- var y3 = x1v2.multiply(THREE).multiply(u).subtract(y1.multiply(v3)).subtract(zu2.multiply(u)).multiply(b.z).add(u.multiply(v3)).mod(this.curve.q);
- // z3 = v^3 * z1 * z2
- var z3 = v3.multiply(this.z).multiply(b.z).mod(this.curve.q);
-
- return new ECPointFp(this.curve, this.curve.fromBigInteger(x3), this.curve.fromBigInteger(y3), z3);
-}
-
-function pointFpTwice() {
- if(this.isInfinity()) return this;
- if(this.y.toBigInteger().signum() == 0) return this.curve.getInfinity();
-
- // TODO: optimized handling of constants
- var THREE = new BigInteger("3");
- var x1 = this.x.toBigInteger();
- var y1 = this.y.toBigInteger();
-
- var y1z1 = y1.multiply(this.z);
- var y1sqz1 = y1z1.multiply(y1).mod(this.curve.q);
- var a = this.curve.a.toBigInteger();
-
- // w = 3 * x1^2 + a * z1^2
- var w = x1.square().multiply(THREE);
- if(!BigInteger.ZERO.equals(a)) {
- w = w.add(this.z.square().multiply(a));
- }
- w = w.mod(this.curve.q);
- //this.curve.reduce(w);
- // x3 = 2 * y1 * z1 * (w^2 - 8 * x1 * y1^2 * z1)
- var x3 = w.square().subtract(x1.shiftLeft(3).multiply(y1sqz1)).shiftLeft(1).multiply(y1z1).mod(this.curve.q);
- // y3 = 4 * y1^2 * z1 * (3 * w * x1 - 2 * y1^2 * z1) - w^3
- var y3 = w.multiply(THREE).multiply(x1).subtract(y1sqz1.shiftLeft(1)).shiftLeft(2).multiply(y1sqz1).subtract(w.square().multiply(w)).mod(this.curve.q);
- // z3 = 8 * (y1 * z1)^3
- var z3 = y1z1.square().multiply(y1z1).shiftLeft(3).mod(this.curve.q);
-
- return new ECPointFp(this.curve, this.curve.fromBigInteger(x3), this.curve.fromBigInteger(y3), z3);
-}
-
-// Simple NAF (Non-Adjacent Form) multiplication algorithm
-// TODO: modularize the multiplication algorithm
-function pointFpMultiply(k) {
- if(this.isInfinity()) return this;
- if(k.signum() == 0) return this.curve.getInfinity();
-
- var e = k;
- var h = e.multiply(new BigInteger("3"));
-
- var neg = this.negate();
- var R = this;
-
- var i;
- for(i = h.bitLength() - 2; i > 0; --i) {
- R = R.twice();
-
- var hBit = h.testBit(i);
- var eBit = e.testBit(i);
-
- if (hBit != eBit) {
- R = R.add(hBit ? this : neg);
- }
- }
-
- return R;
-}
-
-// Compute this*j + x*k (simultaneous multiplication)
-function pointFpMultiplyTwo(j,x,k) {
- var i;
- if(j.bitLength() > k.bitLength())
- i = j.bitLength() - 1;
- else
- i = k.bitLength() - 1;
-
- var R = this.curve.getInfinity();
- var both = this.add(x);
- while(i >= 0) {
- R = R.twice();
- if(j.testBit(i)) {
- if(k.testBit(i)) {
- R = R.add(both);
- }
- else {
- R = R.add(this);
- }
- }
- else {
- if(k.testBit(i)) {
- R = R.add(x);
- }
- }
- --i;
- }
-
- return R;
-}
-
-ECPointFp.prototype.getX = pointFpGetX;
-ECPointFp.prototype.getY = pointFpGetY;
-ECPointFp.prototype.equals = pointFpEquals;
-ECPointFp.prototype.isInfinity = pointFpIsInfinity;
-ECPointFp.prototype.negate = pointFpNegate;
-ECPointFp.prototype.add = pointFpAdd;
-ECPointFp.prototype.twice = pointFpTwice;
-ECPointFp.prototype.multiply = pointFpMultiply;
-ECPointFp.prototype.multiplyTwo = pointFpMultiplyTwo;
-
-// ----------------
-// ECCurveFp
-
-// constructor
-function ECCurveFp(q,a,b) {
- this.q = q;
- this.a = this.fromBigInteger(a);
- this.b = this.fromBigInteger(b);
- this.infinity = new ECPointFp(this, null, null);
- this.reducer = new Barrett(this.q);
-}
-
-function curveFpGetQ() {
- return this.q;
-}
-
-function curveFpGetA() {
- return this.a;
-}
-
-function curveFpGetB() {
- return this.b;
-}
-
-function curveFpEquals(other) {
- if(other == this) return true;
- return(this.q.equals(other.q) && this.a.equals(other.a) && this.b.equals(other.b));
-}
-
-function curveFpGetInfinity() {
- return this.infinity;
-}
-
-function curveFpFromBigInteger(x) {
- return new ECFieldElementFp(this.q, x);
-}
-
-function curveReduce(x) {
- this.reducer.reduce(x);
-}
-
-// for now, work with hex strings because they're easier in JS
-function curveFpDecodePointHex(s) {
- switch(parseInt(s.substr(0,2), 16)) { // first byte
- case 0:
- return this.infinity;
- case 2:
- case 3:
- // point compression not supported yet
- return null;
- case 4:
- case 6:
- case 7:
- var len = (s.length - 2) / 2;
- var xHex = s.substr(2, len);
- var yHex = s.substr(len+2, len);
-
- return new ECPointFp(this,
- this.fromBigInteger(new BigInteger(xHex, 16)),
- this.fromBigInteger(new BigInteger(yHex, 16)));
-
- default: // unsupported
- return null;
- }
-}
-
-function curveFpEncodePointHex(p) {
- if (p.isInfinity()) return "00";
- var xHex = p.getX().toBigInteger().toString(16);
- var yHex = p.getY().toBigInteger().toString(16);
- var oLen = this.getQ().toString(16).length;
- if ((oLen % 2) != 0) oLen++;
- while (xHex.length < oLen) {
- xHex = "0" + xHex;
- }
- while (yHex.length < oLen) {
- yHex = "0" + yHex;
- }
- return "04" + xHex + yHex;
-}
-
-ECCurveFp.prototype.getQ = curveFpGetQ;
-ECCurveFp.prototype.getA = curveFpGetA;
-ECCurveFp.prototype.getB = curveFpGetB;
-ECCurveFp.prototype.equals = curveFpEquals;
-ECCurveFp.prototype.getInfinity = curveFpGetInfinity;
-ECCurveFp.prototype.fromBigInteger = curveFpFromBigInteger;
-ECCurveFp.prototype.reduce = curveReduce;
-//ECCurveFp.prototype.decodePointHex = curveFpDecodePointHex;
-ECCurveFp.prototype.encodePointHex = curveFpEncodePointHex;
-
-// from: https://github.com/kaielvin/jsbn-ec-point-compression
-ECCurveFp.prototype.decodePointHex = function(s)
-{
- var yIsEven;
- switch(parseInt(s.substr(0,2), 16)) { // first byte
- case 0:
- return this.infinity;
- case 2:
- yIsEven = false;
- case 3:
- if(yIsEven == undefined) yIsEven = true;
- var len = s.length - 2;
- var xHex = s.substr(2, len);
- var x = this.fromBigInteger(new BigInteger(xHex,16));
- var alpha = x.multiply(x.square().add(this.getA())).add(this.getB());
- var beta = alpha.sqrt();
-
- if (beta == null) throw "Invalid point compression";
-
- var betaValue = beta.toBigInteger();
- if (betaValue.testBit(0) != yIsEven)
- {
- // Use the other root
- beta = this.fromBigInteger(this.getQ().subtract(betaValue));
- }
- return new ECPointFp(this,x,beta);
- case 4:
- case 6:
- case 7:
- var len = (s.length - 2) / 2;
- var xHex = s.substr(2, len);
- var yHex = s.substr(len+2, len);
-
- return new ECPointFp(this,
- this.fromBigInteger(new BigInteger(xHex, 16)),
- this.fromBigInteger(new BigInteger(yHex, 16)));
-
- default: // unsupported
- return null;
- }
-}
-ECCurveFp.prototype.encodeCompressedPointHex = function(p)
-{
- if (p.isInfinity()) return "00";
- var xHex = p.getX().toBigInteger().toString(16);
- var oLen = this.getQ().toString(16).length;
- if ((oLen % 2) != 0) oLen++;
- while (xHex.length < oLen)
- xHex = "0" + xHex;
- var yPrefix;
- if(p.getY().toBigInteger().isEven()) yPrefix = "02";
- else yPrefix = "03";
-
- return yPrefix + xHex;
-}
-
-
-ECFieldElementFp.prototype.getR = function()
-{
- if(this.r != undefined) return this.r;
-
- this.r = null;
- var bitLength = this.q.bitLength();
- if (bitLength > 128)
- {
- var firstWord = this.q.shiftRight(bitLength - 64);
- if (firstWord.intValue() == -1)
- {
- this.r = BigInteger.ONE.shiftLeft(bitLength).subtract(this.q);
- }
- }
- return this.r;
-}
-ECFieldElementFp.prototype.modMult = function(x1,x2)
-{
- return this.modReduce(x1.multiply(x2));
-}
-ECFieldElementFp.prototype.modReduce = function(x)
-{
- if (this.getR() != null)
- {
- var qLen = q.bitLength();
- while (x.bitLength() > (qLen + 1))
- {
- var u = x.shiftRight(qLen);
- var v = x.subtract(u.shiftLeft(qLen));
- if (!this.getR().equals(BigInteger.ONE))
- {
- u = u.multiply(this.getR());
- }
- x = u.add(v);
- }
- while (x.compareTo(q) >= 0)
- {
- x = x.subtract(q);
- }
- }
- else
- {
- x = x.mod(q);
- }
- return x;
-}
-ECFieldElementFp.prototype.sqrt = function()
-{
- if (!this.q.testBit(0)) throw "unsupported";
-
- // p mod 4 == 3
- if (this.q.testBit(1))
- {
- var z = new ECFieldElementFp(this.q,this.x.modPow(this.q.shiftRight(2).add(BigInteger.ONE),this.q));
- return z.square().equals(this) ? z : null;
- }
-
- // p mod 4 == 1
- var qMinusOne = this.q.subtract(BigInteger.ONE);
-
- var legendreExponent = qMinusOne.shiftRight(1);
- if (!(this.x.modPow(legendreExponent, this.q).equals(BigInteger.ONE)))
- {
- return null;
- }
-
- var u = qMinusOne.shiftRight(2);
- var k = u.shiftLeft(1).add(BigInteger.ONE);
-
- var Q = this.x;
- var fourQ = modDouble(modDouble(Q));
-
- var U, V;
- do
- {
- var P;
- do
- {
- P = new BigInteger(this.q.bitLength(), new SecureRandom());
- }
- while (P.compareTo(this.q) >= 0
- || !(P.multiply(P).subtract(fourQ).modPow(legendreExponent, this.q).equals(qMinusOne)));
-
- var result = this.lucasSequence(P, Q, k);
- U = result[0];
- V = result[1];
-
- if (this.modMult(V, V).equals(fourQ))
- {
- // Integer division by 2, mod q
- if (V.testBit(0))
- {
- V = V.add(q);
- }
-
- V = V.shiftRight(1);
-
- return new ECFieldElementFp(q,V);
- }
- }
- while (U.equals(BigInteger.ONE) || U.equals(qMinusOne));
-
- return null;
-}
-ECFieldElementFp.prototype.lucasSequence = function(P,Q,k)
-{
- var n = k.bitLength();
- var s = k.getLowestSetBit();
-
- var Uh = BigInteger.ONE;
- var Vl = BigInteger.TWO;
- var Vh = P;
- var Ql = BigInteger.ONE;
- var Qh = BigInteger.ONE;
-
- for (var j = n - 1; j >= s + 1; --j)
- {
- Ql = this.modMult(Ql, Qh);
-
- if (k.testBit(j))
- {
- Qh = this.modMult(Ql, Q);
- Uh = this.modMult(Uh, Vh);
- Vl = this.modReduce(Vh.multiply(Vl).subtract(P.multiply(Ql)));
- Vh = this.modReduce(Vh.multiply(Vh).subtract(Qh.shiftLeft(1)));
- }
- else
- {
- Qh = Ql;
- Uh = this.modReduce(Uh.multiply(Vl).subtract(Ql));
- Vh = this.modReduce(Vh.multiply(Vl).subtract(P.multiply(Ql)));
- Vl = this.modReduce(Vl.multiply(Vl).subtract(Ql.shiftLeft(1)));
- }
- }
-
- Ql = this.modMult(Ql, Qh);
- Qh = this.modMult(Ql, Q);
- Uh = this.modReduce(Uh.multiply(Vl).subtract(Ql));
- Vl = this.modReduce(Vh.multiply(Vl).subtract(P.multiply(Ql)));
- Ql = this.modMult(Ql, Qh);
-
- for (var j = 1; j <= s; ++j)
- {
- Uh = this.modMult(Uh, Vl);
- Vl = this.modReduce(Vl.multiply(Vl).subtract(Ql.shiftLeft(1)));
- Ql = this.modMult(Ql, Ql);
- }
-
- return [ Uh, Vl ];
-}
-
-var exports = {
- ECCurveFp: ECCurveFp,
- ECPointFp: ECPointFp,
- ECFieldElementFp: ECFieldElementFp
-}
-
-module.exports = exports
diff --git a/deps/npm/node_modules/ecc-jsbn/lib/sec.js b/deps/npm/node_modules/ecc-jsbn/lib/sec.js
deleted file mode 100755
index 5eec8179ff6..00000000000
--- a/deps/npm/node_modules/ecc-jsbn/lib/sec.js
+++ /dev/null
@@ -1,170 +0,0 @@
-// Named EC curves
-
-// Requires ec.js, jsbn.js, and jsbn2.js
-var BigInteger = require('jsbn').BigInteger
-var ECCurveFp = require('./ec.js').ECCurveFp
-
-
-// ----------------
-// X9ECParameters
-
-// constructor
-function X9ECParameters(curve,g,n,h) {
- this.curve = curve;
- this.g = g;
- this.n = n;
- this.h = h;
-}
-
-function x9getCurve() {
- return this.curve;
-}
-
-function x9getG() {
- return this.g;
-}
-
-function x9getN() {
- return this.n;
-}
-
-function x9getH() {
- return this.h;
-}
-
-X9ECParameters.prototype.getCurve = x9getCurve;
-X9ECParameters.prototype.getG = x9getG;
-X9ECParameters.prototype.getN = x9getN;
-X9ECParameters.prototype.getH = x9getH;
-
-// ----------------
-// SECNamedCurves
-
-function fromHex(s) { return new BigInteger(s, 16); }
-
-function secp128r1() {
- // p = 2^128 - 2^97 - 1
- var p = fromHex("FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFF");
- var a = fromHex("FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFC");
- var b = fromHex("E87579C11079F43DD824993C2CEE5ED3");
- //byte[] S = Hex.decode("000E0D4D696E6768756151750CC03A4473D03679");
- var n = fromHex("FFFFFFFE0000000075A30D1B9038A115");
- var h = BigInteger.ONE;
- var curve = new ECCurveFp(p, a, b);
- var G = curve.decodePointHex("04"
- + "161FF7528B899B2D0C28607CA52C5B86"
- + "CF5AC8395BAFEB13C02DA292DDED7A83");
- return new X9ECParameters(curve, G, n, h);
-}
-
-function secp160k1() {
- // p = 2^160 - 2^32 - 2^14 - 2^12 - 2^9 - 2^8 - 2^7 - 2^3 - 2^2 - 1
- var p = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFAC73");
- var a = BigInteger.ZERO;
- var b = fromHex("7");
- //byte[] S = null;
- var n = fromHex("0100000000000000000001B8FA16DFAB9ACA16B6B3");
- var h = BigInteger.ONE;
- var curve = new ECCurveFp(p, a, b);
- var G = curve.decodePointHex("04"
- + "3B4C382CE37AA192A4019E763036F4F5DD4D7EBB"
- + "938CF935318FDCED6BC28286531733C3F03C4FEE");
- return new X9ECParameters(curve, G, n, h);
-}
-
-function secp160r1() {
- // p = 2^160 - 2^31 - 1
- var p = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF");
- var a = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFC");
- var b = fromHex("1C97BEFC54BD7A8B65ACF89F81D4D4ADC565FA45");
- //byte[] S = Hex.decode("1053CDE42C14D696E67687561517533BF3F83345");
- var n = fromHex("0100000000000000000001F4C8F927AED3CA752257");
- var h = BigInteger.ONE;
- var curve = new ECCurveFp(p, a, b);
- var G = curve.decodePointHex("04"
- + "4A96B5688EF573284664698968C38BB913CBFC82"
- + "23A628553168947D59DCC912042351377AC5FB32");
- return new X9ECParameters(curve, G, n, h);
-}
-
-function secp192k1() {
- // p = 2^192 - 2^32 - 2^12 - 2^8 - 2^7 - 2^6 - 2^3 - 1
- var p = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFEE37");
- var a = BigInteger.ZERO;
- var b = fromHex("3");
- //byte[] S = null;
- var n = fromHex("FFFFFFFFFFFFFFFFFFFFFFFE26F2FC170F69466A74DEFD8D");
- var h = BigInteger.ONE;
- var curve = new ECCurveFp(p, a, b);
- var G = curve.decodePointHex("04"
- + "DB4FF10EC057E9AE26B07D0280B7F4341DA5D1B1EAE06C7D"
- + "9B2F2F6D9C5628A7844163D015BE86344082AA88D95E2F9D");
- return new X9ECParameters(curve, G, n, h);
-}
-
-function secp192r1() {
- // p = 2^192 - 2^64 - 1
- var p = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF");
- var a = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFC");
- var b = fromHex("64210519E59C80E70FA7E9AB72243049FEB8DEECC146B9B1");
- //byte[] S = Hex.decode("3045AE6FC8422F64ED579528D38120EAE12196D5");
- var n = fromHex("FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22831");
- var h = BigInteger.ONE;
- var curve = new ECCurveFp(p, a, b);
- var G = curve.decodePointHex("04"
- + "188DA80EB03090F67CBF20EB43A18800F4FF0AFD82FF1012"
- + "07192B95FFC8DA78631011ED6B24CDD573F977A11E794811");
- return new X9ECParameters(curve, G, n, h);
-}
-
-function secp224r1() {
- // p = 2^224 - 2^96 + 1
- var p = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001");
- var a = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFE");
- var b = fromHex("B4050A850C04B3ABF54132565044B0B7D7BFD8BA270B39432355FFB4");
- //byte[] S = Hex.decode("BD71344799D5C7FCDC45B59FA3B9AB8F6A948BC5");
- var n = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFF16A2E0B8F03E13DD29455C5C2A3D");
- var h = BigInteger.ONE;
- var curve = new ECCurveFp(p, a, b);
- var G = curve.decodePointHex("04"
- + "B70E0CBD6BB4BF7F321390B94A03C1D356C21122343280D6115C1D21"
- + "BD376388B5F723FB4C22DFE6CD4375A05A07476444D5819985007E34");
- return new X9ECParameters(curve, G, n, h);
-}
-
-function secp256r1() {
- // p = 2^224 (2^32 - 1) + 2^192 + 2^96 - 1
- var p = fromHex("FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF");
- var a = fromHex("FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFC");
- var b = fromHex("5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B");
- //byte[] S = Hex.decode("C49D360886E704936A6678E1139D26B7819F7E90");
- var n = fromHex("FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551");
- var h = BigInteger.ONE;
- var curve = new ECCurveFp(p, a, b);
- var G = curve.decodePointHex("04"
- + "6B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296"
- + "4FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5");
- return new X9ECParameters(curve, G, n, h);
-}
-
-// TODO: make this into a proper hashtable
-function getSECCurveByName(name) {
- if(name == "secp128r1") return secp128r1();
- if(name == "secp160k1") return secp160k1();
- if(name == "secp160r1") return secp160r1();
- if(name == "secp192k1") return secp192k1();
- if(name == "secp192r1") return secp192r1();
- if(name == "secp224r1") return secp224r1();
- if(name == "secp256r1") return secp256r1();
- return null;
-}
-
-module.exports = {
- "secp128r1":secp128r1,
- "secp160k1":secp160k1,
- "secp160r1":secp160r1,
- "secp192k1":secp192k1,
- "secp192r1":secp192r1,
- "secp224r1":secp224r1,
- "secp256r1":secp256r1
-}
diff --git a/deps/npm/node_modules/ecc-jsbn/package.json b/deps/npm/node_modules/ecc-jsbn/package.json
deleted file mode 100755
index 3612fcf1d46..00000000000
--- a/deps/npm/node_modules/ecc-jsbn/package.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "name": "ecc-jsbn",
- "version": "0.1.2",
- "description": "ECC JS code based on JSBN",
- "main": "index.js",
- "repository": {
- "type": "git",
- "url": "https://github.com/quartzjer/ecc-jsbn.git"
- },
- "keywords": [
- "jsbn",
- "ecc",
- "browserify"
- ],
- "author": {
- "name": "Jeremie Miller",
- "email": "jeremie@jabber.org",
- "url": "http://jeremie.com/"
- },
- "maintainers": [
- {
- "name": "Jeremie Miller",
- "email": "jeremie@jabber.org",
- "url": "http://jeremie.com/"
- },
- {
- "name": "Ryan Bennett",
- "url": "https://github.com/rynomad"
- }
- ],
- "dependencies": {
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.1.0"
- },
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/quartzjer/ecc-jsbn/issues"
- },
- "homepage": "https://github.com/quartzjer/ecc-jsbn"
-}
diff --git a/deps/npm/node_modules/ecc-jsbn/test.js b/deps/npm/node_modules/ecc-jsbn/test.js
deleted file mode 100755
index bd52abfd9d9..00000000000
--- a/deps/npm/node_modules/ecc-jsbn/test.js
+++ /dev/null
@@ -1,14 +0,0 @@
-var ecc = require("./index.js");
-var key1 = new ecc.ECKey(ecc.ECCurves.secp160r1);
-var key2 = new ecc.ECKey(ecc.ECCurves.secp160r1);
-console.log(key1.deriveSharedSecret(key2));
-var key3 = new ecc.ECKey(ecc.ECCurves.secp160r1,key1.PrivateKey);
-var key4 = new ecc.ECKey(ecc.ECCurves.secp160r1,key2.PublicKey,true);
-console.log(key3.deriveSharedSecret(key4));
-
-var key1 = new ecc.ECKey(ecc.ECCurves.secp256r1);
-var key2 = new ecc.ECKey(ecc.ECCurves.secp256r1);
-console.log(key1.deriveSharedSecret(key2));
-var key3 = new ecc.ECKey(ecc.ECCurves.secp256r1,key1.PrivateKey);
-var key4 = new ecc.ECKey(ecc.ECCurves.secp256r1,key2.PublicKey,true);
-console.log(key3.deriveSharedSecret(key4));
diff --git a/deps/npm/node_modules/extend/LICENSE b/deps/npm/node_modules/extend/LICENSE
deleted file mode 100644
index e16d6a56ca6..00000000000
--- a/deps/npm/node_modules/extend/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Stefan Thomas
-
-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/deps/npm/node_modules/extend/component.json b/deps/npm/node_modules/extend/component.json
deleted file mode 100644
index 1500a2f3718..00000000000
--- a/deps/npm/node_modules/extend/component.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "name": "extend",
- "author": "Stefan Thomas <justmoon@members.fsf.org> (http://www.justmoon.net)",
- "version": "3.0.0",
- "description": "Port of jQuery.extend for node.js and the browser.",
- "scripts": [
- "index.js"
- ],
- "contributors": [
- {
- "name": "Jordan Harband",
- "url": "https://github.com/ljharb"
- }
- ],
- "keywords": [
- "extend",
- "clone",
- "merge"
- ],
- "repository" : {
- "type": "git",
- "url": "https://github.com/justmoon/node-extend.git"
- },
- "dependencies": {
- },
- "devDependencies": {
- "tape" : "~3.0.0",
- "covert": "~0.4.0",
- "jscs": "~1.6.2"
- }
-}
-
diff --git a/deps/npm/node_modules/extend/index.js b/deps/npm/node_modules/extend/index.js
deleted file mode 100644
index 2aa3faae68c..00000000000
--- a/deps/npm/node_modules/extend/index.js
+++ /dev/null
@@ -1,117 +0,0 @@
-'use strict';
-
-var hasOwn = Object.prototype.hasOwnProperty;
-var toStr = Object.prototype.toString;
-var defineProperty = Object.defineProperty;
-var gOPD = Object.getOwnPropertyDescriptor;
-
-var isArray = function isArray(arr) {
- if (typeof Array.isArray === 'function') {
- return Array.isArray(arr);
- }
-
- return toStr.call(arr) === '[object Array]';
-};
-
-var isPlainObject = function isPlainObject(obj) {
- if (!obj || toStr.call(obj) !== '[object Object]') {
- return false;
- }
-
- var hasOwnConstructor = hasOwn.call(obj, 'constructor');
- var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');
- // Not own constructor property must be Object
- if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {
- return false;
- }
-
- // Own properties are enumerated firstly, so to speed up,
- // if last one is own, then all properties are own.
- var key;
- for (key in obj) { /**/ }
-
- return typeof key === 'undefined' || hasOwn.call(obj, key);
-};
-
-// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target
-var setProperty = function setProperty(target, options) {
- if (defineProperty && options.name === '__proto__') {
- defineProperty(target, options.name, {
- enumerable: true,
- configurable: true,
- value: options.newValue,
- writable: true
- });
- } else {
- target[options.name] = options.newValue;
- }
-};
-
-// Return undefined instead of __proto__ if '__proto__' is not an own property
-var getProperty = function getProperty(obj, name) {
- if (name === '__proto__') {
- if (!hasOwn.call(obj, name)) {
- return void 0;
- } else if (gOPD) {
- // In early versions of node, obj['__proto__'] is buggy when obj has
- // __proto__ as an own property. Object.getOwnPropertyDescriptor() works.
- return gOPD(obj, name).value;
- }
- }
-
- return obj[name];
-};
-
-module.exports = function extend() {
- var options, name, src, copy, copyIsArray, clone;
- var target = arguments[0];
- var i = 1;
- var length = arguments.length;
- var deep = false;
-
- // Handle a deep copy situation
- if (typeof target === 'boolean') {
- deep = target;
- target = arguments[1] || {};
- // skip the boolean and the target
- i = 2;
- }
- if (target == null || (typeof target !== 'object' && typeof target !== 'function')) {
- target = {};
- }
-
- for (; i < length; ++i) {
- options = arguments[i];
- // Only deal with non-null/undefined values
- if (options != null) {
- // Extend the base object
- for (name in options) {
- src = getProperty(target, name);
- copy = getProperty(options, name);
-
- // Prevent never-ending loop
- if (target !== copy) {
- // Recurse if we're merging plain objects or arrays
- if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {
- if (copyIsArray) {
- copyIsArray = false;
- clone = src && isArray(src) ? src : [];
- } else {
- clone = src && isPlainObject(src) ? src : {};
- }
-
- // Never move original objects, clone them
- setProperty(target, { name: name, newValue: extend(deep, clone, copy) });
-
- // Don't bring in undefined values
- } else if (typeof copy !== 'undefined') {
- setProperty(target, { name: name, newValue: copy });
- }
- }
- }
- }
- }
-
- // Return the modified object
- return target;
-};
diff --git a/deps/npm/node_modules/extend/package.json b/deps/npm/node_modules/extend/package.json
deleted file mode 100644
index 85279f78054..00000000000
--- a/deps/npm/node_modules/extend/package.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "name": "extend",
- "author": "Stefan Thomas <justmoon@members.fsf.org> (http://www.justmoon.net)",
- "version": "3.0.2",
- "description": "Port of jQuery.extend for node.js and the browser",
- "main": "index",
- "scripts": {
- "pretest": "npm run lint",
- "test": "npm run tests-only",
- "posttest": "npm run coverage-quiet",
- "tests-only": "node test",
- "coverage": "covert test/index.js",
- "coverage-quiet": "covert test/index.js --quiet",
- "lint": "npm run jscs && npm run eslint",
- "jscs": "jscs *.js */*.js",
- "eslint": "eslint *.js */*.js"
- },
- "contributors": [
- {
- "name": "Jordan Harband",
- "url": "https://github.com/ljharb"
- }
- ],
- "keywords": [
- "extend",
- "clone",
- "merge"
- ],
- "repository": {
- "type": "git",
- "url": "https://github.com/justmoon/node-extend.git"
- },
- "dependencies": {},
- "devDependencies": {
- "@ljharb/eslint-config": "^12.2.1",
- "covert": "^1.1.0",
- "eslint": "^4.19.1",
- "jscs": "^3.0.7",
- "tape": "^4.9.1"
- },
- "license": "MIT"
-}
diff --git a/deps/npm/node_modules/extsprintf/.gitmodules b/deps/npm/node_modules/extsprintf/.gitmodules
deleted file mode 100644
index e69de29bb2d..00000000000
--- a/deps/npm/node_modules/extsprintf/.gitmodules
+++ /dev/null
diff --git a/deps/npm/node_modules/extsprintf/LICENSE b/deps/npm/node_modules/extsprintf/LICENSE
deleted file mode 100644
index cbc0bb3ba3b..00000000000
--- a/deps/npm/node_modules/extsprintf/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2012, Joyent, Inc. All rights reserved.
-
-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/deps/npm/node_modules/extsprintf/Makefile b/deps/npm/node_modules/extsprintf/Makefile
deleted file mode 100644
index db845189ad1..00000000000
--- a/deps/npm/node_modules/extsprintf/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# Copyright (c) 2012, Joyent, Inc. All rights reserved.
-#
-# Makefile: top-level Makefile
-#
-# This Makefile contains only repo-specific logic and uses included makefiles
-# to supply common targets (javascriptlint, jsstyle, restdown, etc.), which are
-# used by other repos as well.
-#
-
-#
-# Files
-#
-JSL = jsl
-JSSTYLE = jsstyle
-JS_FILES := $(shell find examples lib -name '*.js')
-JSL_FILES_NODE = $(JS_FILES)
-JSSTYLE_FILES = $(JS_FILES)
-JSL_CONF_NODE = jsl.node.conf
-
-# Default target is "check"
-check:
-
-include ./Makefile.targ
diff --git a/deps/npm/node_modules/extsprintf/Makefile.targ b/deps/npm/node_modules/extsprintf/Makefile.targ
deleted file mode 100644
index 2a64fe7e950..00000000000
--- a/deps/npm/node_modules/extsprintf/Makefile.targ
+++ /dev/null
@@ -1,285 +0,0 @@
-# -*- mode: makefile -*-
-#
-# Copyright (c) 2012, Joyent, Inc. All rights reserved.
-#
-# Makefile.targ: common targets.
-#
-# NOTE: This makefile comes from the "eng" repo. It's designed to be dropped
-# into other repos as-is without requiring any modifications. If you find
-# yourself changing this file, you should instead update the original copy in
-# eng.git and then update your repo to use the new version.
-#
-# This Makefile defines several useful targets and rules. You can use it by
-# including it from a Makefile that specifies some of the variables below.
-#
-# Targets defined in this Makefile:
-#
-# check Checks JavaScript files for lint and style
-# Checks bash scripts for syntax
-# Checks SMF manifests for validity against the SMF DTD
-#
-# clean Removes built files
-#
-# docs Builds restdown documentation in docs/
-#
-# prepush Depends on "check" and "test"
-#
-# test Does nothing (you should override this)
-#
-# xref Generates cscope (source cross-reference index)
-#
-# For details on what these targets are supposed to do, see the Joyent
-# Engineering Guide.
-#
-# To make use of these targets, you'll need to set some of these variables. Any
-# variables left unset will simply not be used.
-#
-# BASH_FILES Bash scripts to check for syntax
-# (paths relative to top-level Makefile)
-#
-# CLEAN_FILES Files to remove as part of the "clean" target. Note
-# that files generated by targets in this Makefile are
-# automatically included in CLEAN_FILES. These include
-# restdown-generated HTML and JSON files.
-#
-# DOC_FILES Restdown (documentation source) files. These are
-# assumed to be contained in "docs/", and must NOT
-# contain the "docs/" prefix.
-#
-# JSL_CONF_NODE Specify JavaScriptLint configuration files
-# JSL_CONF_WEB (paths relative to top-level Makefile)
-#
-# Node.js and Web configuration files are separate
-# because you'll usually want different global variable
-# configurations. If no file is specified, none is given
-# to jsl, which causes it to use a default configuration,
-# which probably isn't what you want.
-#
-# JSL_FILES_NODE JavaScript files to check with Node config file.
-# JSL_FILES_WEB JavaScript files to check with Web config file.
-#
-# You can also override these variables:
-#
-# BASH Path to bash (default: bash)
-#
-# CSCOPE_DIRS Directories to search for source files for the cscope
-# index. (default: ".")
-#
-# JSL Path to JavaScriptLint (default: "jsl")
-#
-# JSL_FLAGS_NODE Additional flags to pass through to JSL
-# JSL_FLAGS_WEB
-# JSL_FLAGS
-#
-# JSSTYLE Path to jsstyle (default: jsstyle)
-#
-# JSSTYLE_FLAGS Additional flags to pass through to jsstyle
-#
-
-#
-# Defaults for the various tools we use.
-#
-BASH ?= bash
-BASHSTYLE ?= tools/bashstyle
-CP ?= cp
-CSCOPE ?= cscope
-CSCOPE_DIRS ?= .
-JSL ?= jsl
-JSSTYLE ?= jsstyle
-MKDIR ?= mkdir -p
-MV ?= mv
-RESTDOWN_FLAGS ?=
-RMTREE ?= rm -rf
-JSL_FLAGS ?= --nologo --nosummary
-
-ifeq ($(shell uname -s),SunOS)
- TAR ?= gtar
-else
- TAR ?= tar
-endif
-
-
-#
-# Defaults for other fixed values.
-#
-BUILD = build
-DISTCLEAN_FILES += $(BUILD)
-DOC_BUILD = $(BUILD)/docs/public
-
-#
-# Configure JSL_FLAGS_{NODE,WEB} based on JSL_CONF_{NODE,WEB}.
-#
-ifneq ($(origin JSL_CONF_NODE), undefined)
- JSL_FLAGS_NODE += --conf=$(JSL_CONF_NODE)
-endif
-
-ifneq ($(origin JSL_CONF_WEB), undefined)
- JSL_FLAGS_WEB += --conf=$(JSL_CONF_WEB)
-endif
-
-#
-# Targets. For descriptions on what these are supposed to do, see the
-# Joyent Engineering Guide.
-#
-
-#
-# Instruct make to keep around temporary files. We have rules below that
-# automatically update git submodules as needed, but they employ a deps/*/.git
-# temporary file. Without this directive, make tries to remove these .git
-# directories after the build has completed.
-#
-.SECONDARY: $($(wildcard deps/*):%=%/.git)
-
-#
-# This rule enables other rules that use files from a git submodule to have
-# those files depend on deps/module/.git and have "make" automatically check
-# out the submodule as needed.
-#
-deps/%/.git:
- git submodule update --init deps/$*
-
-#
-# These recipes make heavy use of dynamically-created phony targets. The parent
-# Makefile defines a list of input files like BASH_FILES. We then say that each
-# of these files depends on a fake target called filename.bashchk, and then we
-# define a pattern rule for those targets that runs bash in check-syntax-only
-# mode. This mechanism has the nice properties that if you specify zero files,
-# the rule becomes a noop (unlike a single rule to check all bash files, which
-# would invoke bash with zero files), and you can check individual files from
-# the command line with "make filename.bashchk".
-#
-.PHONY: check-bash
-check-bash: $(BASH_FILES:%=%.bashchk) $(BASH_FILES:%=%.bashstyle)
-
-%.bashchk: %
- $(BASH) -n $^
-
-%.bashstyle: %
- $(BASHSTYLE) $^
-
-.PHONY: check-jsl check-jsl-node check-jsl-web
-check-jsl: check-jsl-node check-jsl-web
-
-check-jsl-node: $(JSL_FILES_NODE:%=%.jslnodechk)
-
-check-jsl-web: $(JSL_FILES_WEB:%=%.jslwebchk)
-
-%.jslnodechk: % $(JSL_EXEC)
- $(JSL) $(JSL_FLAGS) $(JSL_FLAGS_NODE) $<
-
-%.jslwebchk: % $(JSL_EXEC)
- $(JSL) $(JSL_FLAGS) $(JSL_FLAGS_WEB) $<
-
-.PHONY: check-jsstyle
-check-jsstyle: $(JSSTYLE_FILES:%=%.jsstylechk)
-
-%.jsstylechk: % $(JSSTYLE_EXEC)
- $(JSSTYLE) $(JSSTYLE_FLAGS) $<
-
-.PHONY: check
-check: check-jsl check-jsstyle check-bash
- @echo check ok
-
-.PHONY: clean
-clean::
- -$(RMTREE) $(CLEAN_FILES)
-
-.PHONY: distclean
-distclean:: clean
- -$(RMTREE) $(DISTCLEAN_FILES)
-
-CSCOPE_FILES = cscope.in.out cscope.out cscope.po.out
-CLEAN_FILES += $(CSCOPE_FILES)
-
-.PHONY: xref
-xref: cscope.files
- $(CSCOPE) -bqR
-
-.PHONY: cscope.files
-cscope.files:
- find $(CSCOPE_DIRS) -name '*.c' -o -name '*.h' -o -name '*.cc' \
- -o -name '*.js' -o -name '*.s' -o -name '*.cpp' > $@
-
-#
-# The "docs" target is complicated because we do several things here:
-#
-# (1) Use restdown to build HTML and JSON files from each of DOC_FILES.
-#
-# (2) Copy these files into $(DOC_BUILD) (build/docs/public), which
-# functions as a complete copy of the documentation that could be
-# mirrored or served over HTTP.
-#
-# (3) Then copy any directories and media from docs/media into
-# $(DOC_BUILD)/media. This allows projects to include their own media,
-# including files that will override same-named files provided by
-# restdown.
-#
-# Step (3) is the surprisingly complex part: in order to do this, we need to
-# identify the subdirectories in docs/media, recreate them in
-# $(DOC_BUILD)/media, then do the same with the files.
-#
-DOC_MEDIA_DIRS := $(shell find docs/media -type d 2>/dev/null | grep -v "^docs/media$$")
-DOC_MEDIA_DIRS := $(DOC_MEDIA_DIRS:docs/media/%=%)
-DOC_MEDIA_DIRS_BUILD := $(DOC_MEDIA_DIRS:%=$(DOC_BUILD)/media/%)
-
-DOC_MEDIA_FILES := $(shell find docs/media -type f 2>/dev/null)
-DOC_MEDIA_FILES := $(DOC_MEDIA_FILES:docs/media/%=%)
-DOC_MEDIA_FILES_BUILD := $(DOC_MEDIA_FILES:%=$(DOC_BUILD)/media/%)
-
-#
-# Like the other targets, "docs" just depends on the final files we want to
-# create in $(DOC_BUILD), leveraging other targets and recipes to define how
-# to get there.
-#
-.PHONY: docs
-docs: \
- $(DOC_FILES:%.restdown=$(DOC_BUILD)/%.html) \
- $(DOC_FILES:%.restdown=$(DOC_BUILD)/%.json) \
- $(DOC_MEDIA_FILES_BUILD)
-
-#
-# We keep the intermediate files so that the next build can see whether the
-# files in DOC_BUILD are up to date.
-#
-.PRECIOUS: \
- $(DOC_FILES:%.restdown=docs/%.html) \
- $(DOC_FILES:%.restdown=docs/%json)
-
-#
-# We do clean those intermediate files, as well as all of DOC_BUILD.
-#
-CLEAN_FILES += \
- $(DOC_BUILD) \
- $(DOC_FILES:%.restdown=docs/%.html) \
- $(DOC_FILES:%.restdown=docs/%.json)
-
-#
-# Before installing the files, we must make sure the directories exist. The |
-# syntax tells make that the dependency need only exist, not be up to date.
-# Otherwise, it might try to rebuild spuriously because the directory itself
-# appears out of date.
-#
-$(DOC_MEDIA_FILES_BUILD): | $(DOC_MEDIA_DIRS_BUILD)
-
-$(DOC_BUILD)/%: docs/% | $(DOC_BUILD)
- $(CP) $< $@
-
-docs/%.json docs/%.html: docs/%.restdown | $(DOC_BUILD) $(RESTDOWN_EXEC)
- $(RESTDOWN) $(RESTDOWN_FLAGS) -m $(DOC_BUILD) $<
-
-$(DOC_BUILD):
- $(MKDIR) $@
-
-$(DOC_MEDIA_DIRS_BUILD):
- $(MKDIR) $@
-
-#
-# The default "test" target does nothing. This should usually be overridden by
-# the parent Makefile. It's included here so we can define "prepush" without
-# requiring the repo to define "test".
-#
-.PHONY: test
-test:
-
-.PHONY: prepush
-prepush: check test
diff --git a/deps/npm/node_modules/extsprintf/jsl.node.conf b/deps/npm/node_modules/extsprintf/jsl.node.conf
deleted file mode 100644
index 03f787ffbde..00000000000
--- a/deps/npm/node_modules/extsprintf/jsl.node.conf
+++ /dev/null
@@ -1,137 +0,0 @@
-#
-# Configuration File for JavaScript Lint
-#
-# This configuration file can be used to lint a collection of scripts, or to enable
-# or disable warnings for scripts that are linted via the command line.
-#
-
-### Warnings
-# Enable or disable warnings based on requirements.
-# Use "+WarningName" to display or "-WarningName" to suppress.
-#
-+ambiguous_else_stmt # the else statement could be matched with one of multiple if statements (use curly braces to indicate intent
-+ambiguous_nested_stmt # block statements containing block statements should use curly braces to resolve ambiguity
-+ambiguous_newline # unexpected end of line; it is ambiguous whether these lines are part of the same statement
-+anon_no_return_value # anonymous function does not always return value
-+assign_to_function_call # assignment to a function call
--block_without_braces # block statement without curly braces
-+comma_separated_stmts # multiple statements separated by commas (use semicolons?)
-+comparison_type_conv # comparisons against null, 0, true, false, or an empty string allowing implicit type conversion (use === or !==)
-+default_not_at_end # the default case is not at the end of the switch statement
-+dup_option_explicit # duplicate "option explicit" control comment
-+duplicate_case_in_switch # duplicate case in switch statement
-+duplicate_formal # duplicate formal argument {name}
-+empty_statement # empty statement or extra semicolon
-+identifier_hides_another # identifer {name} hides an identifier in a parent scope
--inc_dec_within_stmt # increment (++) and decrement (--) operators used as part of greater statement
-+incorrect_version # Expected /*jsl:content-type*/ control comment. The script was parsed with the wrong version.
-+invalid_fallthru # unexpected "fallthru" control comment
-+invalid_pass # unexpected "pass" control comment
-+jsl_cc_not_understood # couldn't understand control comment using /*jsl:keyword*/ syntax
-+leading_decimal_point # leading decimal point may indicate a number or an object member
-+legacy_cc_not_understood # couldn't understand control comment using /*@keyword@*/ syntax
-+meaningless_block # meaningless block; curly braces have no impact
-+mismatch_ctrl_comments # mismatched control comment; "ignore" and "end" control comments must have a one-to-one correspondence
-+misplaced_regex # regular expressions should be preceded by a left parenthesis, assignment, colon, or comma
-+missing_break # missing break statement
-+missing_break_for_last_case # missing break statement for last case in switch
-+missing_default_case # missing default case in switch statement
-+missing_option_explicit # the "option explicit" control comment is missing
-+missing_semicolon # missing semicolon
-+missing_semicolon_for_lambda # missing semicolon for lambda assignment
-+multiple_plus_minus # unknown order of operations for successive plus (e.g. x+++y) or minus (e.g. x---y) signs
-+nested_comment # nested comment
-+no_return_value # function {name} does not always return a value
-+octal_number # leading zeros make an octal number
-+parseint_missing_radix # parseInt missing radix parameter
-+partial_option_explicit # the "option explicit" control comment, if used, must be in the first script tag
-+redeclared_var # redeclaration of {name}
-+trailing_comma_in_array # extra comma is not recommended in array initializers
-+trailing_decimal_point # trailing decimal point may indicate a number or an object member
-+undeclared_identifier # undeclared identifier: {name}
-+unreachable_code # unreachable code
--unreferenced_argument # argument declared but never referenced: {name}
--unreferenced_function # function is declared but never referenced: {name}
-+unreferenced_variable # variable is declared but never referenced: {name}
-+unsupported_version # JavaScript {version} is not supported
-+use_of_label # use of label
-+useless_assign # useless assignment
-+useless_comparison # useless comparison; comparing identical expressions
--useless_quotes # the quotation marks are unnecessary
-+useless_void # use of the void type may be unnecessary (void is always undefined)
-+var_hides_arg # variable {name} hides argument
-+want_assign_or_call # expected an assignment or function call
-+with_statement # with statement hides undeclared variables; use temporary variable instead
-
-
-### Output format
-# Customize the format of the error message.
-# __FILE__ indicates current file path
-# __FILENAME__ indicates current file name
-# __LINE__ indicates current line
-# __COL__ indicates current column
-# __ERROR__ indicates error message (__ERROR_PREFIX__: __ERROR_MSG__)
-# __ERROR_NAME__ indicates error name (used in configuration file)
-# __ERROR_PREFIX__ indicates error prefix
-# __ERROR_MSG__ indicates error message
-#
-# For machine-friendly output, the output format can be prefixed with
-# "encode:". If specified, all items will be encoded with C-slashes.
-#
-# Visual Studio syntax (default):
-+output-format __FILE__(__LINE__): __ERROR__
-# Alternative syntax:
-#+output-format __FILE__:__LINE__: __ERROR__
-
-
-### Context
-# Show the in-line position of the error.
-# Use "+context" to display or "-context" to suppress.
-#
-+context
-
-
-### Control Comments
-# Both JavaScript Lint and the JScript interpreter confuse each other with the syntax for
-# the /*@keyword@*/ control comments and JScript conditional comments. (The latter is
-# enabled in JScript with @cc_on@). The /*jsl:keyword*/ syntax is preferred for this reason,
-# although legacy control comments are enabled by default for backward compatibility.
-#
--legacy_control_comments
-
-
-### Defining identifiers
-# By default, "option explicit" is enabled on a per-file basis.
-# To enable this for all files, use "+always_use_option_explicit"
--always_use_option_explicit
-
-# Define certain identifiers of which the lint is not aware.
-# (Use this in conjunction with the "undeclared identifier" warning.)
-#
-# Common uses for webpages might be:
-+define __dirname
-+define clearInterval
-+define clearTimeout
-+define console
-+define exports
-+define global
-+define process
-+define require
-+define setInterval
-+define setTimeout
-+define Buffer
-+define JSON
-+define Math
-
-### JavaScript Version
-# To change the default JavaScript version:
-#+default-type text/javascript;version=1.5
-#+default-type text/javascript;e4x=1
-
-### Files
-# Specify which files to lint
-# Use "+recurse" to enable recursion (disabled by default).
-# To add a set of files, use "+process FileName", "+process Folder\Path\*.js",
-# or "+process Folder\Path\*.htm".
-#
-
diff --git a/deps/npm/node_modules/extsprintf/lib/extsprintf.js b/deps/npm/node_modules/extsprintf/lib/extsprintf.js
deleted file mode 100644
index ed883d32b9a..00000000000
--- a/deps/npm/node_modules/extsprintf/lib/extsprintf.js
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * extsprintf.js: extended POSIX-style sprintf
- */
-
-var mod_assert = require('assert');
-var mod_util = require('util');
-
-/*
- * Public interface
- */
-exports.sprintf = jsSprintf;
-exports.printf = jsPrintf;
-exports.fprintf = jsFprintf;
-
-/*
- * Stripped down version of s[n]printf(3c). We make a best effort to throw an
- * exception when given a format string we don't understand, rather than
- * ignoring it, so that we won't break existing programs if/when we go implement
- * the rest of this.
- *
- * This implementation currently supports specifying
- * - field alignment ('-' flag),
- * - zero-pad ('0' flag)
- * - always show numeric sign ('+' flag),
- * - field width
- * - conversions for strings, decimal integers, and floats (numbers).
- * - argument size specifiers. These are all accepted but ignored, since
- * Javascript has no notion of the physical size of an argument.
- *
- * Everything else is currently unsupported, most notably precision, unsigned
- * numbers, non-decimal numbers, and characters.
- */
-function jsSprintf(fmt)
-{
- var regex = [
- '([^%]*)', /* normal text */
- '%', /* start of format */
- '([\'\\-+ #0]*?)', /* flags (optional) */
- '([1-9]\\d*)?', /* width (optional) */
- '(\\.([1-9]\\d*))?', /* precision (optional) */
- '[lhjztL]*?', /* length mods (ignored) */
- '([diouxXfFeEgGaAcCsSp%jr])' /* conversion */
- ].join('');
-
- var re = new RegExp(regex);
- var args = Array.prototype.slice.call(arguments, 1);
- var flags, width, precision, conversion;
- var left, pad, sign, arg, match;
- var ret = '';
- var argn = 1;
-
- mod_assert.equal('string', typeof (fmt));
-
- while ((match = re.exec(fmt)) !== null) {
- ret += match[1];
- fmt = fmt.substring(match[0].length);
-
- flags = match[2] || '';
- width = match[3] || 0;
- precision = match[4] || '';
- conversion = match[6];
- left = false;
- sign = false;
- pad = ' ';
-
- if (conversion == '%') {
- ret += '%';
- continue;
- }
-
- if (args.length === 0)
- throw (new Error('too few args to sprintf'));
-
- arg = args.shift();
- argn++;
-
- if (flags.match(/[\' #]/))
- throw (new Error(
- 'unsupported flags: ' + flags));
-
- if (precision.length > 0)
- throw (new Error(
- 'non-zero precision not supported'));
-
- if (flags.match(/-/))
- left = true;
-
- if (flags.match(/0/))
- pad = '0';
-
- if (flags.match(/\+/))
- sign = true;
-
- switch (conversion) {
- case 's':
- if (arg === undefined || arg === null)
- throw (new Error('argument ' + argn +
- ': attempted to print undefined or null ' +
- 'as a string'));
- ret += doPad(pad, width, left, arg.toString());
- break;
-
- case 'd':
- arg = Math.floor(arg);
- /*jsl:fallthru*/
- case 'f':
- sign = sign && arg > 0 ? '+' : '';
- ret += sign + doPad(pad, width, left,
- arg.toString());
- break;
-
- case 'x':
- ret += doPad(pad, width, left, arg.toString(16));
- break;
-
- case 'j': /* non-standard */
- if (width === 0)
- width = 10;
- ret += mod_util.inspect(arg, false, width);
- break;
-
- case 'r': /* non-standard */
- ret += dumpException(arg);
- break;
-
- default:
- throw (new Error('unsupported conversion: ' +
- conversion));
- }
- }
-
- ret += fmt;
- return (ret);
-}
-
-function jsPrintf() {
- var args = Array.prototype.slice.call(arguments);
- args.unshift(process.stdout);
- jsFprintf.apply(null, args);
-}
-
-function jsFprintf(stream) {
- var args = Array.prototype.slice.call(arguments, 1);
- return (stream.write(jsSprintf.apply(this, args)));
-}
-
-function doPad(chr, width, left, str)
-{
- var ret = str;
-
- while (ret.length < width) {
- if (left)
- ret += chr;
- else
- ret = chr + ret;
- }
-
- return (ret);
-}
-
-/*
- * This function dumps long stack traces for exceptions having a cause() method.
- * See node-verror for an example.
- */
-function dumpException(ex)
-{
- var ret;
-
- if (!(ex instanceof Error))
- throw (new Error(jsSprintf('invalid type for %%r: %j', ex)));
-
- /* Note that V8 prepends "ex.stack" with ex.toString(). */
- ret = 'EXCEPTION: ' + ex.constructor.name + ': ' + ex.stack;
-
- if (ex.cause && typeof (ex.cause) === 'function') {
- var cex = ex.cause();
- if (cex) {
- ret += '\nCaused by: ' + dumpException(cex);
- }
- }
-
- return (ret);
-}
diff --git a/deps/npm/node_modules/extsprintf/package.json b/deps/npm/node_modules/extsprintf/package.json
deleted file mode 100644
index b788895cd3f..00000000000
--- a/deps/npm/node_modules/extsprintf/package.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "name": "extsprintf",
- "version": "1.3.0",
- "description": "extended POSIX-style sprintf",
- "main": "./lib/extsprintf.js",
- "repository": {
- "type": "git",
- "url": "git://github.com/davepacheco/node-extsprintf.git"
- },
- "engines": [
- "node >=0.6.0"
- ],
- "license": "MIT"
-}
diff --git a/deps/npm/node_modules/fast-deep-equal/LICENSE b/deps/npm/node_modules/fast-deep-equal/LICENSE
deleted file mode 100644
index 7f1543566f6..00000000000
--- a/deps/npm/node_modules/fast-deep-equal/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2017 Evgeny Poberezkin
-
-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/deps/npm/node_modules/fast-deep-equal/es6/index.d.ts b/deps/npm/node_modules/fast-deep-equal/es6/index.d.ts
deleted file mode 100644
index c7eb9c79694..00000000000
--- a/deps/npm/node_modules/fast-deep-equal/es6/index.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const equal: (a: any, b: any) => boolean;
-export = equal;
diff --git a/deps/npm/node_modules/fast-deep-equal/es6/index.js b/deps/npm/node_modules/fast-deep-equal/es6/index.js
deleted file mode 100644
index d980be2575b..00000000000
--- a/deps/npm/node_modules/fast-deep-equal/es6/index.js
+++ /dev/null
@@ -1,72 +0,0 @@
-'use strict';
-
-// do not edit .js files directly - edit src/index.jst
-
-
- var envHasBigInt64Array = typeof BigInt64Array !== 'undefined';
-
-
-module.exports = function equal(a, b) {
- if (a === b) return true;
-
- if (a && b && typeof a == 'object' && typeof b == 'object') {
- if (a.constructor !== b.constructor) return false;
-
- var length, i, keys;
- if (Array.isArray(a)) {
- length = a.length;
- if (length != b.length) return false;
- for (i = length; i-- !== 0;)
- if (!equal(a[i], b[i])) return false;
- return true;
- }
-
-
- if ((a instanceof Map) && (b instanceof Map)) {
- if (a.size !== b.size) return false;
- for (i of a.entries())
- if (!b.has(i[0])) return false;
- for (i of a.entries())
- if (!equal(i[1], b.get(i[0]))) return false;
- return true;
- }
-
- if ((a instanceof Set) && (b instanceof Set)) {
- if (a.size !== b.size) return false;
- for (i of a.entries())
- if (!b.has(i[0])) return false;
- return true;
- }
-
- if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {
- length = a.length;
- if (length != b.length) return false;
- for (i = length; i-- !== 0;)
- if (a[i] !== b[i]) return false;
- return true;
- }
-
-
- if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;
- if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();
- if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();
-
- keys = Object.keys(a);
- length = keys.length;
- if (length !== Object.keys(b).length) return false;
-
- for (i = length; i-- !== 0;)
- if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;
-
- for (i = length; i-- !== 0;) {
- var key = keys[i];
-
- if (!equal(a[key], b[key])) return false;
- }
-
- return true;
- }
-
- // true if both NaN, false otherwise
- return a!==a && b!==b;
-};
diff --git a/deps/npm/node_modules/fast-deep-equal/es6/react.d.ts b/deps/npm/node_modules/fast-deep-equal/es6/react.d.ts
deleted file mode 100644
index c7eb9c79694..00000000000
--- a/deps/npm/node_modules/fast-deep-equal/es6/react.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const equal: (a: any, b: any) => boolean;
-export = equal;
diff --git a/deps/npm/node_modules/fast-deep-equal/es6/react.js b/deps/npm/node_modules/fast-deep-equal/es6/react.js
deleted file mode 100644
index 98e2f9b71aa..00000000000
--- a/deps/npm/node_modules/fast-deep-equal/es6/react.js
+++ /dev/null
@@ -1,79 +0,0 @@
-'use strict';
-
-// do not edit .js files directly - edit src/index.jst
-
-
- var envHasBigInt64Array = typeof BigInt64Array !== 'undefined';
-
-
-module.exports = function equal(a, b) {
- if (a === b) return true;
-
- if (a && b && typeof a == 'object' && typeof b == 'object') {
- if (a.constructor !== b.constructor) return false;
-
- var length, i, keys;
- if (Array.isArray(a)) {
- length = a.length;
- if (length != b.length) return false;
- for (i = length; i-- !== 0;)
- if (!equal(a[i], b[i])) return false;
- return true;
- }
-
-
- if ((a instanceof Map) && (b instanceof Map)) {
- if (a.size !== b.size) return false;
- for (i of a.entries())
- if (!b.has(i[0])) return false;
- for (i of a.entries())
- if (!equal(i[1], b.get(i[0]))) return false;
- return true;
- }
-
- if ((a instanceof Set) && (b instanceof Set)) {
- if (a.size !== b.size) return false;
- for (i of a.entries())
- if (!b.has(i[0])) return false;
- return true;
- }
-
- if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {
- length = a.length;
- if (length != b.length) return false;
- for (i = length; i-- !== 0;)
- if (a[i] !== b[i]) return false;
- return true;
- }
-
-
- if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;
- if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();
- if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();
-
- keys = Object.keys(a);
- length = keys.length;
- if (length !== Object.keys(b).length) return false;
-
- for (i = length; i-- !== 0;)
- if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;
-
- for (i = length; i-- !== 0;) {
- var key = keys[i];
-
- if (key === '_owner' && a.$$typeof) {
- // React-specific: avoid traversing React elements' _owner.
- // _owner contains circular references
- // and is not needed when comparing the actual elements (and not their owners)
- continue;
- }
-
- if (!equal(a[key], b[key])) return false;
- }
-
- return true;
- }
-
- // true if both NaN, false otherwise
- return a!==a && b!==b;
-};
diff --git a/deps/npm/node_modules/fast-deep-equal/index.d.ts b/deps/npm/node_modules/fast-deep-equal/index.d.ts
deleted file mode 100644
index 3c042caa7d5..00000000000
--- a/deps/npm/node_modules/fast-deep-equal/index.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare module 'fast-deep-equal' {
- const equal: (a: any, b: any) => boolean;
- export = equal;
-}
diff --git a/deps/npm/node_modules/fast-deep-equal/index.js b/deps/npm/node_modules/fast-deep-equal/index.js
deleted file mode 100644
index 30dd1ba78cb..00000000000
--- a/deps/npm/node_modules/fast-deep-equal/index.js
+++ /dev/null
@@ -1,46 +0,0 @@
-'use strict';
-
-// do not edit .js files directly - edit src/index.jst
-
-
-
-module.exports = function equal(a, b) {
- if (a === b) return true;
-
- if (a && b && typeof a == 'object' && typeof b == 'object') {
- if (a.constructor !== b.constructor) return false;
-
- var length, i, keys;
- if (Array.isArray(a)) {
- length = a.length;
- if (length != b.length) return false;
- for (i = length; i-- !== 0;)
- if (!equal(a[i], b[i])) return false;
- return true;
- }
-
-
-
- if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;
- if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();
- if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();
-
- keys = Object.keys(a);
- length = keys.length;
- if (length !== Object.keys(b).length) return false;
-
- for (i = length; i-- !== 0;)
- if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;
-
- for (i = length; i-- !== 0;) {
- var key = keys[i];
-
- if (!equal(a[key], b[key])) return false;
- }
-
- return true;
- }
-
- // true if both NaN, false otherwise
- return a!==a && b!==b;
-};
diff --git a/deps/npm/node_modules/fast-deep-equal/package.json b/deps/npm/node_modules/fast-deep-equal/package.json
deleted file mode 100644
index 3cfe66c68e8..00000000000
--- a/deps/npm/node_modules/fast-deep-equal/package.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- "name": "fast-deep-equal",
- "version": "3.1.3",
- "description": "Fast deep equal",
- "main": "index.js",
- "scripts": {
- "eslint": "eslint *.js benchmark/*.js spec/*.js",
- "build": "node build",
- "benchmark": "npm i && npm run build && cd ./benchmark && npm i && node ./",
- "test-spec": "mocha spec/*.spec.js -R spec",
- "test-cov": "nyc npm run test-spec",
- "test-ts": "tsc --target ES5 --noImplicitAny index.d.ts",
- "test": "npm run build && npm run eslint && npm run test-ts && npm run test-cov",
- "prepublish": "npm run build"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/epoberezkin/fast-deep-equal.git"
- },
- "keywords": [
- "fast",
- "equal",
- "deep-equal"
- ],
- "author": "Evgeny Poberezkin",
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/epoberezkin/fast-deep-equal/issues"
- },
- "homepage": "https://github.com/epoberezkin/fast-deep-equal#readme",
- "devDependencies": {
- "coveralls": "^3.1.0",
- "dot": "^1.1.2",
- "eslint": "^7.2.0",
- "mocha": "^7.2.0",
- "nyc": "^15.1.0",
- "pre-commit": "^1.2.2",
- "react": "^16.12.0",
- "react-test-renderer": "^16.12.0",
- "sinon": "^9.0.2",
- "typescript": "^3.9.5"
- },
- "nyc": {
- "exclude": [
- "**/spec/**",
- "node_modules"
- ],
- "reporter": [
- "lcov",
- "text-summary"
- ]
- },
- "files": [
- "index.js",
- "index.d.ts",
- "react.js",
- "react.d.ts",
- "es6/"
- ],
- "types": "index.d.ts"
-}
diff --git a/deps/npm/node_modules/fast-deep-equal/react.d.ts b/deps/npm/node_modules/fast-deep-equal/react.d.ts
deleted file mode 100644
index c7eb9c79694..00000000000
--- a/deps/npm/node_modules/fast-deep-equal/react.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const equal: (a: any, b: any) => boolean;
-export = equal;
diff --git a/deps/npm/node_modules/fast-deep-equal/react.js b/deps/npm/node_modules/fast-deep-equal/react.js
deleted file mode 100644
index 3489b9833f3..00000000000
--- a/deps/npm/node_modules/fast-deep-equal/react.js
+++ /dev/null
@@ -1,53 +0,0 @@
-'use strict';
-
-// do not edit .js files directly - edit src/index.jst
-
-
-
-module.exports = function equal(a, b) {
- if (a === b) return true;
-
- if (a && b && typeof a == 'object' && typeof b == 'object') {
- if (a.constructor !== b.constructor) return false;
-
- var length, i, keys;
- if (Array.isArray(a)) {
- length = a.length;
- if (length != b.length) return false;
- for (i = length; i-- !== 0;)
- if (!equal(a[i], b[i])) return false;
- return true;
- }
-
-
-
- if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;
- if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();
- if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();
-
- keys = Object.keys(a);
- length = keys.length;
- if (length !== Object.keys(b).length) return false;
-
- for (i = length; i-- !== 0;)
- if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;
-
- for (i = length; i-- !== 0;) {
- var key = keys[i];
-
- if (key === '_owner' && a.$$typeof) {
- // React-specific: avoid traversing React elements' _owner.
- // _owner contains circular references
- // and is not needed when comparing the actual elements (and not their owners)
- continue;
- }
-
- if (!equal(a[key], b[key])) return false;
- }
-
- return true;
- }
-
- // true if both NaN, false otherwise
- return a!==a && b!==b;
-};
diff --git a/deps/npm/node_modules/fast-json-stable-stringify/LICENSE b/deps/npm/node_modules/fast-json-stable-stringify/LICENSE
deleted file mode 100644
index c932223b1e2..00000000000
--- a/deps/npm/node_modules/fast-json-stable-stringify/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-This software is released under the MIT license:
-
-Copyright (c) 2017 Evgeny Poberezkin
-Copyright (c) 2013 James Halliday
-
-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/deps/npm/node_modules/fast-json-stable-stringify/benchmark/index.js b/deps/npm/node_modules/fast-json-stable-stringify/benchmark/index.js
deleted file mode 100644
index e725f9fc5f1..00000000000
--- a/deps/npm/node_modules/fast-json-stable-stringify/benchmark/index.js
+++ /dev/null
@@ -1,31 +0,0 @@
-'use strict';
-
-const Benchmark = require('benchmark');
-const suite = new Benchmark.Suite;
-const testData = require('./test.json');
-
-
-const stringifyPackages = {
- // 'JSON.stringify': JSON.stringify,
- 'fast-json-stable-stringify': require('../index'),
- 'json-stable-stringify': true,
- 'fast-stable-stringify': true,
- 'faster-stable-stringify': true
-};
-
-
-for (const name in stringifyPackages) {
- let func = stringifyPackages[name];
- if (func === true) func = require(name);
-
- suite.add(name, function() {
- func(testData);
- });
-}
-
-suite
- .on('cycle', (event) => console.log(String(event.target)))
- .on('complete', function () {
- console.log('The fastest is ' + this.filter('fastest').map('name'));
- })
- .run({async: true});
diff --git a/deps/npm/node_modules/fast-json-stable-stringify/benchmark/test.json b/deps/npm/node_modules/fast-json-stable-stringify/benchmark/test.json
deleted file mode 100644
index c9118c11f59..00000000000
--- a/deps/npm/node_modules/fast-json-stable-stringify/benchmark/test.json
+++ /dev/null
@@ -1,137 +0,0 @@
-[
- {
- "_id": "59ef4a83ee8364808d761beb",
- "index": 0,
- "guid": "e50ffae9-7128-4148-9ee5-40c3fc523c5d",
- "isActive": false,
- "balance": "$2,341.81",
- "picture": "http://placehold.it/32x32",
- "age": 28,
- "eyeColor": "brown",
- "name": "Carey Savage",
- "gender": "female",
- "company": "VERAQ",
- "email": "careysavage@veraq.com",
- "phone": "+1 (897) 574-3014",
- "address": "458 Willow Street, Henrietta, California, 7234",
- "about": "Nisi reprehenderit nulla ad officia pariatur non dolore laboris irure cupidatat laborum. Minim eu ex Lorem adipisicing exercitation irure minim sunt est enim mollit incididunt voluptate nulla. Ut mollit anim reprehenderit et aliqua ex esse aliquip. Aute sit duis deserunt do incididunt consequat minim qui dolor commodo deserunt et voluptate.\r\n",
- "registered": "2014-05-21T01:56:51 -01:00",
- "latitude": 63.89502,
- "longitude": 62.369807,
- "tags": [
- "nostrud",
- "nisi",
- "consectetur",
- "ullamco",
- "cupidatat",
- "culpa",
- "commodo"
- ],
- "friends": [
- {
- "id": 0,
- "name": "Henry Walls"
- },
- {
- "id": 1,
- "name": "Janice Baker"
- },
- {
- "id": 2,
- "name": "Russell Bush"
- }
- ],
- "greeting": "Hello, Carey Savage! You have 4 unread messages.",
- "favoriteFruit": "banana"
- },
- {
- "_id": "59ef4a83ff5774a691454e89",
- "index": 1,
- "guid": "2bee9efc-4095-4c2e-87ef-d08c8054c89d",
- "isActive": true,
- "balance": "$1,618.15",
- "picture": "http://placehold.it/32x32",
- "age": 35,
- "eyeColor": "blue",
- "name": "Elinor Pearson",
- "gender": "female",
- "company": "FLEXIGEN",
- "email": "elinorpearson@flexigen.com",
- "phone": "+1 (923) 548-3751",
- "address": "600 Bayview Avenue, Draper, Montana, 3088",
- "about": "Mollit commodo ea sit Lorem velit. Irure anim esse Lorem sint quis officia ut. Aliqua nisi dolore in aute deserunt mollit ex ea in mollit.\r\n",
- "registered": "2017-04-22T07:58:41 -01:00",
- "latitude": -87.824919,
- "longitude": 69.538927,
- "tags": [
- "fugiat",
- "labore",
- "proident",
- "quis",
- "eiusmod",
- "qui",
- "est"
- ],
- "friends": [
- {
- "id": 0,
- "name": "Massey Wagner"
- },
- {
- "id": 1,
- "name": "Marcella Ferrell"
- },
- {
- "id": 2,
- "name": "Evans Mckee"
- }
- ],
- "greeting": "Hello, Elinor Pearson! You have 3 unread messages.",
- "favoriteFruit": "strawberry"
- },
- {
- "_id": "59ef4a839ec8a4be4430b36b",
- "index": 2,
- "guid": "ddd6e8c0-95bd-416d-8b46-a768d6363809",
- "isActive": false,
- "balance": "$2,046.95",
- "picture": "http://placehold.it/32x32",
- "age": 40,
- "eyeColor": "green",
- "name": "Irwin Davidson",
- "gender": "male",
- "company": "DANJA",
- "email": "irwindavidson@danja.com",
- "phone": "+1 (883) 537-2041",
- "address": "439 Cook Street, Chapin, Kentucky, 7398",
- "about": "Irure velit non commodo aliqua exercitation ut nostrud minim magna. Dolor ad ad ut irure eu. Non pariatur dolor eiusmod ipsum do et exercitation cillum. Et amet laboris minim eiusmod ullamco magna ea reprehenderit proident sunt.\r\n",
- "registered": "2016-09-01T07:49:08 -01:00",
- "latitude": -49.803812,
- "longitude": 104.93279,
- "tags": [
- "consequat",
- "enim",
- "quis",
- "magna",
- "est",
- "culpa",
- "tempor"
- ],
- "friends": [
- {
- "id": 0,
- "name": "Ruth Hansen"
- },
- {
- "id": 1,
- "name": "Kathrine Austin"
- },
- {
- "id": 2,
- "name": "Rivera Munoz"
- }
- ],
- "greeting": "Hello, Irwin Davidson! You have 2 unread messages.",
- "favoriteFruit": "banana"
- }
-]
diff --git a/deps/npm/node_modules/fast-json-stable-stringify/example/key_cmp.js b/deps/npm/node_modules/fast-json-stable-stringify/example/key_cmp.js
deleted file mode 100644
index d5f66752d82..00000000000
--- a/deps/npm/node_modules/fast-json-stable-stringify/example/key_cmp.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var stringify = require('../');
-
-var obj = { c: 8, b: [{z:6,y:5,x:4},7], a: 3 };
-var s = stringify(obj, function (a, b) {
- return a.key < b.key ? 1 : -1;
-});
-console.log(s);
diff --git a/deps/npm/node_modules/fast-json-stable-stringify/example/nested.js b/deps/npm/node_modules/fast-json-stable-stringify/example/nested.js
deleted file mode 100644
index 9a672fc65fb..00000000000
--- a/deps/npm/node_modules/fast-json-stable-stringify/example/nested.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var stringify = require('../');
-var obj = { c: 8, b: [{z:6,y:5,x:4},7], a: 3 };
-console.log(stringify(obj));
diff --git a/deps/npm/node_modules/fast-json-stable-stringify/example/str.js b/deps/npm/node_modules/fast-json-stable-stringify/example/str.js
deleted file mode 100644
index 9b4b3cd2895..00000000000
--- a/deps/npm/node_modules/fast-json-stable-stringify/example/str.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var stringify = require('../');
-var obj = { c: 6, b: [4,5], a: 3 };
-console.log(stringify(obj));
diff --git a/deps/npm/node_modules/fast-json-stable-stringify/example/value_cmp.js b/deps/npm/node_modules/fast-json-stable-stringify/example/value_cmp.js
deleted file mode 100644
index 09f1c5f79b2..00000000000
--- a/deps/npm/node_modules/fast-json-stable-stringify/example/value_cmp.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var stringify = require('../');
-
-var obj = { d: 6, c: 5, b: [{z:3,y:2,x:1},9], a: 10 };
-var s = stringify(obj, function (a, b) {
- return a.value < b.value ? 1 : -1;
-});
-console.log(s);
diff --git a/deps/npm/node_modules/fast-json-stable-stringify/index.d.ts b/deps/npm/node_modules/fast-json-stable-stringify/index.d.ts
deleted file mode 100644
index 23e46cafc14..00000000000
--- a/deps/npm/node_modules/fast-json-stable-stringify/index.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare module 'fast-json-stable-stringify' {
- function stringify(obj: any): string;
- export = stringify;
-}
diff --git a/deps/npm/node_modules/fast-json-stable-stringify/index.js b/deps/npm/node_modules/fast-json-stable-stringify/index.js
deleted file mode 100644
index c44e6a41372..00000000000
--- a/deps/npm/node_modules/fast-json-stable-stringify/index.js
+++ /dev/null
@@ -1,59 +0,0 @@
-'use strict';
-
-module.exports = function (data, opts) {
- if (!opts) opts = {};
- if (typeof opts === 'function') opts = { cmp: opts };
- var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false;
-
- var cmp = opts.cmp && (function (f) {
- return function (node) {
- return function (a, b) {
- var aobj = { key: a, value: node[a] };
- var bobj = { key: b, value: node[b] };
- return f(aobj, bobj);
- };
- };
- })(opts.cmp);
-
- var seen = [];
- return (function stringify (node) {
- if (node && node.toJSON && typeof node.toJSON === 'function') {
- node = node.toJSON();
- }
-
- if (node === undefined) return;
- if (typeof node == 'number') return isFinite(node) ? '' + node : 'null';
- if (typeof node !== 'object') return JSON.stringify(node);
-
- var i, out;
- if (Array.isArray(node)) {
- out = '[';
- for (i = 0; i < node.length; i++) {
- if (i) out += ',';
- out += stringify(node[i]) || 'null';
- }
- return out + ']';
- }
-
- if (node === null) return 'null';
-
- if (seen.indexOf(node) !== -1) {
- if (cycles) return JSON.stringify('__cycle__');
- throw new TypeError('Converting circular structure to JSON');
- }
-
- var seenIndex = seen.push(node) - 1;
- var keys = Object.keys(node).sort(cmp && cmp(node));
- out = '';
- for (i = 0; i < keys.length; i++) {
- var key = keys[i];
- var value = stringify(node[key]);
-
- if (!value) continue;
- if (out) out += ',';
- out += JSON.stringify(key) + ':' + value;
- }
- seen.splice(seenIndex, 1);
- return '{' + out + '}';
- })(data);
-};
diff --git a/deps/npm/node_modules/fast-json-stable-stringify/package.json b/deps/npm/node_modules/fast-json-stable-stringify/package.json
deleted file mode 100644
index ad2c8bff7c9..00000000000
--- a/deps/npm/node_modules/fast-json-stable-stringify/package.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
- "name": "fast-json-stable-stringify",
- "version": "2.1.0",
- "description": "deterministic `JSON.stringify()` - a faster version of substack's json-stable-strigify without jsonify",
- "main": "index.js",
- "types": "index.d.ts",
- "dependencies": {},
- "devDependencies": {
- "benchmark": "^2.1.4",
- "coveralls": "^3.0.0",
- "eslint": "^6.7.0",
- "fast-stable-stringify": "latest",
- "faster-stable-stringify": "latest",
- "json-stable-stringify": "latest",
- "nyc": "^14.1.0",
- "pre-commit": "^1.2.2",
- "tape": "^4.11.0"
- },
- "scripts": {
- "eslint": "eslint index.js test",
- "test-spec": "tape test/*.js",
- "test": "npm run eslint && nyc npm run test-spec"
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/epoberezkin/fast-json-stable-stringify.git"
- },
- "homepage": "https://github.com/epoberezkin/fast-json-stable-stringify",
- "keywords": [
- "json",
- "stringify",
- "deterministic",
- "hash",
- "stable"
- ],
- "author": {
- "name": "James Halliday",
- "email": "mail@substack.net",
- "url": "http://substack.net"
- },
- "license": "MIT",
- "nyc": {
- "exclude": [
- "test",
- "node_modules"
- ],
- "reporter": [
- "lcov",
- "text-summary"
- ]
- }
-}
diff --git a/deps/npm/node_modules/fast-json-stable-stringify/test/cmp.js b/deps/npm/node_modules/fast-json-stable-stringify/test/cmp.js
deleted file mode 100644
index 4efd6b59721..00000000000
--- a/deps/npm/node_modules/fast-json-stable-stringify/test/cmp.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-
-var test = require('tape');
-var stringify = require('../');
-
-test('custom comparison function', function (t) {
- t.plan(1);
- var obj = { c: 8, b: [{z:6,y:5,x:4},7], a: 3 };
- var s = stringify(obj, function (a, b) {
- return a.key < b.key ? 1 : -1;
- });
- t.equal(s, '{"c":8,"b":[{"z":6,"y":5,"x":4},7],"a":3}');
-});
diff --git a/deps/npm/node_modules/fast-json-stable-stringify/test/nested.js b/deps/npm/node_modules/fast-json-stable-stringify/test/nested.js
deleted file mode 100644
index 167a358e09a..00000000000
--- a/deps/npm/node_modules/fast-json-stable-stringify/test/nested.js
+++ /dev/null
@@ -1,44 +0,0 @@
-'use strict';
-
-var test = require('tape');
-var stringify = require('../');
-
-test('nested', function (t) {
- t.plan(1);
- var obj = { c: 8, b: [{z:6,y:5,x:4},7], a: 3 };
- t.equal(stringify(obj), '{"a":3,"b":[{"x":4,"y":5,"z":6},7],"c":8}');
-});
-
-test('cyclic (default)', function (t) {
- t.plan(1);
- var one = { a: 1 };
- var two = { a: 2, one: one };
- one.two = two;
- try {
- stringify(one);
- } catch (ex) {
- t.equal(ex.toString(), 'TypeError: Converting circular structure to JSON');
- }
-});
-
-test('cyclic (specifically allowed)', function (t) {
- t.plan(1);
- var one = { a: 1 };
- var two = { a: 2, one: one };
- one.two = two;
- t.equal(stringify(one, {cycles:true}), '{"a":1,"two":{"a":2,"one":"__cycle__"}}');
-});
-
-test('repeated non-cyclic value', function(t) {
- t.plan(1);
- var one = { x: 1 };
- var two = { a: one, b: one };
- t.equal(stringify(two), '{"a":{"x":1},"b":{"x":1}}');
-});
-
-test('acyclic but with reused obj-property pointers', function (t) {
- t.plan(1);
- var x = { a: 1 };
- var y = { b: x, c: x };
- t.equal(stringify(y), '{"b":{"a":1},"c":{"a":1}}');
-});
diff --git a/deps/npm/node_modules/fast-json-stable-stringify/test/str.js b/deps/npm/node_modules/fast-json-stable-stringify/test/str.js
deleted file mode 100644
index 99a9ade18bb..00000000000
--- a/deps/npm/node_modules/fast-json-stable-stringify/test/str.js
+++ /dev/null
@@ -1,46 +0,0 @@
-'use strict';
-
-var test = require('tape');
-var stringify = require('../');
-
-test('simple object', function (t) {
- t.plan(1);
- var obj = { c: 6, b: [4,5], a: 3, z: null };
- t.equal(stringify(obj), '{"a":3,"b":[4,5],"c":6,"z":null}');
-});
-
-test('object with undefined', function (t) {
- t.plan(1);
- var obj = { a: 3, z: undefined };
- t.equal(stringify(obj), '{"a":3}');
-});
-
-test('object with null', function (t) {
- t.plan(1);
- var obj = { a: 3, z: null };
- t.equal(stringify(obj), '{"a":3,"z":null}');
-});
-
-test('object with NaN and Infinity', function (t) {
- t.plan(1);
- var obj = { a: 3, b: NaN, c: Infinity };
- t.equal(stringify(obj), '{"a":3,"b":null,"c":null}');
-});
-
-test('array with undefined', function (t) {
- t.plan(1);
- var obj = [4, undefined, 6];
- t.equal(stringify(obj), '[4,null,6]');
-});
-
-test('object with empty string', function (t) {
- t.plan(1);
- var obj = { a: 3, z: '' };
- t.equal(stringify(obj), '{"a":3,"z":""}');
-});
-
-test('array with empty string', function (t) {
- t.plan(1);
- var obj = [4, '', 6];
- t.equal(stringify(obj), '[4,"",6]');
-});
diff --git a/deps/npm/node_modules/fast-json-stable-stringify/test/to-json.js b/deps/npm/node_modules/fast-json-stable-stringify/test/to-json.js
deleted file mode 100644
index 2fb2cfa3e87..00000000000
--- a/deps/npm/node_modules/fast-json-stable-stringify/test/to-json.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict';
-
-var test = require('tape');
-var stringify = require('../');
-
-test('toJSON function', function (t) {
- t.plan(1);
- var obj = { one: 1, two: 2, toJSON: function() { return { one: 1 }; } };
- t.equal(stringify(obj), '{"one":1}' );
-});
-
-test('toJSON returns string', function (t) {
- t.plan(1);
- var obj = { one: 1, two: 2, toJSON: function() { return 'one'; } };
- t.equal(stringify(obj), '"one"');
-});
-
-test('toJSON returns array', function (t) {
- t.plan(1);
- var obj = { one: 1, two: 2, toJSON: function() { return ['one']; } };
- t.equal(stringify(obj), '["one"]');
-});
diff --git a/deps/npm/node_modules/forever-agent/LICENSE b/deps/npm/node_modules/forever-agent/LICENSE
deleted file mode 100644
index a4a9aee0c2f..00000000000
--- a/deps/npm/node_modules/forever-agent/LICENSE
+++ /dev/null
@@ -1,55 +0,0 @@
-Apache License
-
-Version 2.0, January 2004
-
-http://www.apache.org/licenses/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
-"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
-
-"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
-
-"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
-
-"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
-
-"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
-
-"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
-
-"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
-
-"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
-
-"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
-
-"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
-
-2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
-
-You must give any other recipients of the Work or Derivative Works a copy of this License; and
-
-You must cause any modified files to carry prominent notices stating that You changed the files; and
-
-You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
-
-If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
-
-5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS \ No newline at end of file
diff --git a/deps/npm/node_modules/forever-agent/index.js b/deps/npm/node_modules/forever-agent/index.js
deleted file mode 100644
index 416c7abd709..00000000000
--- a/deps/npm/node_modules/forever-agent/index.js
+++ /dev/null
@@ -1,138 +0,0 @@
-module.exports = ForeverAgent
-ForeverAgent.SSL = ForeverAgentSSL
-
-var util = require('util')
- , Agent = require('http').Agent
- , net = require('net')
- , tls = require('tls')
- , AgentSSL = require('https').Agent
-
-function getConnectionName(host, port) {
- var name = ''
- if (typeof host === 'string') {
- name = host + ':' + port
- } else {
- // For node.js v012.0 and iojs-v1.5.1, host is an object. And any existing localAddress is part of the connection name.
- name = host.host + ':' + host.port + ':' + (host.localAddress ? (host.localAddress + ':') : ':')
- }
- return name
-}
-
-function ForeverAgent(options) {
- var self = this
- self.options = options || {}
- self.requests = {}
- self.sockets = {}
- self.freeSockets = {}
- self.maxSockets = self.options.maxSockets || Agent.defaultMaxSockets
- self.minSockets = self.options.minSockets || ForeverAgent.defaultMinSockets
- self.on('free', function(socket, host, port) {
- var name = getConnectionName(host, port)
-
- if (self.requests[name] && self.requests[name].length) {
- self.requests[name].shift().onSocket(socket)
- } else if (self.sockets[name].length < self.minSockets) {
- if (!self.freeSockets[name]) self.freeSockets[name] = []
- self.freeSockets[name].push(socket)
-
- // if an error happens while we don't use the socket anyway, meh, throw the socket away
- var onIdleError = function() {
- socket.destroy()
- }
- socket._onIdleError = onIdleError
- socket.on('error', onIdleError)
- } else {
- // If there are no pending requests just destroy the
- // socket and it will get removed from the pool. This
- // gets us out of timeout issues and allows us to
- // default to Connection:keep-alive.
- socket.destroy()
- }
- })
-
-}
-util.inherits(ForeverAgent, Agent)
-
-ForeverAgent.defaultMinSockets = 5
-
-
-ForeverAgent.prototype.createConnection = net.createConnection
-ForeverAgent.prototype.addRequestNoreuse = Agent.prototype.addRequest
-ForeverAgent.prototype.addRequest = function(req, host, port) {
- var name = getConnectionName(host, port)
-
- if (typeof host !== 'string') {
- var options = host
- port = options.port
- host = options.host
- }
-
- if (this.freeSockets[name] && this.freeSockets[name].length > 0 && !req.useChunkedEncodingByDefault) {
- var idleSocket = this.freeSockets[name].pop()
- idleSocket.removeListener('error', idleSocket._onIdleError)
- delete idleSocket._onIdleError
- req._reusedSocket = true
- req.onSocket(idleSocket)
- } else {
- this.addRequestNoreuse(req, host, port)
- }
-}
-
-ForeverAgent.prototype.removeSocket = function(s, name, host, port) {
- if (this.sockets[name]) {
- var index = this.sockets[name].indexOf(s)
- if (index !== -1) {
- this.sockets[name].splice(index, 1)
- }
- } else if (this.sockets[name] && this.sockets[name].length === 0) {
- // don't leak
- delete this.sockets[name]
- delete this.requests[name]
- }
-
- if (this.freeSockets[name]) {
- var index = this.freeSockets[name].indexOf(s)
- if (index !== -1) {
- this.freeSockets[name].splice(index, 1)
- if (this.freeSockets[name].length === 0) {
- delete this.freeSockets[name]
- }
- }
- }
-
- if (this.requests[name] && this.requests[name].length) {
- // If we have pending requests and a socket gets closed a new one
- // needs to be created to take over in the pool for the one that closed.
- this.createSocket(name, host, port).emit('free')
- }
-}
-
-function ForeverAgentSSL (options) {
- ForeverAgent.call(this, options)
-}
-util.inherits(ForeverAgentSSL, ForeverAgent)
-
-ForeverAgentSSL.prototype.createConnection = createConnectionSSL
-ForeverAgentSSL.prototype.addRequestNoreuse = AgentSSL.prototype.addRequest
-
-function createConnectionSSL (port, host, options) {
- if (typeof port === 'object') {
- options = port;
- } else if (typeof host === 'object') {
- options = host;
- } else if (typeof options === 'object') {
- options = options;
- } else {
- options = {};
- }
-
- if (typeof port === 'number') {
- options.port = port;
- }
-
- if (typeof host === 'string') {
- options.host = host;
- }
-
- return tls.connect(options);
-}
diff --git a/deps/npm/node_modules/forever-agent/package.json b/deps/npm/node_modules/forever-agent/package.json
deleted file mode 100644
index f7606298032..00000000000
--- a/deps/npm/node_modules/forever-agent/package.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "author": "Mikeal Rogers <mikeal.rogers@gmail.com> (http://www.futurealoof.com)",
- "name": "forever-agent",
- "description": "HTTP Agent that keeps socket connections alive between keep-alive requests. Formerly part of mikeal/request, now a standalone module.",
- "version": "0.6.1",
- "license": "Apache-2.0",
- "repository": {
- "url": "https://github.com/mikeal/forever-agent"
- },
- "main": "index.js",
- "dependencies": {},
- "devDependencies": {},
- "optionalDependencies": {},
- "engines": {
- "node": "*"
- }
-}
diff --git a/deps/npm/node_modules/getpass/LICENSE b/deps/npm/node_modules/getpass/LICENSE
deleted file mode 100644
index f6d947d2f61..00000000000
--- a/deps/npm/node_modules/getpass/LICENSE
+++ /dev/null
@@ -1,18 +0,0 @@
-Copyright Joyent, Inc. All rights reserved.
-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/deps/npm/node_modules/getpass/lib/index.js b/deps/npm/node_modules/getpass/lib/index.js
deleted file mode 100644
index 55a7718c0f7..00000000000
--- a/deps/npm/node_modules/getpass/lib/index.js
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright 2016, Joyent, Inc. All rights reserved.
- * Author: Alex Wilson <alex.wilson@joyent.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.
-*/
-
-module.exports = {
- getPass: getPass
-};
-
-const mod_tty = require('tty');
-const mod_fs = require('fs');
-const mod_assert = require('assert-plus');
-
-var BACKSPACE = String.fromCharCode(127);
-var CTRLC = '\u0003';
-var CTRLD = '\u0004';
-
-function getPass(opts, cb) {
- if (typeof (opts) === 'function' && cb === undefined) {
- cb = opts;
- opts = {};
- }
- mod_assert.object(opts, 'options');
- mod_assert.func(cb, 'callback');
-
- mod_assert.optionalString(opts.prompt, 'options.prompt');
- if (opts.prompt === undefined)
- opts.prompt = 'Password';
-
- openTTY(function (err, rfd, wfd, rtty, wtty) {
- if (err) {
- cb(err);
- return;
- }
-
- wtty.write(opts.prompt + ':');
- rtty.resume();
- rtty.setRawMode(true);
- rtty.resume();
- rtty.setEncoding('utf8');
-
- var pw = '';
- rtty.on('data', onData);
-
- function onData(data) {
- var str = data.toString('utf8');
- for (var i = 0; i < str.length; ++i) {
- var ch = str[i];
- switch (ch) {
- case '\r':
- case '\n':
- case CTRLD:
- cleanup();
- cb(null, pw);
- return;
- case CTRLC:
- cleanup();
- cb(new Error('Aborted'));
- return;
- case BACKSPACE:
- pw = pw.slice(0, pw.length - 1);
- break;
- default:
- pw += ch;
- break;
- }
- }
- }
-
- function cleanup() {
- wtty.write('\r\n');
- rtty.setRawMode(false);
- rtty.pause();
- rtty.removeListener('data', onData);
- if (wfd !== undefined && wfd !== rfd) {
- wtty.end();
- mod_fs.closeSync(wfd);
- }
- if (rfd !== undefined) {
- rtty.end();
- mod_fs.closeSync(rfd);
- }
- }
- });
-}
-
-function openTTY(cb) {
- mod_fs.open('/dev/tty', 'r+', function (err, rttyfd) {
- if ((err && (err.code === 'ENOENT' || err.code === 'EACCES')) ||
- (process.version.match(/^v0[.][0-8][.]/))) {
- cb(null, undefined, undefined, process.stdin,
- process.stdout);
- return;
- }
- var rtty = new mod_tty.ReadStream(rttyfd);
- mod_fs.open('/dev/tty', 'w+', function (err3, wttyfd) {
- var wtty = new mod_tty.WriteStream(wttyfd);
- if (err3) {
- cb(err3);
- return;
- }
- cb(null, rttyfd, wttyfd, rtty, wtty);
- });
- });
-}
diff --git a/deps/npm/node_modules/getpass/package.json b/deps/npm/node_modules/getpass/package.json
deleted file mode 100644
index f1638eb3cdd..00000000000
--- a/deps/npm/node_modules/getpass/package.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "name": "getpass",
- "version": "0.1.7",
- "description": "getpass for node.js",
- "main": "lib/index.js",
- "dependencies": {
- "assert-plus": "^1.0.0"
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/arekinath/node-getpass.git"
- },
- "scripts": {
- "test": "tape test/*.test.js"
- },
- "author": "Alex Wilson <alex.wilson@joyent.com>",
- "license": "MIT"
-}
diff --git a/deps/npm/node_modules/glob/changelog.md b/deps/npm/node_modules/glob/changelog.md
deleted file mode 100644
index 41636771e3a..00000000000
--- a/deps/npm/node_modules/glob/changelog.md
+++ /dev/null
@@ -1,67 +0,0 @@
-## 7.0
-
-- Raise error if `options.cwd` is specified, and not a directory
-
-## 6.0
-
-- Remove comment and negation pattern support
-- Ignore patterns are always in `dot:true` mode
-
-## 5.0
-
-- Deprecate comment and negation patterns
-- Fix regression in `mark` and `nodir` options from making all cache
- keys absolute path.
-- Abort if `fs.readdir` returns an error that's unexpected
-- Don't emit `match` events for ignored items
-- Treat ENOTSUP like ENOTDIR in readdir
-
-## 4.5
-
-- Add `options.follow` to always follow directory symlinks in globstar
-- Add `options.realpath` to call `fs.realpath` on all results
-- Always cache based on absolute path
-
-## 4.4
-
-- Add `options.ignore`
-- Fix handling of broken symlinks
-
-## 4.3
-
-- Bump minimatch to 2.x
-- Pass all tests on Windows
-
-## 4.2
-
-- Add `glob.hasMagic` function
-- Add `options.nodir` flag
-
-## 4.1
-
-- Refactor sync and async implementations for performance
-- Throw if callback provided to sync glob function
-- Treat symbolic links in globstar results the same as Bash 4.3
-
-## 4.0
-
-- Use `^` for dependency versions (bumped major because this breaks
- older npm versions)
-- Ensure callbacks are only ever called once
-- switch to ISC license
-
-## 3.x
-
-- Rewrite in JavaScript
-- Add support for setting root, cwd, and windows support
-- Cache many fs calls
-- Add globstar support
-- emit match events
-
-## 2.x
-
-- Use `glob.h` and `fnmatch.h` from NetBSD
-
-## 1.x
-
-- `glob.h` static binding.
diff --git a/deps/npm/node_modules/glob/common.js b/deps/npm/node_modules/glob/common.js
index d14157a0aec..8e363b6c1f1 100644
--- a/deps/npm/node_modules/glob/common.js
+++ b/deps/npm/node_modules/glob/common.js
@@ -10,6 +10,7 @@ function ownProp (obj, field) {
return Object.prototype.hasOwnProperty.call(obj, field)
}
+var fs = require("fs")
var path = require("path")
var minimatch = require("minimatch")
var isAbsolute = require("path-is-absolute")
@@ -75,6 +76,7 @@ function setopts (self, pattern, options) {
self.stat = !!options.stat
self.noprocess = !!options.noprocess
self.absolute = !!options.absolute
+ self.fs = options.fs || fs
self.maxLength = options.maxLength || Infinity
self.cache = options.cache || Object.create(null)
diff --git a/deps/npm/node_modules/glob/glob.js b/deps/npm/node_modules/glob/glob.js
index dc27aef10b3..afcf82752c3 100644
--- a/deps/npm/node_modules/glob/glob.js
+++ b/deps/npm/node_modules/glob/glob.js
@@ -40,7 +40,6 @@
module.exports = glob
-var fs = require('fs')
var rp = require('fs.realpath')
var minimatch = require('minimatch')
var Minimatch = minimatch.Minimatch
@@ -501,7 +500,7 @@ Glob.prototype._readdirInGlobStar = function (abs, cb) {
var lstatcb = inflight(lstatkey, lstatcb_)
if (lstatcb)
- fs.lstat(abs, lstatcb)
+ self.fs.lstat(abs, lstatcb)
function lstatcb_ (er, lstat) {
if (er && er.code === 'ENOENT')
@@ -542,7 +541,7 @@ Glob.prototype._readdir = function (abs, inGlobStar, cb) {
}
var self = this
- fs.readdir(abs, readdirCb(this, abs, cb))
+ self.fs.readdir(abs, readdirCb(this, abs, cb))
}
function readdirCb (self, abs, cb) {
@@ -746,13 +745,13 @@ Glob.prototype._stat = function (f, cb) {
var self = this
var statcb = inflight('stat\0' + abs, lstatcb_)
if (statcb)
- fs.lstat(abs, statcb)
+ self.fs.lstat(abs, statcb)
function lstatcb_ (er, lstat) {
if (lstat && lstat.isSymbolicLink()) {
// If it's a symlink, then treat it as the target, unless
// the target does not exist, then treat it as a file.
- return fs.stat(abs, function (er, stat) {
+ return self.fs.stat(abs, function (er, stat) {
if (er)
self._stat2(f, abs, null, lstat, cb)
else
diff --git a/deps/npm/node_modules/glob/package.json b/deps/npm/node_modules/glob/package.json
index b345ae1e9fd..cc1a57a896e 100644
--- a/deps/npm/node_modules/glob/package.json
+++ b/deps/npm/node_modules/glob/package.json
@@ -2,7 +2,7 @@
"author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
"name": "glob",
"description": "a little globber",
- "version": "7.1.7",
+ "version": "7.2.0",
"repository": {
"type": "git",
"url": "git://github.com/isaacs/node-glob.git"
@@ -25,6 +25,7 @@
"path-is-absolute": "^1.0.0"
},
"devDependencies": {
+ "memfs": "^3.2.0",
"mkdirp": "0",
"rimraf": "^2.2.8",
"tap": "^15.0.6",
diff --git a/deps/npm/node_modules/glob/sync.js b/deps/npm/node_modules/glob/sync.js
index 10b0ed2c002..4f46f90559a 100644
--- a/deps/npm/node_modules/glob/sync.js
+++ b/deps/npm/node_modules/glob/sync.js
@@ -1,7 +1,6 @@
module.exports = globSync
globSync.GlobSync = GlobSync
-var fs = require('fs')
var rp = require('fs.realpath')
var minimatch = require('minimatch')
var Minimatch = minimatch.Minimatch
@@ -246,7 +245,7 @@ GlobSync.prototype._readdirInGlobStar = function (abs) {
var lstat
var stat
try {
- lstat = fs.lstatSync(abs)
+ lstat = this.fs.lstatSync(abs)
} catch (er) {
if (er.code === 'ENOENT') {
// lstat failed, doesn't exist
@@ -283,7 +282,7 @@ GlobSync.prototype._readdir = function (abs, inGlobStar) {
}
try {
- return this._readdirEntries(abs, fs.readdirSync(abs))
+ return this._readdirEntries(abs, this.fs.readdirSync(abs))
} catch (er) {
this._readdirError(abs, er)
return null
@@ -442,7 +441,7 @@ GlobSync.prototype._stat = function (f) {
if (!stat) {
var lstat
try {
- lstat = fs.lstatSync(abs)
+ lstat = this.fs.lstatSync(abs)
} catch (er) {
if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) {
this.statCache[abs] = false
@@ -452,7 +451,7 @@ GlobSync.prototype._stat = function (f) {
if (lstat && lstat.isSymbolicLink()) {
try {
- stat = fs.statSync(abs)
+ stat = this.fs.statSync(abs)
} catch (er) {
stat = lstat
}
diff --git a/deps/npm/node_modules/har-schema/LICENSE b/deps/npm/node_modules/har-schema/LICENSE
deleted file mode 100644
index ca55c91af4e..00000000000
--- a/deps/npm/node_modules/har-schema/LICENSE
+++ /dev/null
@@ -1,13 +0,0 @@
-Copyright (c) 2015, Ahmad Nassri <ahmad@ahmadnassri.com>
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/deps/npm/node_modules/har-schema/lib/afterRequest.json b/deps/npm/node_modules/har-schema/lib/afterRequest.json
deleted file mode 100644
index 5f525815498..00000000000
--- a/deps/npm/node_modules/har-schema/lib/afterRequest.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "$id": "afterRequest.json#",
- "$schema": "http://json-schema.org/draft-06/schema#",
- "type": "object",
- "optional": true,
- "required": [
- "lastAccess",
- "eTag",
- "hitCount"
- ],
- "properties": {
- "expires": {
- "type": "string",
- "pattern": "^(\\d{4})(-)?(\\d\\d)(-)?(\\d\\d)(T)?(\\d\\d)(:)?(\\d\\d)(:)?(\\d\\d)(\\.\\d+)?(Z|([+-])(\\d\\d)(:)?(\\d\\d))?"
- },
- "lastAccess": {
- "type": "string",
- "pattern": "^(\\d{4})(-)?(\\d\\d)(-)?(\\d\\d)(T)?(\\d\\d)(:)?(\\d\\d)(:)?(\\d\\d)(\\.\\d+)?(Z|([+-])(\\d\\d)(:)?(\\d\\d))?"
- },
- "eTag": {
- "type": "string"
- },
- "hitCount": {
- "type": "integer"
- },
- "comment": {
- "type": "string"
- }
- }
-}
diff --git a/deps/npm/node_modules/har-schema/lib/beforeRequest.json b/deps/npm/node_modules/har-schema/lib/beforeRequest.json
deleted file mode 100644
index c7b5c1016a7..00000000000
--- a/deps/npm/node_modules/har-schema/lib/beforeRequest.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "$id": "beforeRequest.json#",
- "$schema": "http://json-schema.org/draft-06/schema#",
- "type": "object",
- "optional": true,
- "required": [
- "lastAccess",
- "eTag",
- "hitCount"
- ],
- "properties": {
- "expires": {
- "type": "string",
- "pattern": "^(\\d{4})(-)?(\\d\\d)(-)?(\\d\\d)(T)?(\\d\\d)(:)?(\\d\\d)(:)?(\\d\\d)(\\.\\d+)?(Z|([+-])(\\d\\d)(:)?(\\d\\d))?"
- },
- "lastAccess": {
- "type": "string",
- "pattern": "^(\\d{4})(-)?(\\d\\d)(-)?(\\d\\d)(T)?(\\d\\d)(:)?(\\d\\d)(:)?(\\d\\d)(\\.\\d+)?(Z|([+-])(\\d\\d)(:)?(\\d\\d))?"
- },
- "eTag": {
- "type": "string"
- },
- "hitCount": {
- "type": "integer"
- },
- "comment": {
- "type": "string"
- }
- }
-}
diff --git a/deps/npm/node_modules/har-schema/lib/browser.json b/deps/npm/node_modules/har-schema/lib/browser.json
deleted file mode 100644
index d6869f75ac4..00000000000
--- a/deps/npm/node_modules/har-schema/lib/browser.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "$id": "browser.json#",
- "$schema": "http://json-schema.org/draft-06/schema#",
- "type": "object",
- "required": [
- "name",
- "version"
- ],
- "properties": {
- "name": {
- "type": "string"
- },
- "version": {
- "type": "string"
- },
- "comment": {
- "type": "string"
- }
- }
-}
diff --git a/deps/npm/node_modules/har-schema/lib/cache.json b/deps/npm/node_modules/har-schema/lib/cache.json
deleted file mode 100644
index 30a7182eb90..00000000000
--- a/deps/npm/node_modules/har-schema/lib/cache.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "$id": "cache.json#",
- "$schema": "http://json-schema.org/draft-06/schema#",
- "properties": {
- "beforeRequest": {
- "oneOf": [
- { "type": "null" },
- { "$ref": "beforeRequest.json#" }
- ]
- },
- "afterRequest": {
- "oneOf": [
- { "type": "null" },
- { "$ref": "afterRequest.json#" }
- ]
- },
- "comment": {
- "type": "string"
- }
- }
-}
diff --git a/deps/npm/node_modules/har-schema/lib/content.json b/deps/npm/node_modules/har-schema/lib/content.json
deleted file mode 100644
index 43944bfa18f..00000000000
--- a/deps/npm/node_modules/har-schema/lib/content.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "$id": "content.json#",
- "$schema": "http://json-schema.org/draft-06/schema#",
- "type": "object",
- "required": [
- "size",
- "mimeType"
- ],
- "properties": {
- "size": {
- "type": "integer"
- },
- "compression": {
- "type": "integer"
- },
- "mimeType": {
- "type": "string"
- },
- "text": {
- "type": "string"
- },
- "encoding": {
- "type": "string"
- },
- "comment": {
- "type": "string"
- }
- }
-}
diff --git a/deps/npm/node_modules/har-schema/lib/cookie.json b/deps/npm/node_modules/har-schema/lib/cookie.json
deleted file mode 100644
index 661f7f32aca..00000000000
--- a/deps/npm/node_modules/har-schema/lib/cookie.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "$id": "cookie.json#",
- "$schema": "http://json-schema.org/draft-06/schema#",
- "type": "object",
- "required": [
- "name",
- "value"
- ],
- "properties": {
- "name": {
- "type": "string"
- },
- "value": {
- "type": "string"
- },
- "path": {
- "type": "string"
- },
- "domain": {
- "type": "string"
- },
- "expires": {
- "type": ["string", "null"],
- "format": "date-time"
- },
- "httpOnly": {
- "type": "boolean"
- },
- "secure": {
- "type": "boolean"
- },
- "comment": {
- "type": "string"
- }
- }
-}
diff --git a/deps/npm/node_modules/har-schema/lib/creator.json b/deps/npm/node_modules/har-schema/lib/creator.json
deleted file mode 100644
index 71a75cd4143..00000000000
--- a/deps/npm/node_modules/har-schema/lib/creator.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "$id": "creator.json#",
- "$schema": "http://json-schema.org/draft-06/schema#",
- "type": "object",
- "required": [
- "name",
- "version"
- ],
- "properties": {
- "name": {
- "type": "string"
- },
- "version": {
- "type": "string"
- },
- "comment": {
- "type": "string"
- }
- }
-}
diff --git a/deps/npm/node_modules/har-schema/lib/entry.json b/deps/npm/node_modules/har-schema/lib/entry.json
deleted file mode 100644
index 18025f43373..00000000000
--- a/deps/npm/node_modules/har-schema/lib/entry.json
+++ /dev/null
@@ -1,53 +0,0 @@
-{
- "$id": "entry.json#",
- "$schema": "http://json-schema.org/draft-06/schema#",
- "type": "object",
- "optional": true,
- "required": [
- "startedDateTime",
- "time",
- "request",
- "response",
- "cache",
- "timings"
- ],
- "properties": {
- "pageref": {
- "type": "string"
- },
- "startedDateTime": {
- "type": "string",
- "format": "date-time",
- "pattern": "^(\\d{4})(-)?(\\d\\d)(-)?(\\d\\d)(T)?(\\d\\d)(:)?(\\d\\d)(:)?(\\d\\d)(\\.\\d+)?(Z|([+-])(\\d\\d)(:)?(\\d\\d))"
- },
- "time": {
- "type": "number",
- "min": 0
- },
- "request": {
- "$ref": "request.json#"
- },
- "response": {
- "$ref": "response.json#"
- },
- "cache": {
- "$ref": "cache.json#"
- },
- "timings": {
- "$ref": "timings.json#"
- },
- "serverIPAddress": {
- "type": "string",
- "oneOf": [
- { "format": "ipv4" },
- { "format": "ipv6" }
- ]
- },
- "connection": {
- "type": "string"
- },
- "comment": {
- "type": "string"
- }
- }
-}
diff --git a/deps/npm/node_modules/har-schema/lib/har.json b/deps/npm/node_modules/har-schema/lib/har.json
deleted file mode 100644
index d1a1de551c4..00000000000
--- a/deps/npm/node_modules/har-schema/lib/har.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "$id": "har.json#",
- "$schema": "http://json-schema.org/draft-06/schema#",
- "type": "object",
- "required": [
- "log"
- ],
- "properties": {
- "log": {
- "$ref": "log.json#"
- }
- }
-}
diff --git a/deps/npm/node_modules/har-schema/lib/header.json b/deps/npm/node_modules/har-schema/lib/header.json
deleted file mode 100644
index 103d949a33b..00000000000
--- a/deps/npm/node_modules/har-schema/lib/header.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "$id": "header.json#",
- "$schema": "http://json-schema.org/draft-06/schema#",
- "type": "object",
- "required": [
- "name",
- "value"
- ],
- "properties": {
- "name": {
- "type": "string"
- },
- "value": {
- "type": "string"
- },
- "comment": {
- "type": "string"
- }
- }
-}
diff --git a/deps/npm/node_modules/har-schema/lib/index.js b/deps/npm/node_modules/har-schema/lib/index.js
deleted file mode 100644
index 244c08e04e2..00000000000
--- a/deps/npm/node_modules/har-schema/lib/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict'
-
-module.exports = {
- afterRequest: require('./afterRequest.json'),
- beforeRequest: require('./beforeRequest.json'),
- browser: require('./browser.json'),
- cache: require('./cache.json'),
- content: require('./content.json'),
- cookie: require('./cookie.json'),
- creator: require('./creator.json'),
- entry: require('./entry.json'),
- har: require('./har.json'),
- header: require('./header.json'),
- log: require('./log.json'),
- page: require('./page.json'),
- pageTimings: require('./pageTimings.json'),
- postData: require('./postData.json'),
- query: require('./query.json'),
- request: require('./request.json'),
- response: require('./response.json'),
- timings: require('./timings.json')
-}
diff --git a/deps/npm/node_modules/har-schema/lib/log.json b/deps/npm/node_modules/har-schema/lib/log.json
deleted file mode 100644
index c353b40f13d..00000000000
--- a/deps/npm/node_modules/har-schema/lib/log.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "$id": "log.json#",
- "$schema": "http://json-schema.org/draft-06/schema#",
- "type": "object",
- "required": [
- "version",
- "creator",
- "entries"
- ],
- "properties": {
- "version": {
- "type": "string"
- },
- "creator": {
- "$ref": "creator.json#"
- },
- "browser": {
- "$ref": "browser.json#"
- },
- "pages": {
- "type": "array",
- "items": {
- "$ref": "page.json#"
- }
- },
- "entries": {
- "type": "array",
- "items": {
- "$ref": "entry.json#"
- }
- },
- "comment": {
- "type": "string"
- }
- }
-}
diff --git a/deps/npm/node_modules/har-schema/lib/page.json b/deps/npm/node_modules/har-schema/lib/page.json
deleted file mode 100644
index e24a3cee68a..00000000000
--- a/deps/npm/node_modules/har-schema/lib/page.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "$id": "page.json#",
- "$schema": "http://json-schema.org/draft-06/schema#",
- "type": "object",
- "optional": true,
- "required": [
- "startedDateTime",
- "id",
- "title",
- "pageTimings"
- ],
- "properties": {
- "startedDateTime": {
- "type": "string",
- "format": "date-time",
- "pattern": "^(\\d{4})(-)?(\\d\\d)(-)?(\\d\\d)(T)?(\\d\\d)(:)?(\\d\\d)(:)?(\\d\\d)(\\.\\d+)?(Z|([+-])(\\d\\d)(:)?(\\d\\d))"
- },
- "id": {
- "type": "string",
- "unique": true
- },
- "title": {
- "type": "string"
- },
- "pageTimings": {
- "$ref": "pageTimings.json#"
- },
- "comment": {
- "type": "string"
- }
- }
-}
diff --git a/deps/npm/node_modules/har-schema/lib/pageTimings.json b/deps/npm/node_modules/har-schema/lib/pageTimings.json
deleted file mode 100644
index 130411fee6a..00000000000
--- a/deps/npm/node_modules/har-schema/lib/pageTimings.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "$id": "pageTimings.json#",
- "$schema": "http://json-schema.org/draft-06/schema#",
- "type": "object",
- "properties": {
- "onContentLoad": {
- "type": "number",
- "min": -1
- },
- "onLoad": {
- "type": "number",
- "min": -1
- },
- "comment": {
- "type": "string"
- }
- }
-}
diff --git a/deps/npm/node_modules/har-schema/lib/postData.json b/deps/npm/node_modules/har-schema/lib/postData.json
deleted file mode 100644
index 3aa6294a43a..00000000000
--- a/deps/npm/node_modules/har-schema/lib/postData.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "$id": "postData.json#",
- "$schema": "http://json-schema.org/draft-06/schema#",
- "type": "object",
- "optional": true,
- "required": [
- "mimeType"
- ],
- "properties": {
- "mimeType": {
- "type": "string"
- },
- "text": {
- "type": "string"
- },
- "params": {
- "type": "array",
- "required": [
- "name"
- ],
- "properties": {
- "name": {
- "type": "string"
- },
- "value": {
- "type": "string"
- },
- "fileName": {
- "type": "string"
- },
- "contentType": {
- "type": "string"
- },
- "comment": {
- "type": "string"
- }
- }
- },
- "comment": {
- "type": "string"
- }
- }
-}
diff --git a/deps/npm/node_modules/har-schema/lib/query.json b/deps/npm/node_modules/har-schema/lib/query.json
deleted file mode 100644
index f82d8d8dac1..00000000000
--- a/deps/npm/node_modules/har-schema/lib/query.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "$id": "query.json#",
- "$schema": "http://json-schema.org/draft-06/schema#",
- "type": "object",
- "required": [
- "name",
- "value"
- ],
- "properties": {
- "name": {
- "type": "string"
- },
- "value": {
- "type": "string"
- },
- "comment": {
- "type": "string"
- }
- }
-}
diff --git a/deps/npm/node_modules/har-schema/lib/request.json b/deps/npm/node_modules/har-schema/lib/request.json
deleted file mode 100644
index 0e2566dedc2..00000000000
--- a/deps/npm/node_modules/har-schema/lib/request.json
+++ /dev/null
@@ -1,57 +0,0 @@
-{
- "$id": "request.json#",
- "$schema": "http://json-schema.org/draft-06/schema#",
- "type": "object",
- "required": [
- "method",
- "url",
- "httpVersion",
- "cookies",
- "headers",
- "queryString",
- "headersSize",
- "bodySize"
- ],
- "properties": {
- "method": {
- "type": "string"
- },
- "url": {
- "type": "string",
- "format": "uri"
- },
- "httpVersion": {
- "type": "string"
- },
- "cookies": {
- "type": "array",
- "items": {
- "$ref": "cookie.json#"
- }
- },
- "headers": {
- "type": "array",
- "items": {
- "$ref": "header.json#"
- }
- },
- "queryString": {
- "type": "array",
- "items": {
- "$ref": "query.json#"
- }
- },
- "postData": {
- "$ref": "postData.json#"
- },
- "headersSize": {
- "type": "integer"
- },
- "bodySize": {
- "type": "integer"
- },
- "comment": {
- "type": "string"
- }
- }
-}
diff --git a/deps/npm/node_modules/har-schema/lib/response.json b/deps/npm/node_modules/har-schema/lib/response.json
deleted file mode 100644
index ec30f802bac..00000000000
--- a/deps/npm/node_modules/har-schema/lib/response.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{
- "$id": "response.json#",
- "$schema": "http://json-schema.org/draft-06/schema#",
- "type": "object",
- "required": [
- "status",
- "statusText",
- "httpVersion",
- "cookies",
- "headers",
- "content",
- "redirectURL",
- "headersSize",
- "bodySize"
- ],
- "properties": {
- "status": {
- "type": "integer"
- },
- "statusText": {
- "type": "string"
- },
- "httpVersion": {
- "type": "string"
- },
- "cookies": {
- "type": "array",
- "items": {
- "$ref": "cookie.json#"
- }
- },
- "headers": {
- "type": "array",
- "items": {
- "$ref": "header.json#"
- }
- },
- "content": {
- "$ref": "content.json#"
- },
- "redirectURL": {
- "type": "string"
- },
- "headersSize": {
- "type": "integer"
- },
- "bodySize": {
- "type": "integer"
- },
- "comment": {
- "type": "string"
- }
- }
-}
diff --git a/deps/npm/node_modules/har-schema/lib/timings.json b/deps/npm/node_modules/har-schema/lib/timings.json
deleted file mode 100644
index 5fe7dc7a5e8..00000000000
--- a/deps/npm/node_modules/har-schema/lib/timings.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "$id": "timings.json#",
- "$schema": "http://json-schema.org/draft-06/schema#",
- "required": [
- "send",
- "wait",
- "receive"
- ],
- "properties": {
- "dns": {
- "type": "number",
- "min": -1
- },
- "connect": {
- "type": "number",
- "min": -1
- },
- "blocked": {
- "type": "number",
- "min": -1
- },
- "send": {
- "type": "number",
- "min": -1
- },
- "wait": {
- "type": "number",
- "min": -1
- },
- "receive": {
- "type": "number",
- "min": -1
- },
- "ssl": {
- "type": "number",
- "min": -1
- },
- "comment": {
- "type": "string"
- }
- }
-}
diff --git a/deps/npm/node_modules/har-schema/package.json b/deps/npm/node_modules/har-schema/package.json
deleted file mode 100644
index d14650bd782..00000000000
--- a/deps/npm/node_modules/har-schema/package.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{
- "version": "2.0.0",
- "name": "har-schema",
- "description": "JSON Schema for HTTP Archive (HAR)",
- "author": "Ahmad Nassri <ahmad@ahmadnassri.com> (https://www.ahmadnassri.com/)",
- "contributors": [
- "Evgeny Poberezkin <e.poberezkin@me.com>"
- ],
- "homepage": "https://github.com/ahmadnassri/har-schema",
- "repository": {
- "type": "git",
- "url": "https://github.com/ahmadnassri/har-schema.git"
- },
- "license": "ISC",
- "main": "lib/index.js",
- "keywords": [
- "har",
- "http",
- "archive",
- "JSON",
- "schema",
- "JSON-schema"
- ],
- "engines": {
- "node": ">=4"
- },
- "files": [
- "lib"
- ],
- "bugs": {
- "url": "https://github.com/ahmadnassri/har-schema/issues"
- },
- "scripts": {
- "test": "tap test --reporter spec",
- "pretest": "snazzy && echint",
- "coverage": "tap test --reporter silent --coverage",
- "codeclimate": "tap --coverage-report=text-lcov | codeclimate-test-reporter",
- "semantic-release": "semantic-release pre && npm publish && semantic-release post"
- },
- "config": {
- "commitizen": {
- "path": "./node_modules/cz-conventional-changelog"
- }
- },
- "devDependencies": {
- "ajv": "^5.0.0",
- "codeclimate-test-reporter": "^0.4.0",
- "cz-conventional-changelog": "^1.2.0",
- "echint": "^2.1.0",
- "semantic-release": "^6.3.2",
- "snazzy": "^5.0.0",
- "tap": "^8.0.1"
- }
-} \ No newline at end of file
diff --git a/deps/npm/node_modules/har-validator/lib/async.js b/deps/npm/node_modules/har-validator/lib/async.js
deleted file mode 100644
index 90701f253f7..00000000000
--- a/deps/npm/node_modules/har-validator/lib/async.js
+++ /dev/null
@@ -1,105 +0,0 @@
-var Ajv = require('ajv')
-var HARError = require('./error')
-var schemas = require('har-schema')
-
-var ajv
-
-function createAjvInstance () {
- var ajv = new Ajv({
- allErrors: true
- })
- ajv.addMetaSchema(require('ajv/lib/refs/json-schema-draft-06.json'))
- ajv.addSchema(schemas)
-
- return ajv
-}
-
-function validate (name, data, next) {
- data = data || {}
-
- // validator config
- ajv = ajv || createAjvInstance()
-
- var validate = ajv.getSchema(name + '.json')
-
- var valid = validate(data)
-
- // callback?
- if (typeof next === 'function') {
- return next(!valid ? new HARError(validate.errors) : null, valid)
- }
-
- return valid
-}
-
-exports.afterRequest = function (data, next) {
- return validate('afterRequest', data, next)
-}
-
-exports.beforeRequest = function (data, next) {
- return validate('beforeRequest', data, next)
-}
-
-exports.browser = function (data, next) {
- return validate('browser', data, next)
-}
-
-exports.cache = function (data, next) {
- return validate('cache', data, next)
-}
-
-exports.content = function (data, next) {
- return validate('content', data, next)
-}
-
-exports.cookie = function (data, next) {
- return validate('cookie', data, next)
-}
-
-exports.creator = function (data, next) {
- return validate('creator', data, next)
-}
-
-exports.entry = function (data, next) {
- return validate('entry', data, next)
-}
-
-exports.har = function (data, next) {
- return validate('har', data, next)
-}
-
-exports.header = function (data, next) {
- return validate('header', data, next)
-}
-
-exports.log = function (data, next) {
- return validate('log', data, next)
-}
-
-exports.page = function (data, next) {
- return validate('page', data, next)
-}
-
-exports.pageTimings = function (data, next) {
- return validate('pageTimings', data, next)
-}
-
-exports.postData = function (data, next) {
- return validate('postData', data, next)
-}
-
-exports.query = function (data, next) {
- return validate('query', data, next)
-}
-
-exports.request = function (data, next) {
- return validate('request', data, next)
-}
-
-exports.response = function (data, next) {
- return validate('response', data, next)
-}
-
-exports.timings = function (data, next) {
- return validate('timings', data, next)
-}
diff --git a/deps/npm/node_modules/har-validator/lib/error.js b/deps/npm/node_modules/har-validator/lib/error.js
deleted file mode 100644
index f2618dc4f3c..00000000000
--- a/deps/npm/node_modules/har-validator/lib/error.js
+++ /dev/null
@@ -1,17 +0,0 @@
-function HARError (errors) {
- var message = 'validation failed'
-
- this.name = 'HARError'
- this.message = message
- this.errors = errors
-
- if (typeof Error.captureStackTrace === 'function') {
- Error.captureStackTrace(this, this.constructor)
- } else {
- this.stack = (new Error(message)).stack
- }
-}
-
-HARError.prototype = Error.prototype
-
-module.exports = HARError
diff --git a/deps/npm/node_modules/har-validator/lib/promise.js b/deps/npm/node_modules/har-validator/lib/promise.js
deleted file mode 100644
index 46f46479786..00000000000
--- a/deps/npm/node_modules/har-validator/lib/promise.js
+++ /dev/null
@@ -1,102 +0,0 @@
-var Ajv = require('ajv')
-var HARError = require('./error')
-var schemas = require('har-schema')
-
-var ajv
-
-function createAjvInstance () {
- var ajv = new Ajv({
- allErrors: true
- })
- ajv.addMetaSchema(require('ajv/lib/refs/json-schema-draft-06.json'))
- ajv.addSchema(schemas)
-
- return ajv
-}
-
-function validate (name, data) {
- data = data || {}
-
- // validator config
- ajv = ajv || createAjvInstance()
-
- var validate = ajv.getSchema(name + '.json')
-
- return new Promise(function (resolve, reject) {
- var valid = validate(data)
-
- !valid ? reject(new HARError(validate.errors)) : resolve(data)
- })
-}
-
-exports.afterRequest = function (data) {
- return validate('afterRequest', data)
-}
-
-exports.beforeRequest = function (data) {
- return validate('beforeRequest', data)
-}
-
-exports.browser = function (data) {
- return validate('browser', data)
-}
-
-exports.cache = function (data) {
- return validate('cache', data)
-}
-
-exports.content = function (data) {
- return validate('content', data)
-}
-
-exports.cookie = function (data) {
- return validate('cookie', data)
-}
-
-exports.creator = function (data) {
- return validate('creator', data)
-}
-
-exports.entry = function (data) {
- return validate('entry', data)
-}
-
-exports.har = function (data) {
- return validate('har', data)
-}
-
-exports.header = function (data) {
- return validate('header', data)
-}
-
-exports.log = function (data) {
- return validate('log', data)
-}
-
-exports.page = function (data) {
- return validate('page', data)
-}
-
-exports.pageTimings = function (data) {
- return validate('pageTimings', data)
-}
-
-exports.postData = function (data) {
- return validate('postData', data)
-}
-
-exports.query = function (data) {
- return validate('query', data)
-}
-
-exports.request = function (data) {
- return validate('request', data)
-}
-
-exports.response = function (data) {
- return validate('response', data)
-}
-
-exports.timings = function (data) {
- return validate('timings', data)
-}
diff --git a/deps/npm/node_modules/har-validator/package.json b/deps/npm/node_modules/har-validator/package.json
deleted file mode 100644
index 8d1eed1798f..00000000000
--- a/deps/npm/node_modules/har-validator/package.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "version": "5.1.5",
- "name": "har-validator",
- "description": "Extremely fast HTTP Archive (HAR) validator using JSON Schema",
- "author": "Ahmad Nassri <ahmad@ahmadnassri.com> (https://www.ahmadnassri.com/)",
- "homepage": "https://github.com/ahmadnassri/node-har-validator",
- "repository": {
- "type": "git",
- "url": "https://github.com/ahmadnassri/node-har-validator.git"
- },
- "license": "MIT",
- "main": "lib/promise.js",
- "keywords": [
- "har",
- "cli",
- "ajv",
- "http",
- "archive",
- "validate",
- "validator"
- ],
- "engines": {
- "node": ">=6"
- },
- "files": [
- "lib"
- ],
- "bugs": {
- "url": "https://github.com/ahmadnassri/node-har-validator/issues"
- },
- "scripts": {
- "lint": "npx run-p lint:*",
- "test": "tap test --no-coverage",
- "test:coverage": "tap test --coverage-report=lcov --no-browser"
- },
- "devDependencies": {
- "tap": "^14.10.8"
- },
- "dependencies": {
- "ajv": "^6.12.3",
- "har-schema": "^2.0.0"
- }
-}
diff --git a/deps/npm/node_modules/http-signature/CHANGES.md b/deps/npm/node_modules/http-signature/CHANGES.md
deleted file mode 100644
index 6f69444ba6a..00000000000
--- a/deps/npm/node_modules/http-signature/CHANGES.md
+++ /dev/null
@@ -1,46 +0,0 @@
-# node-http-signature changelog
-
-## 1.1.1
-
-- Version of dependency `assert-plus` updated: old version was missing
- some license information
-- Corrected examples in `http_signing.md`, added auto-tests to
- automatically validate these examples
-
-## 1.1.0
-
-- Bump version of `sshpk` dependency, remove peerDependency on it since
- it now supports exchanging objects between multiple versions of itself
- where possible
-
-## 1.0.2
-
-- Bump min version of `jsprim` dependency, to include fixes for using
- http-signature with `browserify`
-
-## 1.0.1
-
-- Bump minimum version of `sshpk` dependency, to include fixes for
- whitespace tolerance in key parsing.
-
-## 1.0.0
-
-- First semver release.
-- #36: Ensure verifySignature does not leak useful timing information
-- #42: Bring the library up to the latest version of the spec (including the
- request-target changes)
-- Support for ECDSA keys and signatures.
-- Now uses `sshpk` for key parsing, validation and conversion.
-- Fixes for #21, #47, #39 and compatibility with node 0.8
-
-## 0.11.0
-
-- Split up HMAC and Signature verification to avoid vulnerabilities where a
- key intended for use with one can be validated against the other method
- instead.
-
-## 0.10.2
-
-- Updated versions of most dependencies.
-- Utility functions exported for PEM => SSH-RSA conversion.
-- Improvements to tests and examples.
diff --git a/deps/npm/node_modules/http-signature/LICENSE b/deps/npm/node_modules/http-signature/LICENSE
deleted file mode 100644
index f6d947d2f61..00000000000
--- a/deps/npm/node_modules/http-signature/LICENSE
+++ /dev/null
@@ -1,18 +0,0 @@
-Copyright Joyent, Inc. All rights reserved.
-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/deps/npm/node_modules/http-signature/http_signing.md b/deps/npm/node_modules/http-signature/http_signing.md
deleted file mode 100644
index 4f24d28c3c2..00000000000
--- a/deps/npm/node_modules/http-signature/http_signing.md
+++ /dev/null
@@ -1,363 +0,0 @@
-# Abstract
-
-This document describes a way to add origin authentication, message integrity,
-and replay resistance to HTTP REST requests. It is intended to be used over
-the HTTPS protocol.
-
-# Copyright Notice
-
-Copyright (c) 2011 Joyent, Inc. and the persons identified as document authors.
-All rights reserved.
-
-Code Components extracted from this document must include MIT License text.
-
-# Introduction
-
-This protocol is intended to provide a standard way for clients to sign HTTP
-requests. RFC2617 (HTTP Authentication) defines Basic and Digest authentication
-mechanisms, and RFC5246 (TLS 1.2) defines client-auth, both of which are widely
-employed on the Internet today. However, it is common place that the burdens of
-PKI prevent web service operators from deploying that methodology, and so many
-fall back to Basic authentication, which has poor security characteristics.
-
-Additionally, OAuth provides a fully-specified alternative for authorization
-of web service requests, but is not (always) ideal for machine to machine
-communication, as the key acquisition steps (generally) imply a fixed
-infrastructure that may not make sense to a service provider (e.g., symmetric
-keys).
-
-Several web service providers have invented their own schemes for signing
-HTTP requests, but to date, none have been placed in the public domain as a
-standard. This document serves that purpose. There are no techniques in this
-proposal that are novel beyond previous art, however, this aims to be a simple
-mechanism for signing these requests.
-
-# Signature Authentication Scheme
-
-The "signature" authentication scheme is based on the model that the client must
-authenticate itself with a digital signature produced by either a private
-asymmetric key (e.g., RSA) or a shared symmetric key (e.g., HMAC). The scheme
-is parameterized enough such that it is not bound to any particular key type or
-signing algorithm. However, it does explicitly assume that clients can send an
-HTTP `Date` header.
-
-## Authorization Header
-
-The client is expected to send an Authorization header (as defined in RFC 2617)
-with the following parameterization:
-
- credentials := "Signature" params
- params := 1#(keyId | algorithm | [headers] | [ext] | signature)
- digitalSignature := plain-string
-
- keyId := "keyId" "=" <"> plain-string <">
- algorithm := "algorithm" "=" <"> plain-string <">
- headers := "headers" "=" <"> 1#headers-value <">
- ext := "ext" "=" <"> plain-string <">
- signature := "signature" "=" <"> plain-string <">
-
- headers-value := plain-string
- plain-string = 1*( %x20-21 / %x23-5B / %x5D-7E )
-
-### Signature Parameters
-
-#### keyId
-
-REQUIRED. The `keyId` field is an opaque string that the server can use to look
-up the component they need to validate the signature. It could be an SSH key
-fingerprint, an LDAP DN, etc. Management of keys and assignment of `keyId` is
-out of scope for this document.
-
-#### algorithm
-
-REQUIRED. The `algorithm` parameter is used if the client and server agree on a
-non-standard digital signature algorithm. The full list of supported signature
-mechanisms is listed below.
-
-#### headers
-
-OPTIONAL. The `headers` parameter is used to specify the list of HTTP headers
-used to sign the request. If specified, it should be a quoted list of HTTP
-header names, separated by a single space character. By default, only one
-HTTP header is signed, which is the `Date` header. Note that the list MUST be
-specified in the order the values are concatenated together during signing. To
-include the HTTP request line in the signature calculation, use the special
-`request-line` value. While this is overloading the definition of `headers` in
-HTTP linguism, the request-line is defined in RFC 2616, and as the outlier from
-headers in useful signature calculation, it is deemed simpler to simply use
-`request-line` than to add a separate parameter for it.
-
-#### extensions
-
-OPTIONAL. The `extensions` parameter is used to include additional information
-which is covered by the request. The content and format of the string is out of
-scope for this document, and expected to be specified by implementors.
-
-#### signature
-
-REQUIRED. The `signature` parameter is a `Base64` encoded digital signature
-generated by the client. The client uses the `algorithm` and `headers` request
-parameters to form a canonicalized `signing string`. This `signing string` is
-then signed with the key associated with `keyId` and the algorithm
-corresponding to `algorithm`. The `signature` parameter is then set to the
-`Base64` encoding of the signature.
-
-### Signing String Composition
-
-In order to generate the string that is signed with a key, the client MUST take
-the values of each HTTP header specified by `headers` in the order they appear.
-
-1. If the header name is not `request-line` then append the lowercased header
- name followed with an ASCII colon `:` and an ASCII space ` `.
-2. If the header name is `request-line` then append the HTTP request line,
- otherwise append the header value.
-3. If value is not the last value then append an ASCII newline `\n`. The string
- MUST NOT include a trailing ASCII newline.
-
-# Example Requests
-
-All requests refer to the following request (body omitted):
-
- POST /foo HTTP/1.1
- Host: example.org
- Date: Tue, 07 Jun 2014 20:51:35 GMT
- Content-Type: application/json
- Digest: SHA-256=X48E9qOokqqrvdts8nOJRJN3OWDUoyWxBf7kbu9DBPE=
- Content-Length: 18
-
-The "rsa-key-1" keyId refers to a private key known to the client and a public
-key known to the server. The "hmac-key-1" keyId refers to key known to the
-client and server.
-
-## Default parameterization
-
-The authorization header and signature would be generated as:
-
- Authorization: Signature keyId="rsa-key-1",algorithm="rsa-sha256",signature="Base64(RSA-SHA256(signing string))"
-
-The client would compose the signing string as:
-
- date: Tue, 07 Jun 2014 20:51:35 GMT
-
-## Header List
-
-The authorization header and signature would be generated as:
-
- Authorization: Signature keyId="rsa-key-1",algorithm="rsa-sha256",headers="(request-target) date content-type digest",signature="Base64(RSA-SHA256(signing string))"
-
-The client would compose the signing string as (`+ "\n"` inserted for
-readability):
-
- (request-target) post /foo + "\n"
- date: Tue, 07 Jun 2011 20:51:35 GMT + "\n"
- content-type: application/json + "\n"
- digest: SHA-256=Base64(SHA256(Body))
-
-## Algorithm
-
-The authorization header and signature would be generated as:
-
- Authorization: Signature keyId="hmac-key-1",algorithm="hmac-sha1",signature="Base64(HMAC-SHA1(signing string))"
-
-The client would compose the signing string as:
-
- date: Tue, 07 Jun 2011 20:51:35 GMT
-
-# Signing Algorithms
-
-Currently supported algorithm names are:
-
-* rsa-sha1
-* rsa-sha256
-* rsa-sha512
-* dsa-sha1
-* hmac-sha1
-* hmac-sha256
-* hmac-sha512
-
-# Security Considerations
-
-## Default Parameters
-
-Note the default parameterization of the `Signature` scheme is only safe if all
-requests are carried over a secure transport (i.e., TLS). Sending the default
-scheme over a non-secure transport will leave the request vulnerable to
-spoofing, tampering, replay/repudiation, and integrity violations (if using the
-STRIDE threat-modeling methodology).
-
-## Insecure Transports
-
-If sending the request over plain HTTP, service providers SHOULD require clients
-to sign ALL HTTP headers, and the `request-line`. Additionally, service
-providers SHOULD require `Content-MD5` calculations to be performed to ensure
-against any tampering from clients.
-
-## Nonces
-
-Nonces are out of scope for this document simply because many service providers
-fail to implement them correctly, or do not adopt security specifications
-because of the infrastructure complexity. Given the `header` parameterization,
-a service provider is fully enabled to add nonce semantics into this scheme by
-using something like an `x-request-nonce` header, and ensuring it is signed
-with the `Date` header.
-
-## Clock Skew
-
-As the default scheme is to sign the `Date` header, service providers SHOULD
-protect against logged replay attacks by enforcing a clock skew. The server
-SHOULD be synchronized with NTP, and the recommendation in this specification
-is to allow 300s of clock skew (in either direction).
-
-## Required Headers to Sign
-
-It is out of scope for this document to dictate what headers a service provider
-will want to enforce, but service providers SHOULD at minimum include the
-`Date` header.
-
-# References
-
-## Normative References
-
-* [RFC2616] Hypertext Transfer Protocol -- HTTP/1.1
-* [RFC2617] HTTP Authentication: Basic and Digest Access Authentication
-* [RFC5246] The Transport Layer Security (TLS) Protocol Version 1.2
-
-## Informative References
-
- Name: Mark Cavage (editor)
- Company: Joyent, Inc.
- Email: mark.cavage@joyent.com
- URI: http://www.joyent.com
-
-# Appendix A - Test Values
-
-The following test data uses the RSA (1024b) keys, which we will refer
-to as `keyId=Test` in the following samples:
-
- -----BEGIN PUBLIC KEY-----
- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDCFENGw33yGihy92pDjZQhl0C3
- 6rPJj+CvfSC8+q28hxA161QFNUd13wuCTUcq0Qd2qsBe/2hFyc2DCJJg0h1L78+6
- Z4UMR7EOcpfdUE9Hf3m/hs+FUR45uBJeDK1HSFHD8bHKD6kv8FPGfJTotc+2xjJw
- oYi+1hqp1fIekaxsyQIDAQAB
- -----END PUBLIC KEY-----
-
- -----BEGIN RSA PRIVATE KEY-----
- MIICXgIBAAKBgQDCFENGw33yGihy92pDjZQhl0C36rPJj+CvfSC8+q28hxA161QF
- NUd13wuCTUcq0Qd2qsBe/2hFyc2DCJJg0h1L78+6Z4UMR7EOcpfdUE9Hf3m/hs+F
- UR45uBJeDK1HSFHD8bHKD6kv8FPGfJTotc+2xjJwoYi+1hqp1fIekaxsyQIDAQAB
- AoGBAJR8ZkCUvx5kzv+utdl7T5MnordT1TvoXXJGXK7ZZ+UuvMNUCdN2QPc4sBiA
- QWvLw1cSKt5DsKZ8UETpYPy8pPYnnDEz2dDYiaew9+xEpubyeW2oH4Zx71wqBtOK
- kqwrXa/pzdpiucRRjk6vE6YY7EBBs/g7uanVpGibOVAEsqH1AkEA7DkjVH28WDUg
- f1nqvfn2Kj6CT7nIcE3jGJsZZ7zlZmBmHFDONMLUrXR/Zm3pR5m0tCmBqa5RK95u
- 412jt1dPIwJBANJT3v8pnkth48bQo/fKel6uEYyboRtA5/uHuHkZ6FQF7OUkGogc
- mSJluOdc5t6hI1VsLn0QZEjQZMEOWr+wKSMCQQCC4kXJEsHAve77oP6HtG/IiEn7
- kpyUXRNvFsDE0czpJJBvL/aRFUJxuRK91jhjC68sA7NsKMGg5OXb5I5Jj36xAkEA
- gIT7aFOYBFwGgQAQkWNKLvySgKbAZRTeLBacpHMuQdl1DfdntvAyqpAZ0lY0RKmW
- G6aFKaqQfOXKCyWoUiVknQJAXrlgySFci/2ueKlIE1QqIiLSZ8V8OlpFLRnb1pzI
- 7U1yQXnTAEFYM560yJlzUpOb1V4cScGd365tiSMvxLOvTA==
- -----END RSA PRIVATE KEY-----
-
-And all examples use this request:
-
-<!-- httpreq -->
-
- POST /foo?param=value&pet=dog HTTP/1.1
- Host: example.com
- Date: Thu, 05 Jan 2014 21:31:40 GMT
- Content-Type: application/json
- Digest: SHA-256=X48E9qOokqqrvdts8nOJRJN3OWDUoyWxBf7kbu9DBPE=
- Content-Length: 18
-
- {"hello": "world"}
-
-<!-- /httpreq -->
-
-### Default
-
-The string to sign would be:
-
-<!-- sign {"name": "Default", "options": {"keyId":"Test", "algorithm": "rsa-sha256"}} -->
-<!-- signstring -->
-
- date: Thu, 05 Jan 2014 21:31:40 GMT
-
-<!-- /signstring -->
-
-The Authorization header would be:
-
-<!-- authz -->
-
- Authorization: Signature keyId="Test",algorithm="rsa-sha256",headers="date",signature="jKyvPcxB4JbmYY4mByyBY7cZfNl4OW9HpFQlG7N4YcJPteKTu4MWCLyk+gIr0wDgqtLWf9NLpMAMimdfsH7FSWGfbMFSrsVTHNTk0rK3usrfFnti1dxsM4jl0kYJCKTGI/UWkqiaxwNiKqGcdlEDrTcUhhsFsOIo8VhddmZTZ8w="
-
-<!-- /authz -->
-
-### All Headers
-
-Parameterized to include all headers, the string to sign would be (`+ "\n"`
-inserted for readability):
-
-<!-- sign {"name": "All Headers", "options": {"keyId":"Test", "algorithm": "rsa-sha256", "headers": ["(request-target)", "host", "date", "content-type", "digest", "content-length"]}} -->
-<!-- signstring -->
-
- (request-target): post /foo?param=value&pet=dog
- host: example.com
- date: Thu, 05 Jan 2014 21:31:40 GMT
- content-type: application/json
- digest: SHA-256=X48E9qOokqqrvdts8nOJRJN3OWDUoyWxBf7kbu9DBPE=
- content-length: 18
-
-<!-- /signstring -->
-
-The Authorization header would be:
-
-<!-- authz -->
-
- Authorization: Signature keyId="Test",algorithm="rsa-sha256",headers="(request-target) host date content-type digest content-length",signature="Ef7MlxLXoBovhil3AlyjtBwAL9g4TN3tibLj7uuNB3CROat/9KaeQ4hW2NiJ+pZ6HQEOx9vYZAyi+7cmIkmJszJCut5kQLAwuX+Ms/mUFvpKlSo9StS2bMXDBNjOh4Auj774GFj4gwjS+3NhFeoqyr/MuN6HsEnkvn6zdgfE2i0="
-
-<!-- /authz -->
-
-## Generating and verifying signatures using `openssl`
-
-The `openssl` commandline tool can be used to generate or verify the signatures listed above.
-
-Compose the signing string as usual, and pipe it into the the `openssl dgst` command, then into `openssl enc -base64`, as follows:
-
- $ printf 'date: Thu, 05 Jan 2014 21:31:40 GMT' | \
- openssl dgst -binary -sign /path/to/private.pem -sha256 | \
- openssl enc -base64
- jKyvPcxB4JbmYY4mByyBY7cZfNl4OW9Hp...
- $
-
-The `-sha256` option is necessary to produce an `rsa-sha256` signature. You can select other hash algorithms such as `sha1` by changing this argument.
-
-To verify a signature, first save the signature data, Base64-decoded, into a file, then use `openssl dgst` again with the `-verify` option:
-
- $ echo 'jKyvPcxB4JbmYY4mByy...' | openssl enc -A -d -base64 > signature
- $ printf 'date: Thu, 05 Jan 2014 21:31:40 GMT' | \
- openssl dgst -sha256 -verify /path/to/public.pem -signature ./signature
- Verified OK
- $
-
-## Generating and verifying signatures using `sshpk-sign`
-
-You can also generate and check signatures using the `sshpk-sign` tool which is
-included with the `sshpk` package in `npm`.
-
-Compose the signing string as above, and pipe it into `sshpk-sign` as follows:
-
- $ printf 'date: Thu, 05 Jan 2014 21:31:40 GMT' | \
- sshpk-sign -i /path/to/private.pem
- jKyvPcxB4JbmYY4mByyBY7cZfNl4OW9Hp...
- $
-
-This will produce an `rsa-sha256` signature by default, as you can see using
-the `-v` option:
-
- sshpk-sign: using rsa-sha256 with a 1024 bit key
-
-You can also use `sshpk-verify` in a similar manner:
-
- $ printf 'date: Thu, 05 Jan 2014 21:31:40 GMT' | \
- sshpk-verify -i ./public.pem -s 'jKyvPcxB4JbmYY...'
- OK
- $
diff --git a/deps/npm/node_modules/http-signature/lib/index.js b/deps/npm/node_modules/http-signature/lib/index.js
deleted file mode 100644
index 54d46030f1c..00000000000
--- a/deps/npm/node_modules/http-signature/lib/index.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright 2015 Joyent, Inc.
-
-var parser = require('./parser');
-var signer = require('./signer');
-var verify = require('./verify');
-var utils = require('./utils');
-
-
-
-///--- API
-
-module.exports = {
-
- parse: parser.parseRequest,
- parseRequest: parser.parseRequest,
-
- sign: signer.signRequest,
- signRequest: signer.signRequest,
- createSigner: signer.createSigner,
- isSigner: signer.isSigner,
-
- sshKeyToPEM: utils.sshKeyToPEM,
- sshKeyFingerprint: utils.fingerprint,
- pemToRsaSSHKey: utils.pemToRsaSSHKey,
-
- verify: verify.verifySignature,
- verifySignature: verify.verifySignature,
- verifyHMAC: verify.verifyHMAC
-};
diff --git a/deps/npm/node_modules/http-signature/lib/parser.js b/deps/npm/node_modules/http-signature/lib/parser.js
deleted file mode 100644
index 5994a7e9871..00000000000
--- a/deps/npm/node_modules/http-signature/lib/parser.js
+++ /dev/null
@@ -1,315 +0,0 @@
-// Copyright 2012 Joyent, Inc. All rights reserved.
-
-var assert = require('assert-plus');
-var util = require('util');
-var utils = require('./utils');
-
-
-
-///--- Globals
-
-var HASH_ALGOS = utils.HASH_ALGOS;
-var PK_ALGOS = utils.PK_ALGOS;
-var HttpSignatureError = utils.HttpSignatureError;
-var InvalidAlgorithmError = utils.InvalidAlgorithmError;
-var validateAlgorithm = utils.validateAlgorithm;
-
-var State = {
- New: 0,
- Params: 1
-};
-
-var ParamsState = {
- Name: 0,
- Quote: 1,
- Value: 2,
- Comma: 3
-};
-
-
-///--- Specific Errors
-
-
-function ExpiredRequestError(message) {
- HttpSignatureError.call(this, message, ExpiredRequestError);
-}
-util.inherits(ExpiredRequestError, HttpSignatureError);
-
-
-function InvalidHeaderError(message) {
- HttpSignatureError.call(this, message, InvalidHeaderError);
-}
-util.inherits(InvalidHeaderError, HttpSignatureError);
-
-
-function InvalidParamsError(message) {
- HttpSignatureError.call(this, message, InvalidParamsError);
-}
-util.inherits(InvalidParamsError, HttpSignatureError);
-
-
-function MissingHeaderError(message) {
- HttpSignatureError.call(this, message, MissingHeaderError);
-}
-util.inherits(MissingHeaderError, HttpSignatureError);
-
-function StrictParsingError(message) {
- HttpSignatureError.call(this, message, StrictParsingError);
-}
-util.inherits(StrictParsingError, HttpSignatureError);
-
-///--- Exported API
-
-module.exports = {
-
- /**
- * Parses the 'Authorization' header out of an http.ServerRequest object.
- *
- * Note that this API will fully validate the Authorization header, and throw
- * on any error. It will not however check the signature, or the keyId format
- * as those are specific to your environment. You can use the options object
- * to pass in extra constraints.
- *
- * As a response object you can expect this:
- *
- * {
- * "scheme": "Signature",
- * "params": {
- * "keyId": "foo",
- * "algorithm": "rsa-sha256",
- * "headers": [
- * "date" or "x-date",
- * "digest"
- * ],
- * "signature": "base64"
- * },
- * "signingString": "ready to be passed to crypto.verify()"
- * }
- *
- * @param {Object} request an http.ServerRequest.
- * @param {Object} options an optional options object with:
- * - clockSkew: allowed clock skew in seconds (default 300).
- * - headers: required header names (def: date or x-date)
- * - algorithms: algorithms to support (default: all).
- * - strict: should enforce latest spec parsing
- * (default: false).
- * @return {Object} parsed out object (see above).
- * @throws {TypeError} on invalid input.
- * @throws {InvalidHeaderError} on an invalid Authorization header error.
- * @throws {InvalidParamsError} if the params in the scheme are invalid.
- * @throws {MissingHeaderError} if the params indicate a header not present,
- * either in the request headers from the params,
- * or not in the params from a required header
- * in options.
- * @throws {StrictParsingError} if old attributes are used in strict parsing
- * mode.
- * @throws {ExpiredRequestError} if the value of date or x-date exceeds skew.
- */
- parseRequest: function parseRequest(request, options) {
- assert.object(request, 'request');
- assert.object(request.headers, 'request.headers');
- if (options === undefined) {
- options = {};
- }
- if (options.headers === undefined) {
- options.headers = [request.headers['x-date'] ? 'x-date' : 'date'];
- }
- assert.object(options, 'options');
- assert.arrayOfString(options.headers, 'options.headers');
- assert.optionalFinite(options.clockSkew, 'options.clockSkew');
-
- var authzHeaderName = options.authorizationHeaderName || 'authorization';
-
- if (!request.headers[authzHeaderName]) {
- throw new MissingHeaderError('no ' + authzHeaderName + ' header ' +
- 'present in the request');
- }
-
- options.clockSkew = options.clockSkew || 300;
-
-
- var i = 0;
- var state = State.New;
- var substate = ParamsState.Name;
- var tmpName = '';
- var tmpValue = '';
-
- var parsed = {
- scheme: '',
- params: {},
- signingString: ''
- };
-
- var authz = request.headers[authzHeaderName];
- for (i = 0; i < authz.length; i++) {
- var c = authz.charAt(i);
-
- switch (Number(state)) {
-
- case State.New:
- if (c !== ' ') parsed.scheme += c;
- else state = State.Params;
- break;
-
- case State.Params:
- switch (Number(substate)) {
-
- case ParamsState.Name:
- var code = c.charCodeAt(0);
- // restricted name of A-Z / a-z
- if ((code >= 0x41 && code <= 0x5a) || // A-Z
- (code >= 0x61 && code <= 0x7a)) { // a-z
- tmpName += c;
- } else if (c === '=') {
- if (tmpName.length === 0)
- throw new InvalidHeaderError('bad param format');
- substate = ParamsState.Quote;
- } else {
- throw new InvalidHeaderError('bad param format');
- }
- break;
-
- case ParamsState.Quote:
- if (c === '"') {
- tmpValue = '';
- substate = ParamsState.Value;
- } else {
- throw new InvalidHeaderError('bad param format');
- }
- break;
-
- case ParamsState.Value:
- if (c === '"') {
- parsed.params[tmpName] = tmpValue;
- substate = ParamsState.Comma;
- } else {
- tmpValue += c;
- }
- break;
-
- case ParamsState.Comma:
- if (c === ',') {
- tmpName = '';
- substate = ParamsState.Name;
- } else {
- throw new InvalidHeaderError('bad param format');
- }
- break;
-
- default:
- throw new Error('Invalid substate');
- }
- break;
-
- default:
- throw new Error('Invalid substate');
- }
-
- }
-
- if (!parsed.params.headers || parsed.params.headers === '') {
- if (request.headers['x-date']) {
- parsed.params.headers = ['x-date'];
- } else {
- parsed.params.headers = ['date'];
- }
- } else {
- parsed.params.headers = parsed.params.headers.split(' ');
- }
-
- // Minimally validate the parsed object
- if (!parsed.scheme || parsed.scheme !== 'Signature')
- throw new InvalidHeaderError('scheme was not "Signature"');
-
- if (!parsed.params.keyId)
- throw new InvalidHeaderError('keyId was not specified');
-
- if (!parsed.params.algorithm)
- throw new InvalidHeaderError('algorithm was not specified');
-
- if (!parsed.params.signature)
- throw new InvalidHeaderError('signature was not specified');
-
- // Check the algorithm against the official list
- parsed.params.algorithm = parsed.params.algorithm.toLowerCase();
- try {
- validateAlgorithm(parsed.params.algorithm);
- } catch (e) {
- if (e instanceof InvalidAlgorithmError)
- throw (new InvalidParamsError(parsed.params.algorithm + ' is not ' +
- 'supported'));
- else
- throw (e);
- }
-
- // Build the signingString
- for (i = 0; i < parsed.params.headers.length; i++) {
- var h = parsed.params.headers[i].toLowerCase();
- parsed.params.headers[i] = h;
-
- if (h === 'request-line') {
- if (!options.strict) {
- /*
- * We allow headers from the older spec drafts if strict parsing isn't
- * specified in options.
- */
- parsed.signingString +=
- request.method + ' ' + request.url + ' HTTP/' + request.httpVersion;
- } else {
- /* Strict parsing doesn't allow older draft headers. */
- throw (new StrictParsingError('request-line is not a valid header ' +
- 'with strict parsing enabled.'));
- }
- } else if (h === '(request-target)') {
- parsed.signingString +=
- '(request-target): ' + request.method.toLowerCase() + ' ' +
- request.url;
- } else {
- var value = request.headers[h];
- if (value === undefined)
- throw new MissingHeaderError(h + ' was not in the request');
- parsed.signingString += h + ': ' + value;
- }
-
- if ((i + 1) < parsed.params.headers.length)
- parsed.signingString += '\n';
- }
-
- // Check against the constraints
- var date;
- if (request.headers.date || request.headers['x-date']) {
- if (request.headers['x-date']) {
- date = new Date(request.headers['x-date']);
- } else {
- date = new Date(request.headers.date);
- }
- var now = new Date();
- var skew = Math.abs(now.getTime() - date.getTime());
-
- if (skew > options.clockSkew * 1000) {
- throw new ExpiredRequestError('clock skew of ' +
- (skew / 1000) +
- 's was greater than ' +
- options.clockSkew + 's');
- }
- }
-
- options.headers.forEach(function (hdr) {
- // Remember that we already checked any headers in the params
- // were in the request, so if this passes we're good.
- if (parsed.params.headers.indexOf(hdr.toLowerCase()) < 0)
- throw new MissingHeaderError(hdr + ' was not a signed header');
- });
-
- if (options.algorithms) {
- if (options.algorithms.indexOf(parsed.params.algorithm) === -1)
- throw new InvalidParamsError(parsed.params.algorithm +
- ' is not a supported algorithm');
- }
-
- parsed.algorithm = parsed.params.algorithm.toUpperCase();
- parsed.keyId = parsed.params.keyId;
- return parsed;
- }
-
-};
diff --git a/deps/npm/node_modules/http-signature/lib/signer.js b/deps/npm/node_modules/http-signature/lib/signer.js
deleted file mode 100644
index deb58786790..00000000000
--- a/deps/npm/node_modules/http-signature/lib/signer.js
+++ /dev/null
@@ -1,401 +0,0 @@
-// Copyright 2012 Joyent, Inc. All rights reserved.
-
-var assert = require('assert-plus');
-var crypto = require('crypto');
-var http = require('http');
-var util = require('util');
-var sshpk = require('sshpk');
-var jsprim = require('jsprim');
-var utils = require('./utils');
-
-var sprintf = require('util').format;
-
-var HASH_ALGOS = utils.HASH_ALGOS;
-var PK_ALGOS = utils.PK_ALGOS;
-var InvalidAlgorithmError = utils.InvalidAlgorithmError;
-var HttpSignatureError = utils.HttpSignatureError;
-var validateAlgorithm = utils.validateAlgorithm;
-
-///--- Globals
-
-var AUTHZ_FMT =
- 'Signature keyId="%s",algorithm="%s",headers="%s",signature="%s"';
-
-///--- Specific Errors
-
-function MissingHeaderError(message) {
- HttpSignatureError.call(this, message, MissingHeaderError);
-}
-util.inherits(MissingHeaderError, HttpSignatureError);
-
-function StrictParsingError(message) {
- HttpSignatureError.call(this, message, StrictParsingError);
-}
-util.inherits(StrictParsingError, HttpSignatureError);
-
-/* See createSigner() */
-function RequestSigner(options) {
- assert.object(options, 'options');
-
- var alg = [];
- if (options.algorithm !== undefined) {
- assert.string(options.algorithm, 'options.algorithm');
- alg = validateAlgorithm(options.algorithm);
- }
- this.rs_alg = alg;
-
- /*
- * RequestSigners come in two varieties: ones with an rs_signFunc, and ones
- * with an rs_signer.
- *
- * rs_signFunc-based RequestSigners have to build up their entire signing
- * string within the rs_lines array and give it to rs_signFunc as a single
- * concat'd blob. rs_signer-based RequestSigners can add a line at a time to
- * their signing state by using rs_signer.update(), thus only needing to
- * buffer the hash function state and one line at a time.
- */
- if (options.sign !== undefined) {
- assert.func(options.sign, 'options.sign');
- this.rs_signFunc = options.sign;
-
- } else if (alg[0] === 'hmac' && options.key !== undefined) {
- assert.string(options.keyId, 'options.keyId');
- this.rs_keyId = options.keyId;
-
- if (typeof (options.key) !== 'string' && !Buffer.isBuffer(options.key))
- throw (new TypeError('options.key for HMAC must be a string or Buffer'));
-
- /*
- * Make an rs_signer for HMACs, not a rs_signFunc -- HMACs digest their
- * data in chunks rather than requiring it all to be given in one go
- * at the end, so they are more similar to signers than signFuncs.
- */
- this.rs_signer = crypto.createHmac(alg[1].toUpperCase(), options.key);
- this.rs_signer.sign = function () {
- var digest = this.digest('base64');
- return ({
- hashAlgorithm: alg[1],
- toString: function () { return (digest); }
- });
- };
-
- } else if (options.key !== undefined) {
- var key = options.key;
- if (typeof (key) === 'string' || Buffer.isBuffer(key))
- key = sshpk.parsePrivateKey(key);
-
- assert.ok(sshpk.PrivateKey.isPrivateKey(key, [1, 2]),
- 'options.key must be a sshpk.PrivateKey');
- this.rs_key = key;
-
- assert.string(options.keyId, 'options.keyId');
- this.rs_keyId = options.keyId;
-
- if (!PK_ALGOS[key.type]) {
- throw (new InvalidAlgorithmError(key.type.toUpperCase() + ' type ' +
- 'keys are not supported'));
- }
-
- if (alg[0] !== undefined && key.type !== alg[0]) {
- throw (new InvalidAlgorithmError('options.key must be a ' +
- alg[0].toUpperCase() + ' key, was given a ' +
- key.type.toUpperCase() + ' key instead'));
- }
-
- this.rs_signer = key.createSign(alg[1]);
-
- } else {
- throw (new TypeError('options.sign (func) or options.key is required'));
- }
-
- this.rs_headers = [];
- this.rs_lines = [];
-}
-
-/**
- * Adds a header to be signed, with its value, into this signer.
- *
- * @param {String} header
- * @param {String} value
- * @return {String} value written
- */
-RequestSigner.prototype.writeHeader = function (header, value) {
- assert.string(header, 'header');
- header = header.toLowerCase();
- assert.string(value, 'value');
-
- this.rs_headers.push(header);
-
- if (this.rs_signFunc) {
- this.rs_lines.push(header + ': ' + value);
-
- } else {
- var line = header + ': ' + value;
- if (this.rs_headers.length > 0)
- line = '\n' + line;
- this.rs_signer.update(line);
- }
-
- return (value);
-};
-
-/**
- * Adds a default Date header, returning its value.
- *
- * @return {String}
- */
-RequestSigner.prototype.writeDateHeader = function () {
- return (this.writeHeader('date', jsprim.rfc1123(new Date())));
-};
-
-/**
- * Adds the request target line to be signed.
- *
- * @param {String} method, HTTP method (e.g. 'get', 'post', 'put')
- * @param {String} path
- */
-RequestSigner.prototype.writeTarget = function (method, path) {
- assert.string(method, 'method');
- assert.string(path, 'path');
- method = method.toLowerCase();
- this.writeHeader('(request-target)', method + ' ' + path);
-};
-
-/**
- * Calculate the value for the Authorization header on this request
- * asynchronously.
- *
- * @param {Func} callback (err, authz)
- */
-RequestSigner.prototype.sign = function (cb) {
- assert.func(cb, 'callback');
-
- if (this.rs_headers.length < 1)
- throw (new Error('At least one header must be signed'));
-
- var alg, authz;
- if (this.rs_signFunc) {
- var data = this.rs_lines.join('\n');
- var self = this;
- this.rs_signFunc(data, function (err, sig) {
- if (err) {
- cb(err);
- return;
- }
- try {
- assert.object(sig, 'signature');
- assert.string(sig.keyId, 'signature.keyId');
- assert.string(sig.algorithm, 'signature.algorithm');
- assert.string(sig.signature, 'signature.signature');
- alg = validateAlgorithm(sig.algorithm);
-
- authz = sprintf(AUTHZ_FMT,
- sig.keyId,
- sig.algorithm,
- self.rs_headers.join(' '),
- sig.signature);
- } catch (e) {
- cb(e);
- return;
- }
- cb(null, authz);
- });
-
- } else {
- try {
- var sigObj = this.rs_signer.sign();
- } catch (e) {
- cb(e);
- return;
- }
- alg = (this.rs_alg[0] || this.rs_key.type) + '-' + sigObj.hashAlgorithm;
- var signature = sigObj.toString();
- authz = sprintf(AUTHZ_FMT,
- this.rs_keyId,
- alg,
- this.rs_headers.join(' '),
- signature);
- cb(null, authz);
- }
-};
-
-///--- Exported API
-
-module.exports = {
- /**
- * Identifies whether a given object is a request signer or not.
- *
- * @param {Object} object, the object to identify
- * @returns {Boolean}
- */
- isSigner: function (obj) {
- if (typeof (obj) === 'object' && obj instanceof RequestSigner)
- return (true);
- return (false);
- },
-
- /**
- * Creates a request signer, used to asynchronously build a signature
- * for a request (does not have to be an http.ClientRequest).
- *
- * @param {Object} options, either:
- * - {String} keyId
- * - {String|Buffer} key
- * - {String} algorithm (optional, required for HMAC)
- * or:
- * - {Func} sign (data, cb)
- * @return {RequestSigner}
- */
- createSigner: function createSigner(options) {
- return (new RequestSigner(options));
- },
-
- /**
- * Adds an 'Authorization' header to an http.ClientRequest object.
- *
- * Note that this API will add a Date header if it's not already set. Any
- * other headers in the options.headers array MUST be present, or this
- * will throw.
- *
- * You shouldn't need to check the return type; it's just there if you want
- * to be pedantic.
- *
- * The optional flag indicates whether parsing should use strict enforcement
- * of the version draft-cavage-http-signatures-04 of the spec or beyond.
- * The default is to be loose and support
- * older versions for compatibility.
- *
- * @param {Object} request an instance of http.ClientRequest.
- * @param {Object} options signing parameters object:
- * - {String} keyId required.
- * - {String} key required (either a PEM or HMAC key).
- * - {Array} headers optional; defaults to ['date'].
- * - {String} algorithm optional (unless key is HMAC);
- * default is the same as the sshpk default
- * signing algorithm for the type of key given
- * - {String} httpVersion optional; defaults to '1.1'.
- * - {Boolean} strict optional; defaults to 'false'.
- * @return {Boolean} true if Authorization (and optionally Date) were added.
- * @throws {TypeError} on bad parameter types (input).
- * @throws {InvalidAlgorithmError} if algorithm was bad or incompatible with
- * the given key.
- * @throws {sshpk.KeyParseError} if key was bad.
- * @throws {MissingHeaderError} if a header to be signed was specified but
- * was not present.
- */
- signRequest: function signRequest(request, options) {
- assert.object(request, 'request');
- assert.object(options, 'options');
- assert.optionalString(options.algorithm, 'options.algorithm');
- assert.string(options.keyId, 'options.keyId');
- assert.optionalArrayOfString(options.headers, 'options.headers');
- assert.optionalString(options.httpVersion, 'options.httpVersion');
-
- if (!request.getHeader('Date'))
- request.setHeader('Date', jsprim.rfc1123(new Date()));
- if (!options.headers)
- options.headers = ['date'];
- if (!options.httpVersion)
- options.httpVersion = '1.1';
-
- var alg = [];
- if (options.algorithm) {
- options.algorithm = options.algorithm.toLowerCase();
- alg = validateAlgorithm(options.algorithm);
- }
-
- var i;
- var stringToSign = '';
- for (i = 0; i < options.headers.length; i++) {
- if (typeof (options.headers[i]) !== 'string')
- throw new TypeError('options.headers must be an array of Strings');
-
- var h = options.headers[i].toLowerCase();
-
- if (h === 'request-line') {
- if (!options.strict) {
- /**
- * We allow headers from the older spec drafts if strict parsing isn't
- * specified in options.
- */
- stringToSign +=
- request.method + ' ' + request.path + ' HTTP/' +
- options.httpVersion;
- } else {
- /* Strict parsing doesn't allow older draft headers. */
- throw (new StrictParsingError('request-line is not a valid header ' +
- 'with strict parsing enabled.'));
- }
- } else if (h === '(request-target)') {
- stringToSign +=
- '(request-target): ' + request.method.toLowerCase() + ' ' +
- request.path;
- } else {
- var value = request.getHeader(h);
- if (value === undefined || value === '') {
- throw new MissingHeaderError(h + ' was not in the request');
- }
- stringToSign += h + ': ' + value;
- }
-
- if ((i + 1) < options.headers.length)
- stringToSign += '\n';
- }
-
- /* This is just for unit tests. */
- if (request.hasOwnProperty('_stringToSign')) {
- request._stringToSign = stringToSign;
- }
-
- var signature;
- if (alg[0] === 'hmac') {
- if (typeof (options.key) !== 'string' && !Buffer.isBuffer(options.key))
- throw (new TypeError('options.key must be a string or Buffer'));
-
- var hmac = crypto.createHmac(alg[1].toUpperCase(), options.key);
- hmac.update(stringToSign);
- signature = hmac.digest('base64');
-
- } else {
- var key = options.key;
- if (typeof (key) === 'string' || Buffer.isBuffer(key))
- key = sshpk.parsePrivateKey(options.key);
-
- assert.ok(sshpk.PrivateKey.isPrivateKey(key, [1, 2]),
- 'options.key must be a sshpk.PrivateKey');
-
- if (!PK_ALGOS[key.type]) {
- throw (new InvalidAlgorithmError(key.type.toUpperCase() + ' type ' +
- 'keys are not supported'));
- }
-
- if (alg[0] !== undefined && key.type !== alg[0]) {
- throw (new InvalidAlgorithmError('options.key must be a ' +
- alg[0].toUpperCase() + ' key, was given a ' +
- key.type.toUpperCase() + ' key instead'));
- }
-
- var signer = key.createSign(alg[1]);
- signer.update(stringToSign);
- var sigObj = signer.sign();
- if (!HASH_ALGOS[sigObj.hashAlgorithm]) {
- throw (new InvalidAlgorithmError(sigObj.hashAlgorithm.toUpperCase() +
- ' is not a supported hash algorithm'));
- }
- options.algorithm = key.type + '-' + sigObj.hashAlgorithm;
- signature = sigObj.toString();
- assert.notStrictEqual(signature, '', 'empty signature produced');
- }
-
- var authzHeaderName = options.authorizationHeaderName || 'Authorization';
-
- request.setHeader(authzHeaderName, sprintf(AUTHZ_FMT,
- options.keyId,
- options.algorithm,
- options.headers.join(' '),
- signature));
-
- return true;
- }
-
-};
diff --git a/deps/npm/node_modules/http-signature/lib/utils.js b/deps/npm/node_modules/http-signature/lib/utils.js
deleted file mode 100644
index bbf2aa895a0..00000000000
--- a/deps/npm/node_modules/http-signature/lib/utils.js
+++ /dev/null
@@ -1,112 +0,0 @@
-// Copyright 2012 Joyent, Inc. All rights reserved.
-
-var assert = require('assert-plus');
-var sshpk = require('sshpk');
-var util = require('util');
-
-var HASH_ALGOS = {
- 'sha1': true,
- 'sha256': true,
- 'sha512': true
-};
-
-var PK_ALGOS = {
- 'rsa': true,
- 'dsa': true,
- 'ecdsa': true
-};
-
-function HttpSignatureError(message, caller) {
- if (Error.captureStackTrace)
- Error.captureStackTrace(this, caller || HttpSignatureError);
-
- this.message = message;
- this.name = caller.name;
-}
-util.inherits(HttpSignatureError, Error);
-
-function InvalidAlgorithmError(message) {
- HttpSignatureError.call(this, message, InvalidAlgorithmError);
-}
-util.inherits(InvalidAlgorithmError, HttpSignatureError);
-
-function validateAlgorithm(algorithm) {
- var alg = algorithm.toLowerCase().split('-');
-
- if (alg.length !== 2) {
- throw (new InvalidAlgorithmError(alg[0].toUpperCase() + ' is not a ' +
- 'valid algorithm'));
- }
-
- if (alg[0] !== 'hmac' && !PK_ALGOS[alg[0]]) {
- throw (new InvalidAlgorithmError(alg[0].toUpperCase() + ' type keys ' +
- 'are not supported'));
- }
-
- if (!HASH_ALGOS[alg[1]]) {
- throw (new InvalidAlgorithmError(alg[1].toUpperCase() + ' is not a ' +
- 'supported hash algorithm'));
- }
-
- return (alg);
-}
-
-///--- API
-
-module.exports = {
-
- HASH_ALGOS: HASH_ALGOS,
- PK_ALGOS: PK_ALGOS,
-
- HttpSignatureError: HttpSignatureError,
- InvalidAlgorithmError: InvalidAlgorithmError,
-
- validateAlgorithm: validateAlgorithm,
-
- /**
- * Converts an OpenSSH public key (rsa only) to a PKCS#8 PEM file.
- *
- * The intent of this module is to interoperate with OpenSSL only,
- * specifically the node crypto module's `verify` method.
- *
- * @param {String} key an OpenSSH public key.
- * @return {String} PEM encoded form of the RSA public key.
- * @throws {TypeError} on bad input.
- * @throws {Error} on invalid ssh key formatted data.
- */
- sshKeyToPEM: function sshKeyToPEM(key) {
- assert.string(key, 'ssh_key');
-
- var k = sshpk.parseKey(key, 'ssh');
- return (k.toString('pem'));
- },
-
-
- /**
- * Generates an OpenSSH fingerprint from an ssh public key.
- *
- * @param {String} key an OpenSSH public key.
- * @return {String} key fingerprint.
- * @throws {TypeError} on bad input.
- * @throws {Error} if what you passed doesn't look like an ssh public key.
- */
- fingerprint: function fingerprint(key) {
- assert.string(key, 'ssh_key');
-
- var k = sshpk.parseKey(key, 'ssh');
- return (k.fingerprint('md5').toString('hex'));
- },
-
- /**
- * Converts a PKGCS#8 PEM file to an OpenSSH public key (rsa)
- *
- * The reverse of the above function.
- */
- pemToRsaSSHKey: function pemToRsaSSHKey(pem, comment) {
- assert.equal('string', typeof (pem), 'typeof pem');
-
- var k = sshpk.parseKey(pem, 'pem');
- k.comment = comment;
- return (k.toString('ssh'));
- }
-};
diff --git a/deps/npm/node_modules/http-signature/lib/verify.js b/deps/npm/node_modules/http-signature/lib/verify.js
deleted file mode 100644
index b053fd6bfb1..00000000000
--- a/deps/npm/node_modules/http-signature/lib/verify.js
+++ /dev/null
@@ -1,88 +0,0 @@
-// Copyright 2015 Joyent, Inc.
-
-var assert = require('assert-plus');
-var crypto = require('crypto');
-var sshpk = require('sshpk');
-var utils = require('./utils');
-
-var HASH_ALGOS = utils.HASH_ALGOS;
-var PK_ALGOS = utils.PK_ALGOS;
-var InvalidAlgorithmError = utils.InvalidAlgorithmError;
-var HttpSignatureError = utils.HttpSignatureError;
-var validateAlgorithm = utils.validateAlgorithm;
-
-///--- Exported API
-
-module.exports = {
- /**
- * Verify RSA/DSA signature against public key. You are expected to pass in
- * an object that was returned from `parse()`.
- *
- * @param {Object} parsedSignature the object you got from `parse`.
- * @param {String} pubkey RSA/DSA private key PEM.
- * @return {Boolean} true if valid, false otherwise.
- * @throws {TypeError} if you pass in bad arguments.
- * @throws {InvalidAlgorithmError}
- */
- verifySignature: function verifySignature(parsedSignature, pubkey) {
- assert.object(parsedSignature, 'parsedSignature');
- if (typeof (pubkey) === 'string' || Buffer.isBuffer(pubkey))
- pubkey = sshpk.parseKey(pubkey);
- assert.ok(sshpk.Key.isKey(pubkey, [1, 1]), 'pubkey must be a sshpk.Key');
-
- var alg = validateAlgorithm(parsedSignature.algorithm);
- if (alg[0] === 'hmac' || alg[0] !== pubkey.type)
- return (false);
-
- var v = pubkey.createVerify(alg[1]);
- v.update(parsedSignature.signingString);
- return (v.verify(parsedSignature.params.signature, 'base64'));
- },
-
- /**
- * Verify HMAC against shared secret. You are expected to pass in an object
- * that was returned from `parse()`.
- *
- * @param {Object} parsedSignature the object you got from `parse`.
- * @param {String} secret HMAC shared secret.
- * @return {Boolean} true if valid, false otherwise.
- * @throws {TypeError} if you pass in bad arguments.
- * @throws {InvalidAlgorithmError}
- */
- verifyHMAC: function verifyHMAC(parsedSignature, secret) {
- assert.object(parsedSignature, 'parsedHMAC');
- assert.string(secret, 'secret');
-
- var alg = validateAlgorithm(parsedSignature.algorithm);
- if (alg[0] !== 'hmac')
- return (false);
-
- var hashAlg = alg[1].toUpperCase();
-
- var hmac = crypto.createHmac(hashAlg, secret);
- hmac.update(parsedSignature.signingString);
-
- /*
- * Now double-hash to avoid leaking timing information - there's
- * no easy constant-time compare in JS, so we use this approach
- * instead. See for more info:
- * https://www.isecpartners.com/blog/2011/february/double-hmac-
- * verification.aspx
- */
- var h1 = crypto.createHmac(hashAlg, secret);
- h1.update(hmac.digest());
- h1 = h1.digest();
- var h2 = crypto.createHmac(hashAlg, secret);
- h2.update(new Buffer(parsedSignature.params.signature, 'base64'));
- h2 = h2.digest();
-
- /* Node 0.8 returns strings from .digest(). */
- if (typeof (h1) === 'string')
- return (h1 === h2);
- /* And node 0.10 lacks the .equals() method on Buffers. */
- if (Buffer.isBuffer(h1) && !h1.equals)
- return (h1.toString('binary') === h2.toString('binary'));
-
- return (h1.equals(h2));
- }
-};
diff --git a/deps/npm/node_modules/http-signature/package.json b/deps/npm/node_modules/http-signature/package.json
deleted file mode 100644
index df07d53d752..00000000000
--- a/deps/npm/node_modules/http-signature/package.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "name": "http-signature",
- "description": "Reference implementation of Joyent's HTTP Signature scheme.",
- "version": "1.2.0",
- "license": "MIT",
- "author": "Joyent, Inc",
- "contributors": [
- "Mark Cavage <mcavage@gmail.com>",
- "David I. Lehn <dil@lehn.org>",
- "Patrick Mooney <patrick.f.mooney@gmail.com>"
- ],
- "repository": {
- "type": "git",
- "url": "git://github.com/joyent/node-http-signature.git"
- },
- "homepage": "https://github.com/joyent/node-http-signature/",
- "bugs": "https://github.com/joyent/node-http-signature/issues",
- "keywords": [
- "https",
- "request"
- ],
- "engines": {
- "node": ">=0.8",
- "npm": ">=1.3.7"
- },
- "main": "lib/index.js",
- "scripts": {
- "test": "tap test/*.js"
- },
- "dependencies": {
- "assert-plus": "^1.0.0",
- "jsprim": "^1.2.2",
- "sshpk": "^1.7.0"
- },
- "devDependencies": {
- "tap": "0.4.2",
- "uuid": "^2.0.2"
- }
-}
diff --git a/deps/npm/node_modules/is-core-module/core.json b/deps/npm/node_modules/is-core-module/core.json
index ec741dd946f..5cd90d1732b 100644
--- a/deps/npm/node_modules/is-core-module/core.json
+++ b/deps/npm/node_modules/is-core-module/core.json
@@ -1,105 +1,105 @@
{
"assert": true,
- "node:assert": ">= 16",
+ "node:assert": [">= 14.18 && < 15", ">= 16"],
"assert/strict": ">= 15",
"node:assert/strict": ">= 16",
"async_hooks": ">= 8",
- "node:async_hooks": ">= 16",
+ "node:async_hooks": [">= 14.18 && < 15", ">= 16"],
"buffer_ieee754": "< 0.9.7",
"buffer": true,
- "node:buffer": ">= 16",
+ "node:buffer": [">= 14.18 && < 15", ">= 16"],
"child_process": true,
- "node:child_process": ">= 16",
+ "node:child_process": [">= 14.18 && < 15", ">= 16"],
"cluster": true,
- "node:cluster": ">= 16",
+ "node:cluster": [">= 14.18 && < 15", ">= 16"],
"console": true,
- "node:console": ">= 16",
+ "node:console": [">= 14.18 && < 15", ">= 16"],
"constants": true,
- "node:constants": ">= 16",
+ "node:constants": [">= 14.18 && < 15", ">= 16"],
"crypto": true,
- "node:crypto": ">= 16",
+ "node:crypto": [">= 14.18 && < 15", ">= 16"],
"_debug_agent": ">= 1 && < 8",
"_debugger": "< 8",
"dgram": true,
- "node:dgram": ">= 16",
+ "node:dgram": [">= 14.18 && < 15", ">= 16"],
"diagnostics_channel": [">= 14.17 && < 15", ">= 15.1"],
- "node:diagnostics_channel": ">= 16",
+ "node:diagnostics_channel": [">= 14.18 && < 15", ">= 16"],
"dns": true,
- "node:dns": ">= 16",
+ "node:dns": [">= 14.18 && < 15", ">= 16"],
"dns/promises": ">= 15",
"node:dns/promises": ">= 16",
"domain": ">= 0.7.12",
- "node:domain": ">= 16",
+ "node:domain": [">= 14.18 && < 15", ">= 16"],
"events": true,
- "node:events": ">= 16",
+ "node:events": [">= 14.18 && < 15", ">= 16"],
"freelist": "< 6",
"fs": true,
- "node:fs": ">= 16",
+ "node:fs": [">= 14.18 && < 15", ">= 16"],
"fs/promises": [">= 10 && < 10.1", ">= 14"],
- "node:fs/promises": ">= 16",
+ "node:fs/promises": [">= 14.18 && < 15", ">= 16"],
"_http_agent": ">= 0.11.1",
- "node:_http_agent": ">= 16",
+ "node:_http_agent": [">= 14.18 && < 15", ">= 16"],
"_http_client": ">= 0.11.1",
- "node:_http_client": ">= 16",
+ "node:_http_client": [">= 14.18 && < 15", ">= 16"],
"_http_common": ">= 0.11.1",
- "node:_http_common": ">= 16",
+ "node:_http_common": [">= 14.18 && < 15", ">= 16"],
"_http_incoming": ">= 0.11.1",
- "node:_http_incoming": ">= 16",
+ "node:_http_incoming": [">= 14.18 && < 15", ">= 16"],
"_http_outgoing": ">= 0.11.1",
- "node:_http_outgoing": ">= 16",
+ "node:_http_outgoing": [">= 14.18 && < 15", ">= 16"],
"_http_server": ">= 0.11.1",
- "node:_http_server": ">= 16",
+ "node:_http_server": [">= 14.18 && < 15", ">= 16"],
"http": true,
- "node:http": ">= 16",
+ "node:http": [">= 14.18 && < 15", ">= 16"],
"http2": ">= 8.8",
- "node:http2": ">= 16",
+ "node:http2": [">= 14.18 && < 15", ">= 16"],
"https": true,
- "node:https": ">= 16",
+ "node:https": [">= 14.18 && < 15", ">= 16"],
"inspector": ">= 8",
- "node:inspector": ">= 16",
+ "node:inspector": [">= 14.18 && < 15", ">= 16"],
"_linklist": "< 8",
"module": true,
- "node:module": ">= 16",
+ "node:module": [">= 14.18 && < 15", ">= 16"],
"net": true,
- "node:net": ">= 16",
+ "node:net": [">= 14.18 && < 15", ">= 16"],
"node-inspect/lib/_inspect": ">= 7.6 && < 12",
"node-inspect/lib/internal/inspect_client": ">= 7.6 && < 12",
"node-inspect/lib/internal/inspect_repl": ">= 7.6 && < 12",
"os": true,
- "node:os": ">= 16",
+ "node:os": [">= 14.18 && < 15", ">= 16"],
"path": true,
- "node:path": ">= 16",
+ "node:path": [">= 14.18 && < 15", ">= 16"],
"path/posix": ">= 15.3",
"node:path/posix": ">= 16",
"path/win32": ">= 15.3",
"node:path/win32": ">= 16",
"perf_hooks": ">= 8.5",
- "node:perf_hooks": ">= 16",
+ "node:perf_hooks": [">= 14.18 && < 15", ">= 16"],
"process": ">= 1",
- "node:process": ">= 16",
+ "node:process": [">= 14.18 && < 15", ">= 16"],
"punycode": true,
- "node:punycode": ">= 16",
+ "node:punycode": [">= 14.18 && < 15", ">= 16"],
"querystring": true,
- "node:querystring": ">= 16",
+ "node:querystring": [">= 14.18 && < 15", ">= 16"],
"readline": true,
- "node:readline": ">= 16",
+ "node:readline": [">= 14.18 && < 15", ">= 16"],
"repl": true,
- "node:repl": ">= 16",
+ "node:repl": [">= 14.18 && < 15", ">= 16"],
"smalloc": ">= 0.11.5 && < 3",
"_stream_duplex": ">= 0.9.4",
- "node:_stream_duplex": ">= 16",
+ "node:_stream_duplex": [">= 14.18 && < 15", ">= 16"],
"_stream_transform": ">= 0.9.4",
- "node:_stream_transform": ">= 16",
+ "node:_stream_transform": [">= 14.18 && < 15", ">= 16"],
"_stream_wrap": ">= 1.4.1",
- "node:_stream_wrap": ">= 16",
+ "node:_stream_wrap": [">= 14.18 && < 15", ">= 16"],
"_stream_passthrough": ">= 0.9.4",
- "node:_stream_passthrough": ">= 16",
+ "node:_stream_passthrough": [">= 14.18 && < 15", ">= 16"],
"_stream_readable": ">= 0.9.4",
- "node:_stream_readable": ">= 16",
+ "node:_stream_readable": [">= 14.18 && < 15", ">= 16"],
"_stream_writable": ">= 0.9.4",
- "node:_stream_writable": ">= 16",
+ "node:_stream_writable": [">= 14.18 && < 15", ">= 16"],
"stream": true,
- "node:stream": ">= 16",
+ "node:stream": [">= 14.18 && < 15", ">= 16"],
"stream/consumers": ">= 16.7",
"node:stream/consumers": ">= 16.7",
"stream/promises": ">= 15",
@@ -107,28 +107,28 @@
"stream/web": ">= 16.5",
"node:stream/web": ">= 16.5",
"string_decoder": true,
- "node:string_decoder": ">= 16",
+ "node:string_decoder": [">= 14.18 && < 15", ">= 16"],
"sys": [">= 0.6 && < 0.7", ">= 0.8"],
- "node:sys": ">= 16",
+ "node:sys": [">= 14.18 && < 15", ">= 16"],
"timers": true,
- "node:timers": ">= 16",
+ "node:timers": [">= 14.18 && < 15", ">= 16"],
"timers/promises": ">= 15",
"node:timers/promises": ">= 16",
"_tls_common": ">= 0.11.13",
- "node:_tls_common": ">= 16",
+ "node:_tls_common": [">= 14.18 && < 15", ">= 16"],
"_tls_legacy": ">= 0.11.3 && < 10",
"_tls_wrap": ">= 0.11.3",
- "node:_tls_wrap": ">= 16",
+ "node:_tls_wrap": [">= 14.18 && < 15", ">= 16"],
"tls": true,
- "node:tls": ">= 16",
+ "node:tls": [">= 14.18 && < 15", ">= 16"],
"trace_events": ">= 10",
- "node:trace_events": ">= 16",
+ "node:trace_events": [">= 14.18 && < 15", ">= 16"],
"tty": true,
- "node:tty": ">= 16",
+ "node:tty": [">= 14.18 && < 15", ">= 16"],
"url": true,
- "node:url": ">= 16",
+ "node:url": [">= 14.18 && < 15", ">= 16"],
"util": true,
- "node:util": ">= 16",
+ "node:util": [">= 14.18 && < 15", ">= 16"],
"util/types": ">= 15.3",
"node:util/types": ">= 16",
"v8/tools/arguments": ">= 10 && < 12",
@@ -139,12 +139,12 @@
"v8/tools/profile_view": [">= 4.4 && < 5", ">= 5.2 && < 12"],
"v8/tools/splaytree": [">= 4.4 && < 5", ">= 5.2 && < 12"],
"v8": ">= 1",
- "node:v8": ">= 16",
+ "node:v8": [">= 14.18 && < 15", ">= 16"],
"vm": true,
- "node:vm": ">= 16",
+ "node:vm": [">= 14.18 && < 15", ">= 16"],
"wasi": ">= 13.4 && < 13.5",
"worker_threads": ">= 11.7",
- "node:worker_threads": ">= 16",
+ "node:worker_threads": [">= 14.18 && < 15", ">= 16"],
"zlib": true,
- "node:zlib": ">= 16"
+ "node:zlib": [">= 14.18 && < 15", ">= 16"]
}
diff --git a/deps/npm/node_modules/is-core-module/package.json b/deps/npm/node_modules/is-core-module/package.json
index a12bd4889a6..2b58b2332cd 100644
--- a/deps/npm/node_modules/is-core-module/package.json
+++ b/deps/npm/node_modules/is-core-module/package.json
@@ -1,8 +1,9 @@
{
"name": "is-core-module",
- "version": "2.6.0",
+ "version": "2.7.0",
"description": "Is this specifier a node.js core module?",
"main": "index.js",
+ "sideEffects": false,
"exports": {
".": [
{
@@ -48,7 +49,7 @@
"has": "^1.0.3"
},
"devDependencies": {
- "@ljharb/eslint-config": "^17.6.0",
+ "@ljharb/eslint-config": "^18.0.0",
"aud": "^1.1.5",
"auto-changelog": "^2.3.0",
"eslint": "^7.32.0",
diff --git a/deps/npm/node_modules/is-core-module/test/index.js b/deps/npm/node_modules/is-core-module/test/index.js
index 59a0055e72e..392678e85c6 100644
--- a/deps/npm/node_modules/is-core-module/test/index.js
+++ b/deps/npm/node_modules/is-core-module/test/index.js
@@ -104,5 +104,27 @@ test('core modules', function (t) {
st.end();
});
+ t.test('Object.prototype pollution', function (st) {
+ /* eslint no-extend-native: 1 */
+ var nonKey = 'not a core module';
+ st.teardown(function () {
+ delete Object.prototype.fs;
+ delete Object.prototype.path;
+ delete Object.prototype.http;
+ delete Object.prototype[nonKey];
+ });
+ Object.prototype.fs = false;
+ Object.prototype.path = '>= 999999999';
+ Object.prototype.http = data.http;
+ Object.prototype[nonKey] = true;
+
+ st.equal(isCore('fs'), true, 'fs is a core module even if Object.prototype lies');
+ st.equal(isCore('path'), true, 'path is a core module even if Object.prototype lies');
+ st.equal(isCore('http'), true, 'path is a core module even if Object.prototype matches data');
+ st.equal(isCore(nonKey), false, '"' + nonKey + '" is not a core module even if Object.prototype lies');
+
+ st.end();
+ });
+
t.end();
});
diff --git a/deps/npm/node_modules/isstream/isstream.js b/deps/npm/node_modules/isstream/isstream.js
deleted file mode 100644
index a1d104a7ac5..00000000000
--- a/deps/npm/node_modules/isstream/isstream.js
+++ /dev/null
@@ -1,27 +0,0 @@
-var stream = require('stream')
-
-
-function isStream (obj) {
- return obj instanceof stream.Stream
-}
-
-
-function isReadable (obj) {
- return isStream(obj) && typeof obj._read == 'function' && typeof obj._readableState == 'object'
-}
-
-
-function isWritable (obj) {
- return isStream(obj) && typeof obj._write == 'function' && typeof obj._writableState == 'object'
-}
-
-
-function isDuplex (obj) {
- return isReadable(obj) && isWritable(obj)
-}
-
-
-module.exports = isStream
-module.exports.isReadable = isReadable
-module.exports.isWritable = isWritable
-module.exports.isDuplex = isDuplex
diff --git a/deps/npm/node_modules/isstream/package.json b/deps/npm/node_modules/isstream/package.json
deleted file mode 100644
index 9ee8bf82463..00000000000
--- a/deps/npm/node_modules/isstream/package.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "name": "isstream",
- "version": "0.1.2",
- "description": "Determine if an object is a Stream",
- "main": "isstream.js",
- "scripts": {
- "test": "tar --xform 's/^package/readable-stream-1.0/' -zxf readable-stream-1.0.*.tgz && tar --xform 's/^package/readable-stream-1.1/' -zxf readable-stream-1.1.*.tgz && node test.js; rm -rf readable-stream-1.?/"
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/rvagg/isstream.git"
- },
- "keywords": [
- "stream",
- "type",
- "streams",
- "readable-stream",
- "hippo"
- ],
- "devDependencies": {
- "tape": "~2.12.3",
- "core-util-is": "~1.0.0",
- "isarray": "0.0.1",
- "string_decoder": "~0.10.x",
- "inherits": "~2.0.1"
- },
- "author": "Rod Vagg <rod@vagg.org>",
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/rvagg/isstream/issues"
- },
- "homepage": "https://github.com/rvagg/isstream"
-}
diff --git a/deps/npm/node_modules/isstream/test.js b/deps/npm/node_modules/isstream/test.js
deleted file mode 100644
index 8c950c55e63..00000000000
--- a/deps/npm/node_modules/isstream/test.js
+++ /dev/null
@@ -1,168 +0,0 @@
-var tape = require('tape')
- , EE = require('events').EventEmitter
- , util = require('util')
-
-
- , isStream = require('./')
- , isReadable = require('./').isReadable
- , isWritable = require('./').isWritable
- , isDuplex = require('./').isDuplex
-
- , CoreStreams = require('stream')
- , ReadableStream10 = require('./readable-stream-1.0/')
- , ReadableStream11 = require('./readable-stream-1.1/')
-
-
-function test (pass, type, stream) {
- tape('isStream(' + type + ')', function (t) {
- t.plan(1)
- t.ok(pass === isStream(stream), type)
- })
-}
-
-
-function testReadable (pass, type, stream) {
- tape('isReadable(' + type + ')', function (t) {
- t.plan(1)
- t.ok(pass === isReadable(stream), type)
- })
-}
-
-
-function testWritable (pass, type, stream) {
- tape('isWritable(' + type + ')', function (t) {
- t.plan(1)
- t.ok(pass === isWritable(stream), type)
- })
-}
-
-
-function testDuplex (pass, type, stream) {
- tape('isDuplex(' + type + ')', function (t) {
- t.plan(1)
- t.ok(pass === isDuplex(stream), type)
- })
-}
-
-
-[ undefined, null, '', true, false, 0, 1, 1.0, 'string', {}, function foo () {} ].forEach(function (o) {
- test(false, 'non-stream / primitive: ' + (JSON.stringify(o) || (o && o.toString()) || o), o)
-})
-
-
-test(false, 'fake stream obj', { pipe: function () {} })
-
-
-;(function () {
-
- // looks like a stream!
-
- function Stream () {
- EE.call(this)
- }
- util.inherits(Stream, EE)
- Stream.prototype.pipe = function () {}
- Stream.Stream = Stream
-
- test(false, 'fake stream "new Stream()"', new Stream())
-
-}())
-
-
-test(true, 'CoreStreams.Stream', new (CoreStreams.Stream)())
-test(true, 'CoreStreams.Readable', new (CoreStreams.Readable)())
-test(true, 'CoreStreams.Writable', new (CoreStreams.Writable)())
-test(true, 'CoreStreams.Duplex', new (CoreStreams.Duplex)())
-test(true, 'CoreStreams.Transform', new (CoreStreams.Transform)())
-test(true, 'CoreStreams.PassThrough', new (CoreStreams.PassThrough)())
-
-test(true, 'ReadableStream10.Readable', new (ReadableStream10.Readable)())
-test(true, 'ReadableStream10.Writable', new (ReadableStream10.Writable)())
-test(true, 'ReadableStream10.Duplex', new (ReadableStream10.Duplex)())
-test(true, 'ReadableStream10.Transform', new (ReadableStream10.Transform)())
-test(true, 'ReadableStream10.PassThrough', new (ReadableStream10.PassThrough)())
-
-test(true, 'ReadableStream11.Readable', new (ReadableStream11.Readable)())
-test(true, 'ReadableStream11.Writable', new (ReadableStream11.Writable)())
-test(true, 'ReadableStream11.Duplex', new (ReadableStream11.Duplex)())
-test(true, 'ReadableStream11.Transform', new (ReadableStream11.Transform)())
-test(true, 'ReadableStream11.PassThrough', new (ReadableStream11.PassThrough)())
-
-
-testReadable(false, 'CoreStreams.Stream', new (CoreStreams.Stream)())
-testReadable(true, 'CoreStreams.Readable', new (CoreStreams.Readable)())
-testReadable(false, 'CoreStreams.Writable', new (CoreStreams.Writable)())
-testReadable(true, 'CoreStreams.Duplex', new (CoreStreams.Duplex)())
-testReadable(true, 'CoreStreams.Transform', new (CoreStreams.Transform)())
-testReadable(true, 'CoreStreams.PassThrough', new (CoreStreams.PassThrough)())
-
-testReadable(true, 'ReadableStream10.Readable', new (ReadableStream10.Readable)())
-testReadable(false, 'ReadableStream10.Writable', new (ReadableStream10.Writable)())
-testReadable(true, 'ReadableStream10.Duplex', new (ReadableStream10.Duplex)())
-testReadable(true, 'ReadableStream10.Transform', new (ReadableStream10.Transform)())
-testReadable(true, 'ReadableStream10.PassThrough', new (ReadableStream10.PassThrough)())
-
-testReadable(true, 'ReadableStream11.Readable', new (ReadableStream11.Readable)())
-testReadable(false, 'ReadableStream11.Writable', new (ReadableStream11.Writable)())
-testReadable(true, 'ReadableStream11.Duplex', new (ReadableStream11.Duplex)())
-testReadable(true, 'ReadableStream11.Transform', new (ReadableStream11.Transform)())
-testReadable(true, 'ReadableStream11.PassThrough', new (ReadableStream11.PassThrough)())
-
-
-testWritable(false, 'CoreStreams.Stream', new (CoreStreams.Stream)())
-testWritable(false, 'CoreStreams.Readable', new (CoreStreams.Readable)())
-testWritable(true, 'CoreStreams.Writable', new (CoreStreams.Writable)())
-testWritable(true, 'CoreStreams.Duplex', new (CoreStreams.Duplex)())
-testWritable(true, 'CoreStreams.Transform', new (CoreStreams.Transform)())
-testWritable(true, 'CoreStreams.PassThrough', new (CoreStreams.PassThrough)())
-
-testWritable(false, 'ReadableStream10.Readable', new (ReadableStream10.Readable)())
-testWritable(true, 'ReadableStream10.Writable', new (ReadableStream10.Writable)())
-testWritable(true, 'ReadableStream10.Duplex', new (ReadableStream10.Duplex)())
-testWritable(true, 'ReadableStream10.Transform', new (ReadableStream10.Transform)())
-testWritable(true, 'ReadableStream10.PassThrough', new (ReadableStream10.PassThrough)())
-
-testWritable(false, 'ReadableStream11.Readable', new (ReadableStream11.Readable)())
-testWritable(true, 'ReadableStream11.Writable', new (ReadableStream11.Writable)())
-testWritable(true, 'ReadableStream11.Duplex', new (ReadableStream11.Duplex)())
-testWritable(true, 'ReadableStream11.Transform', new (ReadableStream11.Transform)())
-testWritable(true, 'ReadableStream11.PassThrough', new (ReadableStream11.PassThrough)())
-
-
-testDuplex(false, 'CoreStreams.Stream', new (CoreStreams.Stream)())
-testDuplex(false, 'CoreStreams.Readable', new (CoreStreams.Readable)())
-testDuplex(false, 'CoreStreams.Writable', new (CoreStreams.Writable)())
-testDuplex(true, 'CoreStreams.Duplex', new (CoreStreams.Duplex)())
-testDuplex(true, 'CoreStreams.Transform', new (CoreStreams.Transform)())
-testDuplex(true, 'CoreStreams.PassThrough', new (CoreStreams.PassThrough)())
-
-testDuplex(false, 'ReadableStream10.Readable', new (ReadableStream10.Readable)())
-testDuplex(false, 'ReadableStream10.Writable', new (ReadableStream10.Writable)())
-testDuplex(true, 'ReadableStream10.Duplex', new (ReadableStream10.Duplex)())
-testDuplex(true, 'ReadableStream10.Transform', new (ReadableStream10.Transform)())
-testDuplex(true, 'ReadableStream10.PassThrough', new (ReadableStream10.PassThrough)())
-
-testDuplex(false, 'ReadableStream11.Readable', new (ReadableStream11.Readable)())
-testDuplex(false, 'ReadableStream11.Writable', new (ReadableStream11.Writable)())
-testDuplex(true, 'ReadableStream11.Duplex', new (ReadableStream11.Duplex)())
-testDuplex(true, 'ReadableStream11.Transform', new (ReadableStream11.Transform)())
-testDuplex(true, 'ReadableStream11.PassThrough', new (ReadableStream11.PassThrough)())
-
-
-;[ CoreStreams, ReadableStream10, ReadableStream11 ].forEach(function (p) {
- [ 'Stream', 'Readable', 'Writable', 'Duplex', 'Transform', 'PassThrough' ].forEach(function (k) {
- if (!p[k])
- return
-
- function SubStream () {
- p[k].call(this)
- }
- util.inherits(SubStream, p[k])
-
- test(true, 'Stream subclass: ' + p.name + '.' + k, new SubStream())
-
- })
-})
-
-
-
diff --git a/deps/npm/node_modules/jsbn/LICENSE b/deps/npm/node_modules/jsbn/LICENSE
deleted file mode 100644
index 2a6457e9ef1..00000000000
--- a/deps/npm/node_modules/jsbn/LICENSE
+++ /dev/null
@@ -1,40 +0,0 @@
-Licensing
----------
-
-This software is covered under the following copyright:
-
-/*
- * Copyright (c) 2003-2005 Tom Wu
- * All Rights Reserved.
- *
- * 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" AND WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
- * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
- *
- * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
- * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
- * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * In addition, the following condition applies:
- *
- * All redistributions must retain an intact copy of this copyright notice
- * and disclaimer.
- */
-
-Address all questions regarding this license to:
-
- Tom Wu
- tjw@cs.Stanford.EDU \ No newline at end of file
diff --git a/deps/npm/node_modules/jsbn/example.html b/deps/npm/node_modules/jsbn/example.html
deleted file mode 100644
index 7c26a5665c1..00000000000
--- a/deps/npm/node_modules/jsbn/example.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
- <head>
- <meta charset="utf-8">
- <title></title>
- </head>
- <body>
-
-
- <script src="index.js"></script>
- </body>
-</html> \ No newline at end of file
diff --git a/deps/npm/node_modules/jsbn/example.js b/deps/npm/node_modules/jsbn/example.js
deleted file mode 100644
index 664c1b455bd..00000000000
--- a/deps/npm/node_modules/jsbn/example.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var BigInteger = require('./');
-var a = new BigInteger('91823918239182398123');
-console.log(a.bitLength()); \ No newline at end of file
diff --git a/deps/npm/node_modules/jsbn/index.js b/deps/npm/node_modules/jsbn/index.js
deleted file mode 100644
index 973226ddf9b..00000000000
--- a/deps/npm/node_modules/jsbn/index.js
+++ /dev/null
@@ -1,1357 +0,0 @@
-(function(){
-
- // Copyright (c) 2005 Tom Wu
- // All Rights Reserved.
- // See "LICENSE" for details.
-
- // Basic JavaScript BN library - subset useful for RSA encryption.
-
- // Bits per digit
- var dbits;
-
- // JavaScript engine analysis
- var canary = 0xdeadbeefcafe;
- var j_lm = ((canary&0xffffff)==0xefcafe);
-
- // (public) Constructor
- function BigInteger(a,b,c) {
- if(a != null)
- if("number" == typeof a) this.fromNumber(a,b,c);
- else if(b == null && "string" != typeof a) this.fromString(a,256);
- else this.fromString(a,b);
- }
-
- // return new, unset BigInteger
- function nbi() { return new BigInteger(null); }
-
- // am: Compute w_j += (x*this_i), propagate carries,
- // c is initial carry, returns final carry.
- // c < 3*dvalue, x < 2*dvalue, this_i < dvalue
- // We need to select the fastest one that works in this environment.
-
- // am1: use a single mult and divide to get the high bits,
- // max digit bits should be 26 because
- // max internal value = 2*dvalue^2-2*dvalue (< 2^53)
- function am1(i,x,w,j,c,n) {
- while(--n >= 0) {
- var v = x*this[i++]+w[j]+c;
- c = Math.floor(v/0x4000000);
- w[j++] = v&0x3ffffff;
- }
- return c;
- }
- // am2 avoids a big mult-and-extract completely.
- // Max digit bits should be <= 30 because we do bitwise ops
- // on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)
- function am2(i,x,w,j,c,n) {
- var xl = x&0x7fff, xh = x>>15;
- while(--n >= 0) {
- var l = this[i]&0x7fff;
- var h = this[i++]>>15;
- var m = xh*l+h*xl;
- l = xl*l+((m&0x7fff)<<15)+w[j]+(c&0x3fffffff);
- c = (l>>>30)+(m>>>15)+xh*h+(c>>>30);
- w[j++] = l&0x3fffffff;
- }
- return c;
- }
- // Alternately, set max digit bits to 28 since some
- // browsers slow down when dealing with 32-bit numbers.
- function am3(i,x,w,j,c,n) {
- var xl = x&0x3fff, xh = x>>14;
- while(--n >= 0) {
- var l = this[i]&0x3fff;
- var h = this[i++]>>14;
- var m = xh*l+h*xl;
- l = xl*l+((m&0x3fff)<<14)+w[j]+c;
- c = (l>>28)+(m>>14)+xh*h;
- w[j++] = l&0xfffffff;
- }
- return c;
- }
- var inBrowser = typeof navigator !== "undefined";
- if(inBrowser && j_lm && (navigator.appName == "Microsoft Internet Explorer")) {
- BigInteger.prototype.am = am2;
- dbits = 30;
- }
- else if(inBrowser && j_lm && (navigator.appName != "Netscape")) {
- BigInteger.prototype.am = am1;
- dbits = 26;
- }
- else { // Mozilla/Netscape seems to prefer am3
- BigInteger.prototype.am = am3;
- dbits = 28;
- }
-
- BigInteger.prototype.DB = dbits;
- BigInteger.prototype.DM = ((1<<dbits)-1);
- BigInteger.prototype.DV = (1<<dbits);
-
- var BI_FP = 52;
- BigInteger.prototype.FV = Math.pow(2,BI_FP);
- BigInteger.prototype.F1 = BI_FP-dbits;
- BigInteger.prototype.F2 = 2*dbits-BI_FP;
-
- // Digit conversions
- var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz";
- var BI_RC = new Array();
- var rr,vv;
- rr = "0".charCodeAt(0);
- for(vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv;
- rr = "a".charCodeAt(0);
- for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
- rr = "A".charCodeAt(0);
- for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
-
- function int2char(n) { return BI_RM.charAt(n); }
- function intAt(s,i) {
- var c = BI_RC[s.charCodeAt(i)];
- return (c==null)?-1:c;
- }
-
- // (protected) copy this to r
- function bnpCopyTo(r) {
- for(var i = this.t-1; i >= 0; --i) r[i] = this[i];
- r.t = this.t;
- r.s = this.s;
- }
-
- // (protected) set from integer value x, -DV <= x < DV
- function bnpFromInt(x) {
- this.t = 1;
- this.s = (x<0)?-1:0;
- if(x > 0) this[0] = x;
- else if(x < -1) this[0] = x+this.DV;
- else this.t = 0;
- }
-
- // return bigint initialized to value
- function nbv(i) { var r = nbi(); r.fromInt(i); return r; }
-
- // (protected) set from string and radix
- function bnpFromString(s,b) {
- var k;
- if(b == 16) k = 4;
- else if(b == 8) k = 3;
- else if(b == 256) k = 8; // byte array
- else if(b == 2) k = 1;
- else if(b == 32) k = 5;
- else if(b == 4) k = 2;
- else { this.fromRadix(s,b); return; }
- this.t = 0;
- this.s = 0;
- var i = s.length, mi = false, sh = 0;
- while(--i >= 0) {
- var x = (k==8)?s[i]&0xff:intAt(s,i);
- if(x < 0) {
- if(s.charAt(i) == "-") mi = true;
- continue;
- }
- mi = false;
- if(sh == 0)
- this[this.t++] = x;
- else if(sh+k > this.DB) {
- this[this.t-1] |= (x&((1<<(this.DB-sh))-1))<<sh;
- this[this.t++] = (x>>(this.DB-sh));
- }
- else
- this[this.t-1] |= x<<sh;
- sh += k;
- if(sh >= this.DB) sh -= this.DB;
- }
- if(k == 8 && (s[0]&0x80) != 0) {
- this.s = -1;
- if(sh > 0) this[this.t-1] |= ((1<<(this.DB-sh))-1)<<sh;
- }
- this.clamp();
- if(mi) BigInteger.ZERO.subTo(this,this);
- }
-
- // (protected) clamp off excess high words
- function bnpClamp() {
- var c = this.s&this.DM;
- while(this.t > 0 && this[this.t-1] == c) --this.t;
- }
-
- // (public) return string representation in given radix
- function bnToString(b) {
- if(this.s < 0) return "-"+this.negate().toString(b);
- var k;
- if(b == 16) k = 4;
- else if(b == 8) k = 3;
- else if(b == 2) k = 1;
- else if(b == 32) k = 5;
- else if(b == 4) k = 2;
- else return this.toRadix(b);
- var km = (1<<k)-1, d, m = false, r = "", i = this.t;
- var p = this.DB-(i*this.DB)%k;
- if(i-- > 0) {
- if(p < this.DB && (d = this[i]>>p) > 0) { m = true; r = int2char(d); }
- while(i >= 0) {
- if(p < k) {
- d = (this[i]&((1<<p)-1))<<(k-p);
- d |= this[--i]>>(p+=this.DB-k);
- }
- else {
- d = (this[i]>>(p-=k))&km;
- if(p <= 0) { p += this.DB; --i; }
- }
- if(d > 0) m = true;
- if(m) r += int2char(d);
- }
- }
- return m?r:"0";
- }
-
- // (public) -this
- function bnNegate() { var r = nbi(); BigInteger.ZERO.subTo(this,r); return r; }
-
- // (public) |this|
- function bnAbs() { return (this.s<0)?this.negate():this; }
-
- // (public) return + if this > a, - if this < a, 0 if equal
- function bnCompareTo(a) {
- var r = this.s-a.s;
- if(r != 0) return r;
- var i = this.t;
- r = i-a.t;
- if(r != 0) return (this.s<0)?-r:r;
- while(--i >= 0) if((r=this[i]-a[i]) != 0) return r;
- return 0;
- }
-
- // returns bit length of the integer x
- function nbits(x) {
- var r = 1, t;
- if((t=x>>>16) != 0) { x = t; r += 16; }
- if((t=x>>8) != 0) { x = t; r += 8; }
- if((t=x>>4) != 0) { x = t; r += 4; }
- if((t=x>>2) != 0) { x = t; r += 2; }
- if((t=x>>1) != 0) { x = t; r += 1; }
- return r;
- }
-
- // (public) return the number of bits in "this"
- function bnBitLength() {
- if(this.t <= 0) return 0;
- return this.DB*(this.t-1)+nbits(this[this.t-1]^(this.s&this.DM));
- }
-
- // (protected) r = this << n*DB
- function bnpDLShiftTo(n,r) {
- var i;
- for(i = this.t-1; i >= 0; --i) r[i+n] = this[i];
- for(i = n-1; i >= 0; --i) r[i] = 0;
- r.t = this.t+n;
- r.s = this.s;
- }
-
- // (protected) r = this >> n*DB
- function bnpDRShiftTo(n,r) {
- for(var i = n; i < this.t; ++i) r[i-n] = this[i];
- r.t = Math.max(this.t-n,0);
- r.s = this.s;
- }
-
- // (protected) r = this << n
- function bnpLShiftTo(n,r) {
- var bs = n%this.DB;
- var cbs = this.DB-bs;
- var bm = (1<<cbs)-1;
- var ds = Math.floor(n/this.DB), c = (this.s<<bs)&this.DM, i;
- for(i = this.t-1; i >= 0; --i) {
- r[i+ds+1] = (this[i]>>cbs)|c;
- c = (this[i]&bm)<<bs;
- }
- for(i = ds-1; i >= 0; --i) r[i] = 0;
- r[ds] = c;
- r.t = this.t+ds+1;
- r.s = this.s;
- r.clamp();
- }
-
- // (protected) r = this >> n
- function bnpRShiftTo(n,r) {
- r.s = this.s;
- var ds = Math.floor(n/this.DB);
- if(ds >= this.t) { r.t = 0; return; }
- var bs = n%this.DB;
- var cbs = this.DB-bs;
- var bm = (1<<bs)-1;
- r[0] = this[ds]>>bs;
- for(var i = ds+1; i < this.t; ++i) {
- r[i-ds-1] |= (this[i]&bm)<<cbs;
- r[i-ds] = this[i]>>bs;
- }
- if(bs > 0) r[this.t-ds-1] |= (this.s&bm)<<cbs;
- r.t = this.t-ds;
- r.clamp();
- }
-
- // (protected) r = this - a
- function bnpSubTo(a,r) {
- var i = 0, c = 0, m = Math.min(a.t,this.t);
- while(i < m) {
- c += this[i]-a[i];
- r[i++] = c&this.DM;
- c >>= this.DB;
- }
- if(a.t < this.t) {
- c -= a.s;
- while(i < this.t) {
- c += this[i];
- r[i++] = c&this.DM;
- c >>= this.DB;
- }
- c += this.s;
- }
- else {
- c += this.s;
- while(i < a.t) {
- c -= a[i];
- r[i++] = c&this.DM;
- c >>= this.DB;
- }
- c -= a.s;
- }
- r.s = (c<0)?-1:0;
- if(c < -1) r[i++] = this.DV+c;
- else if(c > 0) r[i++] = c;
- r.t = i;
- r.clamp();
- }
-
- // (protected) r = this * a, r != this,a (HAC 14.12)
- // "this" should be the larger one if appropriate.
- function bnpMultiplyTo(a,r) {
- var x = this.abs(), y = a.abs();
- var i = x.t;
- r.t = i+y.t;
- while(--i >= 0) r[i] = 0;
- for(i = 0; i < y.t; ++i) r[i+x.t] = x.am(0,y[i],r,i,0,x.t);
- r.s = 0;
- r.clamp();
- if(this.s != a.s) BigInteger.ZERO.subTo(r,r);
- }
-
- // (protected) r = this^2, r != this (HAC 14.16)
- function bnpSquareTo(r) {
- var x = this.abs();
- var i = r.t = 2*x.t;
- while(--i >= 0) r[i] = 0;
- for(i = 0; i < x.t-1; ++i) {
- var c = x.am(i,x[i],r,2*i,0,1);
- if((r[i+x.t]+=x.am(i+1,2*x[i],r,2*i+1,c,x.t-i-1)) >= x.DV) {
- r[i+x.t] -= x.DV;
- r[i+x.t+1] = 1;
- }
- }
- if(r.t > 0) r[r.t-1] += x.am(i,x[i],r,2*i,0,1);
- r.s = 0;
- r.clamp();
- }
-
- // (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)
- // r != q, this != m. q or r may be null.
- function bnpDivRemTo(m,q,r) {
- var pm = m.abs();
- if(pm.t <= 0) return;
- var pt = this.abs();
- if(pt.t < pm.t) {
- if(q != null) q.fromInt(0);
- if(r != null) this.copyTo(r);
- return;
- }
- if(r == null) r = nbi();
- var y = nbi(), ts = this.s, ms = m.s;
- var nsh = this.DB-nbits(pm[pm.t-1]); // normalize modulus
- if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); }
- else { pm.copyTo(y); pt.copyTo(r); }
- var ys = y.t;
- var y0 = y[ys-1];
- if(y0 == 0) return;
- var yt = y0*(1<<this.F1)+((ys>1)?y[ys-2]>>this.F2:0);
- var d1 = this.FV/yt, d2 = (1<<this.F1)/yt, e = 1<<this.F2;
- var i = r.t, j = i-ys, t = (q==null)?nbi():q;
- y.dlShiftTo(j,t);
- if(r.compareTo(t) >= 0) {
- r[r.t++] = 1;
- r.subTo(t,r);
- }
- BigInteger.ONE.dlShiftTo(ys,t);
- t.subTo(y,y); // "negative" y so we can replace sub with am later
- while(y.t < ys) y[y.t++] = 0;
- while(--j >= 0) {
- // Estimate quotient digit
- var qd = (r[--i]==y0)?this.DM:Math.floor(r[i]*d1+(r[i-1]+e)*d2);
- if((r[i]+=y.am(0,qd,r,j,0,ys)) < qd) { // Try it out
- y.dlShiftTo(j,t);
- r.subTo(t,r);
- while(r[i] < --qd) r.subTo(t,r);
- }
- }
- if(q != null) {
- r.drShiftTo(ys,q);
- if(ts != ms) BigInteger.ZERO.subTo(q,q);
- }
- r.t = ys;
- r.clamp();
- if(nsh > 0) r.rShiftTo(nsh,r); // Denormalize remainder
- if(ts < 0) BigInteger.ZERO.subTo(r,r);
- }
-
- // (public) this mod a
- function bnMod(a) {
- var r = nbi();
- this.abs().divRemTo(a,null,r);
- if(this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r,r);
- return r;
- }
-
- // Modular reduction using "classic" algorithm
- function Classic(m) { this.m = m; }
- function cConvert(x) {
- if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m);
- else return x;
- }
- function cRevert(x) { return x; }
- function cReduce(x) { x.divRemTo(this.m,null,x); }
- function cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
- function cSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
-
- Classic.prototype.convert = cConvert;
- Classic.prototype.revert = cRevert;
- Classic.prototype.reduce = cReduce;
- Classic.prototype.mulTo = cMulTo;
- Classic.prototype.sqrTo = cSqrTo;
-
- // (protected) return "-1/this % 2^DB"; useful for Mont. reduction
- // justification:
- // xy == 1 (mod m)
- // xy = 1+km
- // xy(2-xy) = (1+km)(1-km)
- // x[y(2-xy)] = 1-k^2m^2
- // x[y(2-xy)] == 1 (mod m^2)
- // if y is 1/x mod m, then y(2-xy) is 1/x mod m^2
- // should reduce x and y(2-xy) by m^2 at each step to keep size bounded.
- // JS multiply "overflows" differently from C/C++, so care is needed here.
- function bnpInvDigit() {
- if(this.t < 1) return 0;
- var x = this[0];
- if((x&1) == 0) return 0;
- var y = x&3; // y == 1/x mod 2^2
- y = (y*(2-(x&0xf)*y))&0xf; // y == 1/x mod 2^4
- y = (y*(2-(x&0xff)*y))&0xff; // y == 1/x mod 2^8
- y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff; // y == 1/x mod 2^16
- // last step - calculate inverse mod DV directly;
- // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints
- y = (y*(2-x*y%this.DV))%this.DV; // y == 1/x mod 2^dbits
- // we really want the negative inverse, and -DV < y < DV
- return (y>0)?this.DV-y:-y;
- }
-
- // Montgomery reduction
- function Montgomery(m) {
- this.m = m;
- this.mp = m.invDigit();
- this.mpl = this.mp&0x7fff;
- this.mph = this.mp>>15;
- this.um = (1<<(m.DB-15))-1;
- this.mt2 = 2*m.t;
- }
-
- // xR mod m
- function montConvert(x) {
- var r = nbi();
- x.abs().dlShiftTo(this.m.t,r);
- r.divRemTo(this.m,null,r);
- if(x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r,r);
- return r;
- }
-
- // x/R mod m
- function montRevert(x) {
- var r = nbi();
- x.copyTo(r);
- this.reduce(r);
- return r;
- }
-
- // x = x/R mod m (HAC 14.32)
- function montReduce(x) {
- while(x.t <= this.mt2) // pad x so am has enough room later
- x[x.t++] = 0;
- for(var i = 0; i < this.m.t; ++i) {
- // faster way of calculating u0 = x[i]*mp mod DV
- var j = x[i]&0x7fff;
- var u0 = (j*this.mpl+(((j*this.mph+(x[i]>>15)*this.mpl)&this.um)<<15))&x.DM;
- // use am to combine the multiply-shift-add into one call
- j = i+this.m.t;
- x[j] += this.m.am(0,u0,x,i,0,this.m.t);
- // propagate carry
- while(x[j] >= x.DV) { x[j] -= x.DV; x[++j]++; }
- }
- x.clamp();
- x.drShiftTo(this.m.t,x);
- if(x.compareTo(this.m) >= 0) x.subTo(this.m,x);
- }
-
- // r = "x^2/R mod m"; x != r
- function montSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
-
- // r = "xy/R mod m"; x,y != r
- function montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
-
- Montgomery.prototype.convert = montConvert;
- Montgomery.prototype.revert = montRevert;
- Montgomery.prototype.reduce = montReduce;
- Montgomery.prototype.mulTo = montMulTo;
- Montgomery.prototype.sqrTo = montSqrTo;
-
- // (protected) true iff this is even
- function bnpIsEven() { return ((this.t>0)?(this[0]&1):this.s) == 0; }
-
- // (protected) this^e, e < 2^32, doing sqr and mul with "r" (HAC 14.79)
- function bnpExp(e,z) {
- if(e > 0xffffffff || e < 1) return BigInteger.ONE;
- var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1;
- g.copyTo(r);
- while(--i >= 0) {
- z.sqrTo(r,r2);
- if((e&(1<<i)) > 0) z.mulTo(r2,g,r);
- else { var t = r; r = r2; r2 = t; }
- }
- return z.revert(r);
- }
-
- // (public) this^e % m, 0 <= e < 2^32
- function bnModPowInt(e,m) {
- var z;
- if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m);
- return this.exp(e,z);
- }
-
- // protected
- BigInteger.prototype.copyTo = bnpCopyTo;
- BigInteger.prototype.fromInt = bnpFromInt;
- BigInteger.prototype.fromString = bnpFromString;
- BigInteger.prototype.clamp = bnpClamp;
- BigInteger.prototype.dlShiftTo = bnpDLShiftTo;
- BigInteger.prototype.drShiftTo = bnpDRShiftTo;
- BigInteger.prototype.lShiftTo = bnpLShiftTo;
- BigInteger.prototype.rShiftTo = bnpRShiftTo;
- BigInteger.prototype.subTo = bnpSubTo;
- BigInteger.prototype.multiplyTo = bnpMultiplyTo;
- BigInteger.prototype.squareTo = bnpSquareTo;
- BigInteger.prototype.divRemTo = bnpDivRemTo;
- BigInteger.prototype.invDigit = bnpInvDigit;
- BigInteger.prototype.isEven = bnpIsEven;
- BigInteger.prototype.exp = bnpExp;
-
- // public
- BigInteger.prototype.toString = bnToString;
- BigInteger.prototype.negate = bnNegate;
- BigInteger.prototype.abs = bnAbs;
- BigInteger.prototype.compareTo = bnCompareTo;
- BigInteger.prototype.bitLength = bnBitLength;
- BigInteger.prototype.mod = bnMod;
- BigInteger.prototype.modPowInt = bnModPowInt;
-
- // "constants"
- BigInteger.ZERO = nbv(0);
- BigInteger.ONE = nbv(1);
-
- // Copyright (c) 2005-2009 Tom Wu
- // All Rights Reserved.
- // See "LICENSE" for details.
-
- // Extended JavaScript BN functions, required for RSA private ops.
-
- // Version 1.1: new BigInteger("0", 10) returns "proper" zero
- // Version 1.2: square() API, isProbablePrime fix
-
- // (public)
- function bnClone() { var r = nbi(); this.copyTo(r); return r; }
-
- // (public) return value as integer
- function bnIntValue() {
- if(this.s < 0) {
- if(this.t == 1) return this[0]-this.DV;
- else if(this.t == 0) return -1;
- }
- else if(this.t == 1) return this[0];
- else if(this.t == 0) return 0;
- // assumes 16 < DB < 32
- return ((this[1]&((1<<(32-this.DB))-1))<<this.DB)|this[0];
- }
-
- // (public) return value as byte
- function bnByteValue() { return (this.t==0)?this.s:(this[0]<<24)>>24; }
-
- // (public) return value as short (assumes DB>=16)
- function bnShortValue() { return (this.t==0)?this.s:(this[0]<<16)>>16; }
-
- // (protected) return x s.t. r^x < DV
- function bnpChunkSize(r) { return Math.floor(Math.LN2*this.DB/Math.log(r)); }
-
- // (public) 0 if this == 0, 1 if this > 0
- function bnSigNum() {
- if(this.s < 0) return -1;
- else if(this.t <= 0 || (this.t == 1 && this[0] <= 0)) return 0;
- else return 1;
- }
-
- // (protected) convert to radix string
- function bnpToRadix(b) {
- if(b == null) b = 10;
- if(this.signum() == 0 || b < 2 || b > 36) return "0";
- var cs = this.chunkSize(b);
- var a = Math.pow(b,cs);
- var d = nbv(a), y = nbi(), z = nbi(), r = "";
- this.divRemTo(d,y,z);
- while(y.signum() > 0) {
- r = (a+z.intValue()).toString(b).substr(1) + r;
- y.divRemTo(d,y,z);
- }
- return z.intValue().toString(b) + r;
- }
-
- // (protected) convert from radix string
- function bnpFromRadix(s,b) {
- this.fromInt(0);
- if(b == null) b = 10;
- var cs = this.chunkSize(b);
- var d = Math.pow(b,cs), mi = false, j = 0, w = 0;
- for(var i = 0; i < s.length; ++i) {
- var x = intAt(s,i);
- if(x < 0) {
- if(s.charAt(i) == "-" && this.signum() == 0) mi = true;
- continue;
- }
- w = b*w+x;
- if(++j >= cs) {
- this.dMultiply(d);
- this.dAddOffset(w,0);
- j = 0;
- w = 0;
- }
- }
- if(j > 0) {
- this.dMultiply(Math.pow(b,j));
- this.dAddOffset(w,0);
- }
- if(mi) BigInteger.ZERO.subTo(this,this);
- }
-
- // (protected) alternate constructor
- function bnpFromNumber(a,b,c) {
- if("number" == typeof b) {
- // new BigInteger(int,int,RNG)
- if(a < 2) this.fromInt(1);
- else {
- this.fromNumber(a,c);
- if(!this.testBit(a-1)) // force MSB set
- this.bitwiseTo(BigInteger.ONE.shiftLeft(a-1),op_or,this);
- if(this.isEven()) this.dAddOffset(1,0); // force odd
- while(!this.isProbablePrime(b)) {
- this.dAddOffset(2,0);
- if(this.bitLength() > a) this.subTo(BigInteger.ONE.shiftLeft(a-1),this);
- }
- }
- }
- else {
- // new BigInteger(int,RNG)
- var x = new Array(), t = a&7;
- x.length = (a>>3)+1;
- b.nextBytes(x);
- if(t > 0) x[0] &= ((1<<t)-1); else x[0] = 0;
- this.fromString(x,256);
- }
- }
-
- // (public) convert to bigendian byte array
- function bnToByteArray() {
- var i = this.t, r = new Array();
- r[0] = this.s;
- var p = this.DB-(i*this.DB)%8, d, k = 0;
- if(i-- > 0) {
- if(p < this.DB && (d = this[i]>>p) != (this.s&this.DM)>>p)
- r[k++] = d|(this.s<<(this.DB-p));
- while(i >= 0) {
- if(p < 8) {
- d = (this[i]&((1<<p)-1))<<(8-p);
- d |= this[--i]>>(p+=this.DB-8);
- }
- else {
- d = (this[i]>>(p-=8))&0xff;
- if(p <= 0) { p += this.DB; --i; }
- }
- if((d&0x80) != 0) d |= -256;
- if(k == 0 && (this.s&0x80) != (d&0x80)) ++k;
- if(k > 0 || d != this.s) r[k++] = d;
- }
- }
- return r;
- }
-
- function bnEquals(a) { return(this.compareTo(a)==0); }
- function bnMin(a) { return(this.compareTo(a)<0)?this:a; }
- function bnMax(a) { return(this.compareTo(a)>0)?this:a; }
-
- // (protected) r = this op a (bitwise)
- function bnpBitwiseTo(a,op,r) {
- var i, f, m = Math.min(a.t,this.t);
- for(i = 0; i < m; ++i) r[i] = op(this[i],a[i]);
- if(a.t < this.t) {
- f = a.s&this.DM;
- for(i = m; i < this.t; ++i) r[i] = op(this[i],f);
- r.t = this.t;
- }
- else {
- f = this.s&this.DM;
- for(i = m; i < a.t; ++i) r[i] = op(f,a[i]);
- r.t = a.t;
- }
- r.s = op(this.s,a.s);
- r.clamp();
- }
-
- // (public) this & a
- function op_and(x,y) { return x&y; }
- function bnAnd(a) { var r = nbi(); this.bitwiseTo(a,op_and,r); return r; }
-
- // (public) this | a
- function op_or(x,y) { return x|y; }
- function bnOr(a) { var r = nbi(); this.bitwiseTo(a,op_or,r); return r; }
-
- // (public) this ^ a
- function op_xor(x,y) { return x^y; }
- function bnXor(a) { var r = nbi(); this.bitwiseTo(a,op_xor,r); return r; }
-
- // (public) this & ~a
- function op_andnot(x,y) { return x&~y; }
- function bnAndNot(a) { var r = nbi(); this.bitwiseTo(a,op_andnot,r); return r; }
-
- // (public) ~this
- function bnNot() {
- var r = nbi();
- for(var i = 0; i < this.t; ++i) r[i] = this.DM&~this[i];
- r.t = this.t;
- r.s = ~this.s;
- return r;
- }
-
- // (public) this << n
- function bnShiftLeft(n) {
- var r = nbi();
- if(n < 0) this.rShiftTo(-n,r); else this.lShiftTo(n,r);
- return r;
- }
-
- // (public) this >> n
- function bnShiftRight(n) {
- var r = nbi();
- if(n < 0) this.lShiftTo(-n,r); else this.rShiftTo(n,r);
- return r;
- }
-
- // return index of lowest 1-bit in x, x < 2^31
- function lbit(x) {
- if(x == 0) return -1;
- var r = 0;
- if((x&0xffff) == 0) { x >>= 16; r += 16; }
- if((x&0xff) == 0) { x >>= 8; r += 8; }
- if((x&0xf) == 0) { x >>= 4; r += 4; }
- if((x&3) == 0) { x >>= 2; r += 2; }
- if((x&1) == 0) ++r;
- return r;
- }
-
- // (public) returns index of lowest 1-bit (or -1 if none)
- function bnGetLowestSetBit() {
- for(var i = 0; i < this.t; ++i)
- if(this[i] != 0) return i*this.DB+lbit(this[i]);
- if(this.s < 0) return this.t*this.DB;
- return -1;
- }
-
- // return number of 1 bits in x
- function cbit(x) {
- var r = 0;
- while(x != 0) { x &= x-1; ++r; }
- return r;
- }
-
- // (public) return number of set bits
- function bnBitCount() {
- var r = 0, x = this.s&this.DM;
- for(var i = 0; i < this.t; ++i) r += cbit(this[i]^x);
- return r;
- }
-
- // (public) true iff nth bit is set
- function bnTestBit(n) {
- var j = Math.floor(n/this.DB);
- if(j >= this.t) return(this.s!=0);
- return((this[j]&(1<<(n%this.DB)))!=0);
- }
-
- // (protected) this op (1<<n)
- function bnpChangeBit(n,op) {
- var r = BigInteger.ONE.shiftLeft(n);
- this.bitwiseTo(r,op,r);
- return r;
- }
-
- // (public) this | (1<<n)
- function bnSetBit(n) { return this.changeBit(n,op_or); }
-
- // (public) this & ~(1<<n)
- function bnClearBit(n) { return this.changeBit(n,op_andnot); }
-
- // (public) this ^ (1<<n)
- function bnFlipBit(n) { return this.changeBit(n,op_xor); }
-
- // (protected) r = this + a
- function bnpAddTo(a,r) {
- var i = 0, c = 0, m = Math.min(a.t,this.t);
- while(i < m) {
- c += this[i]+a[i];
- r[i++] = c&this.DM;
- c >>= this.DB;
- }
- if(a.t < this.t) {
- c += a.s;
- while(i < this.t) {
- c += this[i];
- r[i++] = c&this.DM;
- c >>= this.DB;
- }
- c += this.s;
- }
- else {
- c += this.s;
- while(i < a.t) {
- c += a[i];
- r[i++] = c&this.DM;
- c >>= this.DB;
- }
- c += a.s;
- }
- r.s = (c<0)?-1:0;
- if(c > 0) r[i++] = c;
- else if(c < -1) r[i++] = this.DV+c;
- r.t = i;
- r.clamp();
- }
-
- // (public) this + a
- function bnAdd(a) { var r = nbi(); this.addTo(a,r); return r; }
-
- // (public) this - a
- function bnSubtract(a) { var r = nbi(); this.subTo(a,r); return r; }
-
- // (public) this * a
- function bnMultiply(a) { var r = nbi(); this.multiplyTo(a,r); return r; }
-
- // (public) this^2
- function bnSquare() { var r = nbi(); this.squareTo(r); return r; }
-
- // (public) this / a
- function bnDivide(a) { var r = nbi(); this.divRemTo(a,r,null); return r; }
-
- // (public) this % a
- function bnRemainder(a) { var r = nbi(); this.divRemTo(a,null,r); return r; }
-
- // (public) [this/a,this%a]
- function bnDivideAndRemainder(a) {
- var q = nbi(), r = nbi();
- this.divRemTo(a,q,r);
- return new Array(q,r);
- }
-
- // (protected) this *= n, this >= 0, 1 < n < DV
- function bnpDMultiply(n) {
- this[this.t] = this.am(0,n-1,this,0,0,this.t);
- ++this.t;
- this.clamp();
- }
-
- // (protected) this += n << w words, this >= 0
- function bnpDAddOffset(n,w) {
- if(n == 0) return;
- while(this.t <= w) this[this.t++] = 0;
- this[w] += n;
- while(this[w] >= this.DV) {
- this[w] -= this.DV;
- if(++w >= this.t) this[this.t++] = 0;
- ++this[w];
- }
- }
-
- // A "null" reducer
- function NullExp() {}
- function nNop(x) { return x; }
- function nMulTo(x,y,r) { x.multiplyTo(y,r); }
- function nSqrTo(x,r) { x.squareTo(r); }
-
- NullExp.prototype.convert = nNop;
- NullExp.prototype.revert = nNop;
- NullExp.prototype.mulTo = nMulTo;
- NullExp.prototype.sqrTo = nSqrTo;
-
- // (public) this^e
- function bnPow(e) { return this.exp(e,new NullExp()); }
-
- // (protected) r = lower n words of "this * a", a.t <= n
- // "this" should be the larger one if appropriate.
- function bnpMultiplyLowerTo(a,n,r) {
- var i = Math.min(this.t+a.t,n);
- r.s = 0; // assumes a,this >= 0
- r.t = i;
- while(i > 0) r[--i] = 0;
- var j;
- for(j = r.t-this.t; i < j; ++i) r[i+this.t] = this.am(0,a[i],r,i,0,this.t);
- for(j = Math.min(a.t,n); i < j; ++i) this.am(0,a[i],r,i,0,n-i);
- r.clamp();
- }
-
- // (protected) r = "this * a" without lower n words, n > 0
- // "this" should be the larger one if appropriate.
- function bnpMultiplyUpperTo(a,n,r) {
- --n;
- var i = r.t = this.t+a.t-n;
- r.s = 0; // assumes a,this >= 0
- while(--i >= 0) r[i] = 0;
- for(i = Math.max(n-this.t,0); i < a.t; ++i)
- r[this.t+i-n] = this.am(n-i,a[i],r,0,0,this.t+i-n);
- r.clamp();
- r.drShiftTo(1,r);
- }
-
- // Barrett modular reduction
- function Barrett(m) {
- // setup Barrett
- this.r2 = nbi();
- this.q3 = nbi();
- BigInteger.ONE.dlShiftTo(2*m.t,this.r2);
- this.mu = this.r2.divide(m);
- this.m = m;
- }
-
- function barrettConvert(x) {
- if(x.s < 0 || x.t > 2*this.m.t) return x.mod(this.m);
- else if(x.compareTo(this.m) < 0) return x;
- else { var r = nbi(); x.copyTo(r); this.reduce(r); return r; }
- }
-
- function barrettRevert(x) { return x; }
-
- // x = x mod m (HAC 14.42)
- function barrettReduce(x) {
- x.drShiftTo(this.m.t-1,this.r2);
- if(x.t > this.m.t+1) { x.t = this.m.t+1; x.clamp(); }
- this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3);
- this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);
- while(x.compareTo(this.r2) < 0) x.dAddOffset(1,this.m.t+1);
- x.subTo(this.r2,x);
- while(x.compareTo(this.m) >= 0) x.subTo(this.m,x);
- }
-
- // r = x^2 mod m; x != r
- function barrettSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
-
- // r = x*y mod m; x,y != r
- function barrettMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
-
- Barrett.prototype.convert = barrettConvert;
- Barrett.prototype.revert = barrettRevert;
- Barrett.prototype.reduce = barrettReduce;
- Barrett.prototype.mulTo = barrettMulTo;
- Barrett.prototype.sqrTo = barrettSqrTo;
-
- // (public) this^e % m (HAC 14.85)
- function bnModPow(e,m) {
- var i = e.bitLength(), k, r = nbv(1), z;
- if(i <= 0) return r;
- else if(i < 18) k = 1;
- else if(i < 48) k = 3;
- else if(i < 144) k = 4;
- else if(i < 768) k = 5;
- else k = 6;
- if(i < 8)
- z = new Classic(m);
- else if(m.isEven())
- z = new Barrett(m);
- else
- z = new Montgomery(m);
-
- // precomputation
- var g = new Array(), n = 3, k1 = k-1, km = (1<<k)-1;
- g[1] = z.convert(this);
- if(k > 1) {
- var g2 = nbi();
- z.sqrTo(g[1],g2);
- while(n <= km) {
- g[n] = nbi();
- z.mulTo(g2,g[n-2],g[n]);
- n += 2;
- }
- }
-
- var j = e.t-1, w, is1 = true, r2 = nbi(), t;
- i = nbits(e[j])-1;
- while(j >= 0) {
- if(i >= k1) w = (e[j]>>(i-k1))&km;
- else {
- w = (e[j]&((1<<(i+1))-1))<<(k1-i);
- if(j > 0) w |= e[j-1]>>(this.DB+i-k1);
- }
-
- n = k;
- while((w&1) == 0) { w >>= 1; --n; }
- if((i -= n) < 0) { i += this.DB; --j; }
- if(is1) { // ret == 1, don't bother squaring or multiplying it
- g[w].copyTo(r);
- is1 = false;
- }
- else {
- while(n > 1) { z.sqrTo(r,r2); z.sqrTo(r2,r); n -= 2; }
- if(n > 0) z.sqrTo(r,r2); else { t = r; r = r2; r2 = t; }
- z.mulTo(r2,g[w],r);
- }
-
- while(j >= 0 && (e[j]&(1<<i)) == 0) {
- z.sqrTo(r,r2); t = r; r = r2; r2 = t;
- if(--i < 0) { i = this.DB-1; --j; }
- }
- }
- return z.revert(r);
- }
-
- // (public) gcd(this,a) (HAC 14.54)
- function bnGCD(a) {
- var x = (this.s<0)?this.negate():this.clone();
- var y = (a.s<0)?a.negate():a.clone();
- if(x.compareTo(y) < 0) { var t = x; x = y; y = t; }
- var i = x.getLowestSetBit(), g = y.getLowestSetBit();
- if(g < 0) return x;
- if(i < g) g = i;
- if(g > 0) {
- x.rShiftTo(g,x);
- y.rShiftTo(g,y);
- }
- while(x.signum() > 0) {
- if((i = x.getLowestSetBit()) > 0) x.rShiftTo(i,x);
- if((i = y.getLowestSetBit()) > 0) y.rShiftTo(i,y);
- if(x.compareTo(y) >= 0) {
- x.subTo(y,x);
- x.rShiftTo(1,x);
- }
- else {
- y.subTo(x,y);
- y.rShiftTo(1,y);
- }
- }
- if(g > 0) y.lShiftTo(g,y);
- return y;
- }
-
- // (protected) this % n, n < 2^26
- function bnpModInt(n) {
- if(n <= 0) return 0;
- var d = this.DV%n, r = (this.s<0)?n-1:0;
- if(this.t > 0)
- if(d == 0) r = this[0]%n;
- else for(var i = this.t-1; i >= 0; --i) r = (d*r+this[i])%n;
- return r;
- }
-
- // (public) 1/this % m (HAC 14.61)
- function bnModInverse(m) {
- var ac = m.isEven();
- if((this.isEven() && ac) || m.signum() == 0) return BigInteger.ZERO;
- var u = m.clone(), v = this.clone();
- var a = nbv(1), b = nbv(0), c = nbv(0), d = nbv(1);
- while(u.signum() != 0) {
- while(u.isEven()) {
- u.rShiftTo(1,u);
- if(ac) {
- if(!a.isEven() || !b.isEven()) { a.addTo(this,a); b.subTo(m,b); }
- a.rShiftTo(1,a);
- }
- else if(!b.isEven()) b.subTo(m,b);
- b.rShiftTo(1,b);
- }
- while(v.isEven()) {
- v.rShiftTo(1,v);
- if(ac) {
- if(!c.isEven() || !d.isEven()) { c.addTo(this,c); d.subTo(m,d); }
- c.rShiftTo(1,c);
- }
- else if(!d.isEven()) d.subTo(m,d);
- d.rShiftTo(1,d);
- }
- if(u.compareTo(v) >= 0) {
- u.subTo(v,u);
- if(ac) a.subTo(c,a);
- b.subTo(d,b);
- }
- else {
- v.subTo(u,v);
- if(ac) c.subTo(a,c);
- d.subTo(b,d);
- }
- }
- if(v.compareTo(BigInteger.ONE) != 0) return BigInteger.ZERO;
- if(d.compareTo(m) >= 0) return d.subtract(m);
- if(d.signum() < 0) d.addTo(m,d); else return d;
- if(d.signum() < 0) return d.add(m); else return d;
- }
-
- var lowprimes = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997];
- var lplim = (1<<26)/lowprimes[lowprimes.length-1];
-
- // (public) test primality with certainty >= 1-.5^t
- function bnIsProbablePrime(t) {
- var i, x = this.abs();
- if(x.t == 1 && x[0] <= lowprimes[lowprimes.length-1]) {
- for(i = 0; i < lowprimes.length; ++i)
- if(x[0] == lowprimes[i]) return true;
- return false;
- }
- if(x.isEven()) return false;
- i = 1;
- while(i < lowprimes.length) {
- var m = lowprimes[i], j = i+1;
- while(j < lowprimes.length && m < lplim) m *= lowprimes[j++];
- m = x.modInt(m);
- while(i < j) if(m%lowprimes[i++] == 0) return false;
- }
- return x.millerRabin(t);
- }
-
- // (protected) true if probably prime (HAC 4.24, Miller-Rabin)
- function bnpMillerRabin(t) {
- var n1 = this.subtract(BigInteger.ONE);
- var k = n1.getLowestSetBit();
- if(k <= 0) return false;
- var r = n1.shiftRight(k);
- t = (t+1)>>1;
- if(t > lowprimes.length) t = lowprimes.length;
- var a = nbi();
- for(var i = 0; i < t; ++i) {
- //Pick bases at random, instead of starting at 2
- a.fromInt(lowprimes[Math.floor(Math.random()*lowprimes.length)]);
- var y = a.modPow(r,this);
- if(y.compareTo(BigInteger.ONE) != 0 && y.compareTo(n1) != 0) {
- var j = 1;
- while(j++ < k && y.compareTo(n1) != 0) {
- y = y.modPowInt(2,this);
- if(y.compareTo(BigInteger.ONE) == 0) return false;
- }
- if(y.compareTo(n1) != 0) return false;
- }
- }
- return true;
- }
-
- // protected
- BigInteger.prototype.chunkSize = bnpChunkSize;
- BigInteger.prototype.toRadix = bnpToRadix;
- BigInteger.prototype.fromRadix = bnpFromRadix;
- BigInteger.prototype.fromNumber = bnpFromNumber;
- BigInteger.prototype.bitwiseTo = bnpBitwiseTo;
- BigInteger.prototype.changeBit = bnpChangeBit;
- BigInteger.prototype.addTo = bnpAddTo;
- BigInteger.prototype.dMultiply = bnpDMultiply;
- BigInteger.prototype.dAddOffset = bnpDAddOffset;
- BigInteger.prototype.multiplyLowerTo = bnpMultiplyLowerTo;
- BigInteger.prototype.multiplyUpperTo = bnpMultiplyUpperTo;
- BigInteger.prototype.modInt = bnpModInt;
- BigInteger.prototype.millerRabin = bnpMillerRabin;
-
- // public
- BigInteger.prototype.clone = bnClone;
- BigInteger.prototype.intValue = bnIntValue;
- BigInteger.prototype.byteValue = bnByteValue;
- BigInteger.prototype.shortValue = bnShortValue;
- BigInteger.prototype.signum = bnSigNum;
- BigInteger.prototype.toByteArray = bnToByteArray;
- BigInteger.prototype.equals = bnEquals;
- BigInteger.prototype.min = bnMin;
- BigInteger.prototype.max = bnMax;
- BigInteger.prototype.and = bnAnd;
- BigInteger.prototype.or = bnOr;
- BigInteger.prototype.xor = bnXor;
- BigInteger.prototype.andNot = bnAndNot;
- BigInteger.prototype.not = bnNot;
- BigInteger.prototype.shiftLeft = bnShiftLeft;
- BigInteger.prototype.shiftRight = bnShiftRight;
- BigInteger.prototype.getLowestSetBit = bnGetLowestSetBit;
- BigInteger.prototype.bitCount = bnBitCount;
- BigInteger.prototype.testBit = bnTestBit;
- BigInteger.prototype.setBit = bnSetBit;
- BigInteger.prototype.clearBit = bnClearBit;
- BigInteger.prototype.flipBit = bnFlipBit;
- BigInteger.prototype.add = bnAdd;
- BigInteger.prototype.subtract = bnSubtract;
- BigInteger.prototype.multiply = bnMultiply;
- BigInteger.prototype.divide = bnDivide;
- BigInteger.prototype.remainder = bnRemainder;
- BigInteger.prototype.divideAndRemainder = bnDivideAndRemainder;
- BigInteger.prototype.modPow = bnModPow;
- BigInteger.prototype.modInverse = bnModInverse;
- BigInteger.prototype.pow = bnPow;
- BigInteger.prototype.gcd = bnGCD;
- BigInteger.prototype.isProbablePrime = bnIsProbablePrime;
-
- // JSBN-specific extension
- BigInteger.prototype.square = bnSquare;
-
- // Expose the Barrett function
- BigInteger.prototype.Barrett = Barrett
-
- // BigInteger interfaces not implemented in jsbn:
-
- // BigInteger(int signum, byte[] magnitude)
- // double doubleValue()
- // float floatValue()
- // int hashCode()
- // long longValue()
- // static BigInteger valueOf(long val)
-
- // Random number generator - requires a PRNG backend, e.g. prng4.js
-
- // For best results, put code like
- // <body onClick='rng_seed_time();' onKeyPress='rng_seed_time();'>
- // in your main HTML document.
-
- var rng_state;
- var rng_pool;
- var rng_pptr;
-
- // Mix in a 32-bit integer into the pool
- function rng_seed_int(x) {
- rng_pool[rng_pptr++] ^= x & 255;
- rng_pool[rng_pptr++] ^= (x >> 8) & 255;
- rng_pool[rng_pptr++] ^= (x >> 16) & 255;
- rng_pool[rng_pptr++] ^= (x >> 24) & 255;
- if(rng_pptr >= rng_psize) rng_pptr -= rng_psize;
- }
-
- // Mix in the current time (w/milliseconds) into the pool
- function rng_seed_time() {
- rng_seed_int(new Date().getTime());
- }
-
- // Initialize the pool with junk if needed.
- if(rng_pool == null) {
- rng_pool = new Array();
- rng_pptr = 0;
- var t;
- if(typeof window !== "undefined" && window.crypto) {
- if (window.crypto.getRandomValues) {
- // Use webcrypto if available
- var ua = new Uint8Array(32);
- window.crypto.getRandomValues(ua);
- for(t = 0; t < 32; ++t)
- rng_pool[rng_pptr++] = ua[t];
- }
- else if(navigator.appName == "Netscape" && navigator.appVersion < "5") {
- // Extract entropy (256 bits) from NS4 RNG if available
- var z = window.crypto.random(32);
- for(t = 0; t < z.length; ++t)
- rng_pool[rng_pptr++] = z.charCodeAt(t) & 255;
- }
- }
- while(rng_pptr < rng_psize) { // extract some randomness from Math.random()
- t = Math.floor(65536 * Math.random());
- rng_pool[rng_pptr++] = t >>> 8;
- rng_pool[rng_pptr++] = t & 255;
- }
- rng_pptr = 0;
- rng_seed_time();
- //rng_seed_int(window.screenX);
- //rng_seed_int(window.screenY);
- }
-
- function rng_get_byte() {
- if(rng_state == null) {
- rng_seed_time();
- rng_state = prng_newstate();
- rng_state.init(rng_pool);
- for(rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr)
- rng_pool[rng_pptr] = 0;
- rng_pptr = 0;
- //rng_pool = null;
- }
- // TODO: allow reseeding after first request
- return rng_state.next();
- }
-
- function rng_get_bytes(ba) {
- var i;
- for(i = 0; i < ba.length; ++i) ba[i] = rng_get_byte();
- }
-
- function SecureRandom() {}
-
- SecureRandom.prototype.nextBytes = rng_get_bytes;
-
- // prng4.js - uses Arcfour as a PRNG
-
- function Arcfour() {
- this.i = 0;
- this.j = 0;
- this.S = new Array();
- }
-
- // Initialize arcfour context from key, an array of ints, each from [0..255]
- function ARC4init(key) {
- var i, j, t;
- for(i = 0; i < 256; ++i)
- this.S[i] = i;
- j = 0;
- for(i = 0; i < 256; ++i) {
- j = (j + this.S[i] + key[i % key.length]) & 255;
- t = this.S[i];
- this.S[i] = this.S[j];
- this.S[j] = t;
- }
- this.i = 0;
- this.j = 0;
- }
-
- function ARC4next() {
- var t;
- this.i = (this.i + 1) & 255;
- this.j = (this.j + this.S[this.i]) & 255;
- t = this.S[this.i];
- this.S[this.i] = this.S[this.j];
- this.S[this.j] = t;
- return this.S[(t + this.S[this.i]) & 255];
- }
-
- Arcfour.prototype.init = ARC4init;
- Arcfour.prototype.next = ARC4next;
-
- // Plug in your RNG constructor here
- function prng_newstate() {
- return new Arcfour();
- }
-
- // Pool size must be a multiple of 4 and greater than 32.
- // An array of bytes the size of the pool will be passed to init()
- var rng_psize = 256;
-
- BigInteger.SecureRandom = SecureRandom;
- BigInteger.BigInteger = BigInteger;
- if (typeof exports !== 'undefined') {
- exports = module.exports = BigInteger;
- } else {
- this.BigInteger = BigInteger;
- this.SecureRandom = SecureRandom;
- }
-
-}).call(this);
diff --git a/deps/npm/node_modules/jsbn/package.json b/deps/npm/node_modules/jsbn/package.json
deleted file mode 100644
index 7220c19f575..00000000000
--- a/deps/npm/node_modules/jsbn/package.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "name": "jsbn",
- "version": "0.1.1",
- "description": "The jsbn library is a fast, portable implementation of large-number math in pure JavaScript, enabling public-key crypto and other applications on desktop and mobile browsers.",
- "main": "index.js",
- "scripts": {
- "test": "mocha test.js"
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/andyperlitch/jsbn.git"
- },
- "keywords": [
- "biginteger",
- "bignumber",
- "big",
- "integer"
- ],
- "author": "Tom Wu",
- "license": "MIT"
-}
diff --git a/deps/npm/node_modules/json-schema-traverse/LICENSE b/deps/npm/node_modules/json-schema-traverse/LICENSE
deleted file mode 100644
index 7f1543566f6..00000000000
--- a/deps/npm/node_modules/json-schema-traverse/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2017 Evgeny Poberezkin
-
-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/deps/npm/node_modules/json-schema-traverse/index.js b/deps/npm/node_modules/json-schema-traverse/index.js
deleted file mode 100644
index d4a18dfc7b1..00000000000
--- a/deps/npm/node_modules/json-schema-traverse/index.js
+++ /dev/null
@@ -1,89 +0,0 @@
-'use strict';
-
-var traverse = module.exports = function (schema, opts, cb) {
- // Legacy support for v0.3.1 and earlier.
- if (typeof opts == 'function') {
- cb = opts;
- opts = {};
- }
-
- cb = opts.cb || cb;
- var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};
- var post = cb.post || function() {};
-
- _traverse(opts, pre, post, schema, '', schema);
-};
-
-
-traverse.keywords = {
- additionalItems: true,
- items: true,
- contains: true,
- additionalProperties: true,
- propertyNames: true,
- not: true
-};
-
-traverse.arrayKeywords = {
- items: true,
- allOf: true,
- anyOf: true,
- oneOf: true
-};
-
-traverse.propsKeywords = {
- definitions: true,
- properties: true,
- patternProperties: true,
- dependencies: true
-};
-
-traverse.skipKeywords = {
- default: true,
- enum: true,
- const: true,
- required: true,
- maximum: true,
- minimum: true,
- exclusiveMaximum: true,
- exclusiveMinimum: true,
- multipleOf: true,
- maxLength: true,
- minLength: true,
- pattern: true,
- format: true,
- maxItems: true,
- minItems: true,
- uniqueItems: true,
- maxProperties: true,
- minProperties: true
-};
-
-
-function _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {
- if (schema && typeof schema == 'object' && !Array.isArray(schema)) {
- pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);
- for (var key in schema) {
- var sch = schema[key];
- if (Array.isArray(sch)) {
- if (key in traverse.arrayKeywords) {
- for (var i=0; i<sch.length; i++)
- _traverse(opts, pre, post, sch[i], jsonPtr + '/' + key + '/' + i, rootSchema, jsonPtr, key, schema, i);
- }
- } else if (key in traverse.propsKeywords) {
- if (sch && typeof sch == 'object') {
- for (var prop in sch)
- _traverse(opts, pre, post, sch[prop], jsonPtr + '/' + key + '/' + escapeJsonPtr(prop), rootSchema, jsonPtr, key, schema, prop);
- }
- } else if (key in traverse.keywords || (opts.allKeys && !(key in traverse.skipKeywords))) {
- _traverse(opts, pre, post, sch, jsonPtr + '/' + key, rootSchema, jsonPtr, key, schema);
- }
- }
- post(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);
- }
-}
-
-
-function escapeJsonPtr(str) {
- return str.replace(/~/g, '~0').replace(/\//g, '~1');
-}
diff --git a/deps/npm/node_modules/json-schema-traverse/package.json b/deps/npm/node_modules/json-schema-traverse/package.json
deleted file mode 100644
index 156606327ba..00000000000
--- a/deps/npm/node_modules/json-schema-traverse/package.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "name": "json-schema-traverse",
- "version": "0.4.1",
- "description": "Traverse JSON Schema passing each schema object to callback",
- "main": "index.js",
- "scripts": {
- "eslint": "eslint index.js spec",
- "test-spec": "mocha spec -R spec",
- "test": "npm run eslint && nyc npm run test-spec"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/epoberezkin/json-schema-traverse.git"
- },
- "keywords": [
- "JSON-Schema",
- "traverse",
- "iterate"
- ],
- "author": "Evgeny Poberezkin",
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/epoberezkin/json-schema-traverse/issues"
- },
- "homepage": "https://github.com/epoberezkin/json-schema-traverse#readme",
- "devDependencies": {
- "coveralls": "^2.13.1",
- "eslint": "^3.19.0",
- "mocha": "^3.4.2",
- "nyc": "^11.0.2",
- "pre-commit": "^1.2.2"
- },
- "nyc": {
- "exclude": [
- "**/spec/**",
- "node_modules"
- ],
- "reporter": [
- "lcov",
- "text-summary"
- ]
- }
-}
diff --git a/deps/npm/node_modules/json-schema-traverse/spec/fixtures/schema.js b/deps/npm/node_modules/json-schema-traverse/spec/fixtures/schema.js
deleted file mode 100644
index c51430cdc3d..00000000000
--- a/deps/npm/node_modules/json-schema-traverse/spec/fixtures/schema.js
+++ /dev/null
@@ -1,125 +0,0 @@
-'use strict';
-
-var schema = {
- additionalItems: subschema('additionalItems'),
- items: subschema('items'),
- contains: subschema('contains'),
- additionalProperties: subschema('additionalProperties'),
- propertyNames: subschema('propertyNames'),
- not: subschema('not'),
- allOf: [
- subschema('allOf_0'),
- subschema('allOf_1'),
- {
- items: [
- subschema('items_0'),
- subschema('items_1'),
- ]
- }
- ],
- anyOf: [
- subschema('anyOf_0'),
- subschema('anyOf_1'),
- ],
- oneOf: [
- subschema('oneOf_0'),
- subschema('oneOf_1'),
- ],
- definitions: {
- foo: subschema('definitions_foo'),
- bar: subschema('definitions_bar'),
- },
- properties: {
- foo: subschema('properties_foo'),
- bar: subschema('properties_bar'),
- },
- patternProperties: {
- foo: subschema('patternProperties_foo'),
- bar: subschema('patternProperties_bar'),
- },
- dependencies: {
- foo: subschema('dependencies_foo'),
- bar: subschema('dependencies_bar'),
- },
- required: ['foo', 'bar']
-};
-
-
-function subschema(keyword) {
- var sch = {
- properties: {},
- additionalProperties: false,
- additionalItems: false,
- anyOf: [
- {format: 'email'},
- {format: 'hostname'}
- ]
- };
- sch.properties['foo_' + keyword] = {title: 'foo'};
- sch.properties['bar_' + keyword] = {title: 'bar'};
- return sch;
-}
-
-
-module.exports = {
- schema: schema,
-
- // schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex
- expectedCalls: [[schema, '', schema, undefined, undefined, undefined, undefined]]
- .concat(expectedCalls('additionalItems'))
- .concat(expectedCalls('items'))
- .concat(expectedCalls('contains'))
- .concat(expectedCalls('additionalProperties'))
- .concat(expectedCalls('propertyNames'))
- .concat(expectedCalls('not'))
- .concat(expectedCallsChild('allOf', 0))
- .concat(expectedCallsChild('allOf', 1))
- .concat([
- [schema.allOf[2], '/allOf/2', schema, '', 'allOf', schema, 2],
- [schema.allOf[2].items[0], '/allOf/2/items/0', schema, '/allOf/2', 'items', schema.allOf[2], 0],
- [schema.allOf[2].items[0].properties.foo_items_0, '/allOf/2/items/0/properties/foo_items_0', schema, '/allOf/2/items/0', 'properties', schema.allOf[2].items[0], 'foo_items_0'],
- [schema.allOf[2].items[0].properties.bar_items_0, '/allOf/2/items/0/properties/bar_items_0', schema, '/allOf/2/items/0', 'properties', schema.allOf[2].items[0], 'bar_items_0'],
- [schema.allOf[2].items[0].anyOf[0], '/allOf/2/items/0/anyOf/0', schema, '/allOf/2/items/0', 'anyOf', schema.allOf[2].items[0], 0],
- [schema.allOf[2].items[0].anyOf[1], '/allOf/2/items/0/anyOf/1', schema, '/allOf/2/items/0', 'anyOf', schema.allOf[2].items[0], 1],
-
- [schema.allOf[2].items[1], '/allOf/2/items/1', schema, '/allOf/2', 'items', schema.allOf[2], 1],
- [schema.allOf[2].items[1].properties.foo_items_1, '/allOf/2/items/1/properties/foo_items_1', schema, '/allOf/2/items/1', 'properties', schema.allOf[2].items[1], 'foo_items_1'],
- [schema.allOf[2].items[1].properties.bar_items_1, '/allOf/2/items/1/properties/bar_items_1', schema, '/allOf/2/items/1', 'properties', schema.allOf[2].items[1], 'bar_items_1'],
- [schema.allOf[2].items[1].anyOf[0], '/allOf/2/items/1/anyOf/0', schema, '/allOf/2/items/1', 'anyOf', schema.allOf[2].items[1], 0],
- [schema.allOf[2].items[1].anyOf[1], '/allOf/2/items/1/anyOf/1', schema, '/allOf/2/items/1', 'anyOf', schema.allOf[2].items[1], 1]
- ])
- .concat(expectedCallsChild('anyOf', 0))
- .concat(expectedCallsChild('anyOf', 1))
- .concat(expectedCallsChild('oneOf', 0))
- .concat(expectedCallsChild('oneOf', 1))
- .concat(expectedCallsChild('definitions', 'foo'))
- .concat(expectedCallsChild('definitions', 'bar'))
- .concat(expectedCallsChild('properties', 'foo'))
- .concat(expectedCallsChild('properties', 'bar'))
- .concat(expectedCallsChild('patternProperties', 'foo'))
- .concat(expectedCallsChild('patternProperties', 'bar'))
- .concat(expectedCallsChild('dependencies', 'foo'))
- .concat(expectedCallsChild('dependencies', 'bar'))
-};
-
-
-function expectedCalls(keyword) {
- return [
- [schema[keyword], `/${keyword}`, schema, '', keyword, schema, undefined],
- [schema[keyword].properties[`foo_${keyword}`], `/${keyword}/properties/foo_${keyword}`, schema, `/${keyword}`, 'properties', schema[keyword], `foo_${keyword}`],
- [schema[keyword].properties[`bar_${keyword}`], `/${keyword}/properties/bar_${keyword}`, schema, `/${keyword}`, 'properties', schema[keyword], `bar_${keyword}`],
- [schema[keyword].anyOf[0], `/${keyword}/anyOf/0`, schema, `/${keyword}`, 'anyOf', schema[keyword], 0],
- [schema[keyword].anyOf[1], `/${keyword}/anyOf/1`, schema, `/${keyword}`, 'anyOf', schema[keyword], 1]
- ];
-}
-
-
-function expectedCallsChild(keyword, i) {
- return [
- [schema[keyword][i], `/${keyword}/${i}`, schema, '', keyword, schema, i],
- [schema[keyword][i].properties[`foo_${keyword}_${i}`], `/${keyword}/${i}/properties/foo_${keyword}_${i}`, schema, `/${keyword}/${i}`, 'properties', schema[keyword][i], `foo_${keyword}_${i}`],
- [schema[keyword][i].properties[`bar_${keyword}_${i}`], `/${keyword}/${i}/properties/bar_${keyword}_${i}`, schema, `/${keyword}/${i}`, 'properties', schema[keyword][i], `bar_${keyword}_${i}`],
- [schema[keyword][i].anyOf[0], `/${keyword}/${i}/anyOf/0`, schema, `/${keyword}/${i}`, 'anyOf', schema[keyword][i], 0],
- [schema[keyword][i].anyOf[1], `/${keyword}/${i}/anyOf/1`, schema, `/${keyword}/${i}`, 'anyOf', schema[keyword][i], 1]
- ];
-}
diff --git a/deps/npm/node_modules/json-schema-traverse/spec/index.spec.js b/deps/npm/node_modules/json-schema-traverse/spec/index.spec.js
deleted file mode 100644
index c76b64fc849..00000000000
--- a/deps/npm/node_modules/json-schema-traverse/spec/index.spec.js
+++ /dev/null
@@ -1,171 +0,0 @@
-'use strict';
-
-var traverse = require('../index');
-var assert = require('assert');
-
-describe('json-schema-traverse', function() {
- var calls;
-
- beforeEach(function() {
- calls = [];
- });
-
- it('should traverse all keywords containing schemas recursively', function() {
- var schema = require('./fixtures/schema').schema;
- var expectedCalls = require('./fixtures/schema').expectedCalls;
-
- traverse(schema, {cb: callback});
- assert.deepStrictEqual(calls, expectedCalls);
- });
-
- describe('Legacy v0.3.1 API', function() {
- it('should traverse all keywords containing schemas recursively', function() {
- var schema = require('./fixtures/schema').schema;
- var expectedCalls = require('./fixtures/schema').expectedCalls;
-
- traverse(schema, callback);
- assert.deepStrictEqual(calls, expectedCalls);
- });
-
- it('should work when an options object is provided', function() {
- // schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex
- var schema = require('./fixtures/schema').schema;
- var expectedCalls = require('./fixtures/schema').expectedCalls;
-
- traverse(schema, {}, callback);
- assert.deepStrictEqual(calls, expectedCalls);
- });
- });
-
-
- describe('allKeys option', function() {
- var schema = {
- someObject: {
- minimum: 1,
- maximum: 2
- }
- };
-
- it('should traverse objects with allKeys: true option', function() {
- // schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex
- var expectedCalls = [
- [schema, '', schema, undefined, undefined, undefined, undefined],
- [schema.someObject, '/someObject', schema, '', 'someObject', schema, undefined]
- ];
-
- traverse(schema, {allKeys: true, cb: callback});
- assert.deepStrictEqual(calls, expectedCalls);
- });
-
-
- it('should NOT traverse objects with allKeys: false option', function() {
- // schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex
- var expectedCalls = [
- [schema, '', schema, undefined, undefined, undefined, undefined]
- ];
-
- traverse(schema, {allKeys: false, cb: callback});
- assert.deepStrictEqual(calls, expectedCalls);
- });
-
-
- it('should NOT traverse objects without allKeys option', function() {
- // schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex
- var expectedCalls = [
- [schema, '', schema, undefined, undefined, undefined, undefined]
- ];
-
- traverse(schema, {cb: callback});
- assert.deepStrictEqual(calls, expectedCalls);
- });
-
-
- it('should NOT travers objects in standard keywords which value is not a schema', function() {
- var schema2 = {
- const: {foo: 'bar'},
- enum: ['a', 'b'],
- required: ['foo'],
- another: {
-
- },
- patternProperties: {}, // will not traverse - no properties
- dependencies: true, // will not traverse - invalid
- properties: {
- smaller: {
- type: 'number'
- },
- larger: {
- type: 'number',
- minimum: {$data: '1/smaller'}
- }
- }
- };
-
- // schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex
- var expectedCalls = [
- [schema2, '', schema2, undefined, undefined, undefined, undefined],
- [schema2.another, '/another', schema2, '', 'another', schema2, undefined],
- [schema2.properties.smaller, '/properties/smaller', schema2, '', 'properties', schema2, 'smaller'],
- [schema2.properties.larger, '/properties/larger', schema2, '', 'properties', schema2, 'larger'],
- ];
-
- traverse(schema2, {allKeys: true, cb: callback});
- assert.deepStrictEqual(calls, expectedCalls);
- });
- });
-
- describe('pre and post', function() {
- var schema = {
- type: 'object',
- properties: {
- name: {type: 'string'},
- age: {type: 'number'}
- }
- };
-
- it('should traverse schema in pre-order', function() {
- traverse(schema, {cb: {pre}});
- var expectedCalls = [
- ['pre', schema, '', schema, undefined, undefined, undefined, undefined],
- ['pre', schema.properties.name, '/properties/name', schema, '', 'properties', schema, 'name'],
- ['pre', schema.properties.age, '/properties/age', schema, '', 'properties', schema, 'age'],
- ];
- assert.deepStrictEqual(calls, expectedCalls);
- });
-
- it('should traverse schema in post-order', function() {
- traverse(schema, {cb: {post}});
- var expectedCalls = [
- ['post', schema.properties.name, '/properties/name', schema, '', 'properties', schema, 'name'],
- ['post', schema.properties.age, '/properties/age', schema, '', 'properties', schema, 'age'],
- ['post', schema, '', schema, undefined, undefined, undefined, undefined],
- ];
- assert.deepStrictEqual(calls, expectedCalls);
- });
-
- it('should traverse schema in pre- and post-order at the same time', function() {
- traverse(schema, {cb: {pre, post}});
- var expectedCalls = [
- ['pre', schema, '', schema, undefined, undefined, undefined, undefined],
- ['pre', schema.properties.name, '/properties/name', schema, '', 'properties', schema, 'name'],
- ['post', schema.properties.name, '/properties/name', schema, '', 'properties', schema, 'name'],
- ['pre', schema.properties.age, '/properties/age', schema, '', 'properties', schema, 'age'],
- ['post', schema.properties.age, '/properties/age', schema, '', 'properties', schema, 'age'],
- ['post', schema, '', schema, undefined, undefined, undefined, undefined],
- ];
- assert.deepStrictEqual(calls, expectedCalls);
- });
- });
-
- function callback() {
- calls.push(Array.prototype.slice.call(arguments));
- }
-
- function pre() {
- calls.push(['pre'].concat(Array.prototype.slice.call(arguments)));
- }
-
- function post() {
- calls.push(['post'].concat(Array.prototype.slice.call(arguments)));
- }
-});
diff --git a/deps/npm/node_modules/json-schema/draft-00/hyper-schema b/deps/npm/node_modules/json-schema/draft-00/hyper-schema
deleted file mode 100644
index 12fe26b621a..00000000000
--- a/deps/npm/node_modules/json-schema/draft-00/hyper-schema
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "$schema" : "http://json-schema.org/draft-00/hyper-schema#",
- "id" : "http://json-schema.org/draft-00/hyper-schema#",
-
- "properties" : {
- "links" : {
- "type" : "array",
- "items" : {"$ref" : "http://json-schema.org/draft-00/links#"},
- "optional" : true
- },
-
- "fragmentResolution" : {
- "type" : "string",
- "optional" : true,
- "default" : "dot-delimited"
- },
-
- "root" : {
- "type" : "boolean",
- "optional" : true,
- "default" : false
- },
-
- "readonly" : {
- "type" : "boolean",
- "optional" : true,
- "default" : false
- },
-
- "pathStart" : {
- "type" : "string",
- "optional" : true,
- "format" : "uri"
- },
-
- "mediaType" : {
- "type" : "string",
- "optional" : true,
- "format" : "media-type"
- },
-
- "alternate" : {
- "type" : "array",
- "items" : {"$ref" : "#"},
- "optional" : true
- }
- },
-
- "links" : [
- {
- "href" : "{$ref}",
- "rel" : "full"
- },
-
- {
- "href" : "{$schema}",
- "rel" : "describedby"
- },
-
- {
- "href" : "{id}",
- "rel" : "self"
- }
- ],
-
- "fragmentResolution" : "dot-delimited",
- "extends" : {"$ref" : "http://json-schema.org/draft-00/schema#"}
-} \ No newline at end of file
diff --git a/deps/npm/node_modules/json-schema/draft-00/json-ref b/deps/npm/node_modules/json-schema/draft-00/json-ref
deleted file mode 100644
index 0c825bce4f1..00000000000
--- a/deps/npm/node_modules/json-schema/draft-00/json-ref
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "$schema" : "http://json-schema.org/draft-00/hyper-schema#",
- "id" : "http://json-schema.org/draft-00/json-ref#",
-
- "items" : {"$ref" : "#"},
- "additionalProperties" : {"$ref" : "#"},
-
- "links" : [
- {
- "href" : "{$ref}",
- "rel" : "full"
- },
-
- {
- "href" : "{$schema}",
- "rel" : "describedby"
- },
-
- {
- "href" : "{id}",
- "rel" : "self"
- }
- ],
-
- "fragmentResolution" : "dot-delimited"
-} \ No newline at end of file
diff --git a/deps/npm/node_modules/json-schema/draft-00/links b/deps/npm/node_modules/json-schema/draft-00/links
deleted file mode 100644
index c9b5517725f..00000000000
--- a/deps/npm/node_modules/json-schema/draft-00/links
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "$schema" : "http://json-schema.org/draft-00/hyper-schema#",
- "id" : "http://json-schema.org/draft-00/links#",
- "type" : "object",
-
- "properties" : {
- "href" : {
- "type" : "string"
- },
-
- "rel" : {
- "type" : "string"
- },
-
- "method" : {
- "type" : "string",
- "default" : "GET",
- "optional" : true
- },
-
- "enctype" : {
- "type" : "string",
- "requires" : "method",
- "optional" : true
- },
-
- "properties" : {
- "type" : "object",
- "additionalProperties" : {"$ref" : "http://json-schema.org/draft-00/hyper-schema#"},
- "optional" : true
- }
- }
-} \ No newline at end of file
diff --git a/deps/npm/node_modules/json-schema/draft-00/schema b/deps/npm/node_modules/json-schema/draft-00/schema
deleted file mode 100644
index a3a214436e4..00000000000
--- a/deps/npm/node_modules/json-schema/draft-00/schema
+++ /dev/null
@@ -1,155 +0,0 @@
-{
- "$schema" : "http://json-schema.org/draft-00/hyper-schema#",
- "id" : "http://json-schema.org/draft-00/schema#",
- "type" : "object",
-
- "properties" : {
- "type" : {
- "type" : ["string", "array"],
- "items" : {
- "type" : ["string", {"$ref" : "#"}]
- },
- "optional" : true,
- "default" : "any"
- },
-
- "properties" : {
- "type" : "object",
- "additionalProperties" : {"$ref" : "#"},
- "optional" : true,
- "default" : {}
- },
-
- "items" : {
- "type" : [{"$ref" : "#"}, "array"],
- "items" : {"$ref" : "#"},
- "optional" : true,
- "default" : {}
- },
-
- "optional" : {
- "type" : "boolean",
- "optional" : true,
- "default" : false
- },
-
- "additionalProperties" : {
- "type" : [{"$ref" : "#"}, "boolean"],
- "optional" : true,
- "default" : {}
- },
-
- "requires" : {
- "type" : ["string", {"$ref" : "#"}],
- "optional" : true
- },
-
- "minimum" : {
- "type" : "number",
- "optional" : true
- },
-
- "maximum" : {
- "type" : "number",
- "optional" : true
- },
-
- "minimumCanEqual" : {
- "type" : "boolean",
- "optional" : true,
- "requires" : "minimum",
- "default" : true
- },
-
- "maximumCanEqual" : {
- "type" : "boolean",
- "optional" : true,
- "requires" : "maximum",
- "default" : true
- },
-
- "minItems" : {
- "type" : "integer",
- "optional" : true,
- "minimum" : 0,
- "default" : 0
- },
-
- "maxItems" : {
- "type" : "integer",
- "optional" : true,
- "minimum" : 0
- },
-
- "pattern" : {
- "type" : "string",
- "optional" : true,
- "format" : "regex"
- },
-
- "minLength" : {
- "type" : "integer",
- "optional" : true,
- "minimum" : 0,
- "default" : 0
- },
-
- "maxLength" : {
- "type" : "integer",
- "optional" : true
- },
-
- "enum" : {
- "type" : "array",
- "optional" : true,
- "minItems" : 1
- },
-
- "title" : {
- "type" : "string",
- "optional" : true
- },
-
- "description" : {
- "type" : "string",
- "optional" : true
- },
-
- "format" : {
- "type" : "string",
- "optional" : true
- },
-
- "contentEncoding" : {
- "type" : "string",
- "optional" : true
- },
-
- "default" : {
- "type" : "any",
- "optional" : true
- },
-
- "maxDecimal" : {
- "type" : "integer",
- "optional" : true,
- "minimum" : 0
- },
-
- "disallow" : {
- "type" : ["string", "array"],
- "items" : {"type" : "string"},
- "optional" : true
- },
-
- "extends" : {
- "type" : [{"$ref" : "#"}, "array"],
- "items" : {"$ref" : "#"},
- "optional" : true,
- "default" : {}
- }
- },
-
- "optional" : true,
- "default" : {}
-} \ No newline at end of file
diff --git a/deps/npm/node_modules/json-schema/draft-01/hyper-schema b/deps/npm/node_modules/json-schema/draft-01/hyper-schema
deleted file mode 100644
index 66e835b6550..00000000000
--- a/deps/npm/node_modules/json-schema/draft-01/hyper-schema
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "$schema" : "http://json-schema.org/draft-01/hyper-schema#",
- "id" : "http://json-schema.org/draft-01/hyper-schema#",
-
- "properties" : {
- "links" : {
- "type" : "array",
- "items" : {"$ref" : "http://json-schema.org/draft-01/links#"},
- "optional" : true
- },
-
- "fragmentResolution" : {
- "type" : "string",
- "optional" : true,
- "default" : "dot-delimited"
- },
-
- "root" : {
- "type" : "boolean",
- "optional" : true,
- "default" : false
- },
-
- "readonly" : {
- "type" : "boolean",
- "optional" : true,
- "default" : false
- },
-
- "pathStart" : {
- "type" : "string",
- "optional" : true,
- "format" : "uri"
- },
-
- "mediaType" : {
- "type" : "string",
- "optional" : true,
- "format" : "media-type"
- },
-
- "alternate" : {
- "type" : "array",
- "items" : {"$ref" : "#"},
- "optional" : true
- }
- },
-
- "links" : [
- {
- "href" : "{$ref}",
- "rel" : "full"
- },
-
- {
- "href" : "{$schema}",
- "rel" : "describedby"
- },
-
- {
- "href" : "{id}",
- "rel" : "self"
- }
- ],
-
- "fragmentResolution" : "dot-delimited",
- "extends" : {"$ref" : "http://json-schema.org/draft-01/schema#"}
-} \ No newline at end of file
diff --git a/deps/npm/node_modules/json-schema/draft-01/json-ref b/deps/npm/node_modules/json-schema/draft-01/json-ref
deleted file mode 100644
index f2ad55b1e7d..00000000000
--- a/deps/npm/node_modules/json-schema/draft-01/json-ref
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "$schema" : "http://json-schema.org/draft-01/hyper-schema#",
- "id" : "http://json-schema.org/draft-01/json-ref#",
-
- "items" : {"$ref" : "#"},
- "additionalProperties" : {"$ref" : "#"},
-
- "links" : [
- {
- "href" : "{$ref}",
- "rel" : "full"
- },
-
- {
- "href" : "{$schema}",
- "rel" : "describedby"
- },
-
- {
- "href" : "{id}",
- "rel" : "self"
- }
- ],
-
- "fragmentResolution" : "dot-delimited"
-} \ No newline at end of file
diff --git a/deps/npm/node_modules/json-schema/draft-01/links b/deps/npm/node_modules/json-schema/draft-01/links
deleted file mode 100644
index cb183c4d863..00000000000
--- a/deps/npm/node_modules/json-schema/draft-01/links
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "$schema" : "http://json-schema.org/draft-01/hyper-schema#",
- "id" : "http://json-schema.org/draft-01/links#",
- "type" : "object",
-
- "properties" : {
- "href" : {
- "type" : "string"
- },
-
- "rel" : {
- "type" : "string"
- },
-
- "method" : {
- "type" : "string",
- "default" : "GET",
- "optional" : true
- },
-
- "enctype" : {
- "type" : "string",
- "requires" : "method",
- "optional" : true
- },
-
- "properties" : {
- "type" : "object",
- "additionalProperties" : {"$ref" : "http://json-schema.org/draft-01/hyper-schema#"},
- "optional" : true
- }
- }
-} \ No newline at end of file
diff --git a/deps/npm/node_modules/json-schema/draft-01/schema b/deps/npm/node_modules/json-schema/draft-01/schema
deleted file mode 100644
index e6b6aea4ea5..00000000000
--- a/deps/npm/node_modules/json-schema/draft-01/schema
+++ /dev/null
@@ -1,155 +0,0 @@
-{
- "$schema" : "http://json-schema.org/draft-01/hyper-schema#",
- "id" : "http://json-schema.org/draft-01/schema#",
- "type" : "object",
-
- "properties" : {
- "type" : {
- "type" : ["string", "array"],
- "items" : {
- "type" : ["string", {"$ref" : "#"}]
- },
- "optional" : true,
- "default" : "any"
- },
-
- "properties" : {
- "type" : "object",
- "additionalProperties" : {"$ref" : "#"},
- "optional" : true,
- "default" : {}
- },
-
- "items" : {
- "type" : [{"$ref" : "#"}, "array"],
- "items" : {"$ref" : "#"},
- "optional" : true,
- "default" : {}
- },
-
- "optional" : {
- "type" : "boolean",
- "optional" : true,
- "default" : false
- },
-
- "additionalProperties" : {
- "type" : [{"$ref" : "#"}, "boolean"],
- "optional" : true,
- "default" : {}
- },
-
- "requires" : {
- "type" : ["string", {"$ref" : "#"}],
- "optional" : true
- },
-
- "minimum" : {
- "type" : "number",
- "optional" : true
- },
-
- "maximum" : {
- "type" : "number",
- "optional" : true
- },
-
- "minimumCanEqual" : {
- "type" : "boolean",
- "optional" : true,
- "requires" : "minimum",
- "default" : true
- },
-
- "maximumCanEqual" : {
- "type" : "boolean",
- "optional" : true,
- "requires" : "maximum",
- "default" : true
- },
-
- "minItems" : {
- "type" : "integer",
- "optional" : true,
- "minimum" : 0,
- "default" : 0
- },
-
- "maxItems" : {
- "type" : "integer",
- "optional" : true,
- "minimum" : 0
- },
-
- "pattern" : {
- "type" : "string",
- "optional" : true,
- "format" : "regex"
- },
-
- "minLength" : {
- "type" : "integer",
- "optional" : true,
- "minimum" : 0,
- "default" : 0
- },
-
- "maxLength" : {
- "type" : "integer",
- "optional" : true
- },
-
- "enum" : {
- "type" : "array",
- "optional" : true,
- "minItems" : 1
- },
-
- "title" : {
- "type" : "string",
- "optional" : true
- },
-
- "description" : {
- "type" : "string",
- "optional" : true
- },
-
- "format" : {
- "type" : "string",
- "optional" : true
- },
-
- "contentEncoding" : {
- "type" : "string",
- "optional" : true
- },
-
- "default" : {
- "type" : "any",
- "optional" : true
- },
-
- "maxDecimal" : {
- "type" : "integer",
- "optional" : true,
- "minimum" : 0
- },
-
- "disallow" : {
- "type" : ["string", "array"],
- "items" : {"type" : "string"},
- "optional" : true
- },
-
- "extends" : {
- "type" : [{"$ref" : "#"}, "array"],
- "items" : {"$ref" : "#"},
- "optional" : true,
- "default" : {}
- }
- },
-
- "optional" : true,
- "default" : {}
-} \ No newline at end of file
diff --git a/deps/npm/node_modules/json-schema/draft-02/hyper-schema b/deps/npm/node_modules/json-schema/draft-02/hyper-schema
deleted file mode 100644
index 2d2bc6853e8..00000000000
--- a/deps/npm/node_modules/json-schema/draft-02/hyper-schema
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "$schema" : "http://json-schema.org/draft-02/hyper-schema#",
- "id" : "http://json-schema.org/draft-02/hyper-schema#",
-
- "properties" : {
- "links" : {
- "type" : "array",
- "items" : {"$ref" : "http://json-schema.org/draft-02/links#"},
- "optional" : true
- },
-
- "fragmentResolution" : {
- "type" : "string",
- "optional" : true,
- "default" : "slash-delimited"
- },
-
- "root" : {
- "type" : "boolean",
- "optional" : true,
- "default" : false
- },
-
- "readonly" : {
- "type" : "boolean",
- "optional" : true,
- "default" : false
- },
-
- "pathStart" : {
- "type" : "string",
- "optional" : true,
- "format" : "uri"
- },
-
- "mediaType" : {
- "type" : "string",
- "optional" : true,
- "format" : "media-type"
- },
-
- "alternate" : {
- "type" : "array",
- "items" : {"$ref" : "#"},
- "optional" : true
- }
- },
-
- "links" : [
- {
- "href" : "{$ref}",
- "rel" : "full"
- },
-
- {
- "href" : "{$schema}",
- "rel" : "describedby"
- },
-
- {
- "href" : "{id}",
- "rel" : "self"
- }
- ],
-
- "fragmentResolution" : "slash-delimited",
- "extends" : {"$ref" : "http://json-schema.org/draft-02/schema#"}
-} \ No newline at end of file
diff --git a/deps/npm/node_modules/json-schema/draft-02/json-ref b/deps/npm/node_modules/json-schema/draft-02/json-ref
deleted file mode 100644
index 2b23fcdc66c..00000000000
--- a/deps/npm/node_modules/json-schema/draft-02/json-ref
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "$schema" : "http://json-schema.org/draft-02/hyper-schema#",
- "id" : "http://json-schema.org/draft-02/json-ref#",
-
- "items" : {"$ref" : "#"},
- "additionalProperties" : {"$ref" : "#"},
-
- "links" : [
- {
- "href" : "{$ref}",
- "rel" : "full"
- },
-
- {
- "href" : "{$schema}",
- "rel" : "describedby"
- },
-
- {
- "href" : "{id}",
- "rel" : "self"
- }
- ],
-
- "fragmentResolution" : "dot-delimited"
-} \ No newline at end of file
diff --git a/deps/npm/node_modules/json-schema/draft-02/links b/deps/npm/node_modules/json-schema/draft-02/links
deleted file mode 100644
index ab971b7c2dc..00000000000
--- a/deps/npm/node_modules/json-schema/draft-02/links
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "$schema" : "http://json-schema.org/draft-02/hyper-schema#",
- "id" : "http://json-schema.org/draft-02/links#",
- "type" : "object",
-
- "properties" : {
- "href" : {
- "type" : "string"
- },
-
- "rel" : {
- "type" : "string"
- },
-
- "targetSchema" : {"$ref" : "http://json-schema.org/draft-02/hyper-schema#"},
-
- "method" : {
- "type" : "string",
- "default" : "GET",
- "optional" : true
- },
-
- "enctype" : {
- "type" : "string",
- "requires" : "method",
- "optional" : true
- },
-
- "properties" : {
- "type" : "object",
- "additionalProperties" : {"$ref" : "http://json-schema.org/draft-02/hyper-schema#"},
- "optional" : true
- }
- }
-} \ No newline at end of file
diff --git a/deps/npm/node_modules/json-schema/draft-02/schema b/deps/npm/node_modules/json-schema/draft-02/schema
deleted file mode 100644
index cc2b6693b97..00000000000
--- a/deps/npm/node_modules/json-schema/draft-02/schema
+++ /dev/null
@@ -1,166 +0,0 @@
-{
- "$schema" : "http://json-schema.org/draft-02/hyper-schema#",
- "id" : "http://json-schema.org/draft-02/schema#",
- "type" : "object",
-
- "properties" : {
- "type" : {
- "type" : ["string", "array"],
- "items" : {
- "type" : ["string", {"$ref" : "#"}]
- },
- "optional" : true,
- "uniqueItems" : true,
- "default" : "any"
- },
-
- "properties" : {
- "type" : "object",
- "additionalProperties" : {"$ref" : "#"},
- "optional" : true,
- "default" : {}
- },
-
- "items" : {
- "type" : [{"$ref" : "#"}, "array"],
- "items" : {"$ref" : "#"},
- "optional" : true,
- "default" : {}
- },
-
- "optional" : {
- "type" : "boolean",
- "optional" : true,
- "default" : false
- },
-
- "additionalProperties" : {
- "type" : [{"$ref" : "#"}, "boolean"],
- "optional" : true,
- "default" : {}
- },
-
- "requires" : {
- "type" : ["string", {"$ref" : "#"}],
- "optional" : true
- },
-
- "minimum" : {
- "type" : "number",
- "optional" : true
- },
-
- "maximum" : {
- "type" : "number",
- "optional" : true
- },
-
- "minimumCanEqual" : {
- "type" : "boolean",
- "optional" : true,
- "requires" : "minimum",
- "default" : true
- },
-
- "maximumCanEqual" : {
- "type" : "boolean",
- "optional" : true,
- "requires" : "maximum",
- "default" : true
- },
-
- "minItems" : {
- "type" : "integer",
- "optional" : true,
- "minimum" : 0,
- "default" : 0
- },
-
- "maxItems" : {
- "type" : "integer",
- "optional" : true,
- "minimum" : 0
- },
-
- "uniqueItems" : {
- "type" : "boolean",
- "optional" : true,
- "default" : false
- },
-
- "pattern" : {
- "type" : "string",
- "optional" : true,
- "format" : "regex"
- },
-
- "minLength" : {
- "type" : "integer",
- "optional" : true,
- "minimum" : 0,
- "default" : 0
- },
-
- "maxLength" : {
- "type" : "integer",
- "optional" : true
- },
-
- "enum" : {
- "type" : "array",
- "optional" : true,
- "minItems" : 1,
- "uniqueItems" : true
- },
-
- "title" : {
- "type" : "string",
- "optional" : true
- },
-
- "description" : {
- "type" : "string",
- "optional" : true
- },
-
- "format" : {
- "type" : "string",
- "optional" : true
- },
-
- "contentEncoding" : {
- "type" : "string",
- "optional" : true
- },
-
- "default" : {
- "type" : "any",
- "optional" : true
- },
-
- "divisibleBy" : {
- "type" : "number",
- "minimum" : 0,
- "minimumCanEqual" : false,
- "optional" : true,
- "default" : 1
- },
-
- "disallow" : {
- "type" : ["string", "array"],
- "items" : {"type" : "string"},
- "optional" : true,
- "uniqueItems" : true
- },
-
- "extends" : {
- "type" : [{"$ref" : "#"}, "array"],
- "items" : {"$ref" : "#"},
- "optional" : true,
- "default" : {}
- }
- },
-
- "optional" : true,
- "default" : {}
-} \ No newline at end of file
diff --git a/deps/npm/node_modules/json-schema/draft-03/examples/address b/deps/npm/node_modules/json-schema/draft-03/examples/address
deleted file mode 100644
index 401f20f1c4b..00000000000
--- a/deps/npm/node_modules/json-schema/draft-03/examples/address
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "description" : "An Address following the convention of http://microformats.org/wiki/hcard",
- "type" : "object",
- "properties" : {
- "post-office-box" : { "type" : "string" },
- "extended-address" : { "type" : "string" },
- "street-address" : { "type":"string" },
- "locality" : { "type" : "string", "required" : true },
- "region" : { "type" : "string", "required" : true },
- "postal-code" : { "type" : "string" },
- "country-name" : { "type" : "string", "required" : true }
- },
- "dependencies" : {
- "post-office-box" : "street-address",
- "extended-address" : "street-address",
- "street-address" : "region",
- "locality" : "region",
- "region" : "country-name"
- }
-} \ No newline at end of file
diff --git a/deps/npm/node_modules/json-schema/draft-03/examples/calendar b/deps/npm/node_modules/json-schema/draft-03/examples/calendar
deleted file mode 100644
index 0ec47c23c3f..00000000000
--- a/deps/npm/node_modules/json-schema/draft-03/examples/calendar
+++ /dev/null
@@ -1,53 +0,0 @@
-{
- "description" : "A representation of an event",
- "type" : "object",
- "properties" : {
- "dtstart" : {
- "format" : "date-time",
- "type" : "string",
- "description" : "Event starting time",
- "required":true
- },
- "summary" : {
- "type":"string",
- "required":true
- },
- "location" : {
- "type" : "string"
- },
- "url" : {
- "type" : "string",
- "format" : "url"
- },
- "dtend" : {
- "format" : "date-time",
- "type" : "string",
- "description" : "Event ending time"
- },
- "duration" : {
- "format" : "date",
- "type" : "string",
- "description" : "Event duration"
- },
- "rdate" : {
- "format" : "date-time",
- "type" : "string",
- "description" : "Recurrence date"
- },
- "rrule" : {
- "type" : "string",
- "description" : "Recurrence rule"
- },
- "category" : {
- "type" : "string"
- },
- "description" : {
- "type" : "string"
- },
- "geo" : { "$ref" : "http://json-schema.org/draft-03/geo" }
- }
-}
-
-
-
-
diff --git a/deps/npm/node_modules/json-schema/draft-03/examples/card b/deps/npm/node_modules/json-schema/draft-03/examples/card
deleted file mode 100644
index a5667ffdd73..00000000000
--- a/deps/npm/node_modules/json-schema/draft-03/examples/card
+++ /dev/null
@@ -1,105 +0,0 @@
-{
- "description":"A representation of a person, company, organization, or place",
- "type":"object",
- "properties":{
- "fn":{
- "description":"Formatted Name",
- "type":"string"
- },
- "familyName":{
- "type":"string",
- "required":true
- },
- "givenName":{
- "type":"string",
- "required":true
- },
- "additionalName":{
- "type":"array",
- "items":{
- "type":"string"
- }
- },
- "honorificPrefix":{
- "type":"array",
- "items":{
- "type":"string"
- }
- },
- "honorificSuffix":{
- "type":"array",
- "items":{
- "type":"string"
- }
- },
- "nickname":{
- "type":"string"
- },
- "url":{
- "type":"string",
- "format":"url"
- },
- "email":{
- "type":"object",
- "properties":{
- "type":{
- "type":"string"
- },
- "value":{
- "type":"string",
- "format":"email"
- }
- }
- },
- "tel":{
- "type":"object",
- "properties":{
- "type":{
- "type":"string"
- },
- "value":{
- "type":"string",
- "format":"phone"
- }
- }
- },
- "adr":{"$ref" : "http://json-schema.org/address"},
- "geo":{"$ref" : "http://json-schema.org/geo"},
- "tz":{
- "type":"string"
- },
- "photo":{
- "format":"image",
- "type":"string"
- },
- "logo":{
- "format":"image",
- "type":"string"
- },
- "sound":{
- "format":"attachment",
- "type":"string"
- },
- "bday":{
- "type":"string",
- "format":"date"
- },
- "title":{
- "type":"string"
- },
- "role":{
- "type":"string"
- },
- "org":{
- "type":"object",
- "properties":{
- "organizationName":{
- "type":"string"
- },
- "organizationUnit":{
- "type":"string"
- }
- }
- }
- }
-} \ No newline at end of file
diff --git a/deps/npm/node_modules/json-schema/draft-03/examples/geo b/deps/npm/node_modules/json-schema/draft-03/examples/geo
deleted file mode 100644
index 4357a909ae0..00000000000
--- a/deps/npm/node_modules/json-schema/draft-03/examples/geo
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "description" : "A geographical coordinate",
- "type" : "object",
- "properties" : {
- "latitude" : { "type" : "number" },
- "longitude" : { "type" : "number" }
- }
-} \ No newline at end of file
diff --git a/deps/npm/node_modules/json-schema/draft-03/examples/interfaces b/deps/npm/node_modules/json-schema/draft-03/examples/interfaces
deleted file mode 100644
index b8532f2974b..00000000000
--- a/deps/npm/node_modules/json-schema/draft-03/examples/interfaces
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "extends":"http://json-schema.org/hyper-schema",
- "description":"A schema for schema interface definitions that describe programmatic class structures using JSON schema syntax",
- "properties":{
- "methods":{
- "type":"object",
- "description":"This defines the set of methods available to the class instances",
- "additionalProperties":{
- "type":"object",
- "description":"The definition of the method",
- "properties":{
- "parameters":{
- "type":"array",
- "description":"The set of parameters that should be passed to the method when it is called",
- "items":{"$ref":"#"},
- "required": true
- },
- "returns":{"$ref":"#"}
- }
- }
- }
- }
-}
diff --git a/deps/npm/node_modules/json-schema/draft-03/hyper-schema b/deps/npm/node_modules/json-schema/draft-03/hyper-schema
deleted file mode 100644
index 38ca2e103f2..00000000000
--- a/deps/npm/node_modules/json-schema/draft-03/hyper-schema
+++ /dev/null
@@ -1,60 +0,0 @@
-{
- "$schema" : "http://json-schema.org/draft-03/hyper-schema#",
- "extends" : {"$ref" : "http://json-schema.org/draft-03/schema#"},
- "id" : "http://json-schema.org/draft-03/hyper-schema#",
-
- "properties" : {
- "links" : {
- "type" : "array",
- "items" : {"$ref" : "http://json-schema.org/draft-03/links#"}
- },
-
- "fragmentResolution" : {
- "type" : "string",
- "default" : "slash-delimited"
- },
-
- "root" : {
- "type" : "boolean",
- "default" : false
- },
-
- "readonly" : {
- "type" : "boolean",
- "default" : false
- },
-
- "contentEncoding" : {
- "type" : "string"
- },
-
- "pathStart" : {
- "type" : "string",
- "format" : "uri"
- },
-
- "mediaType" : {
- "type" : "string",
- "format" : "media-type"
- }
- },
-
- "links" : [
- {
- "href" : "{id}",
- "rel" : "self"
- },
-
- {
- "href" : "{$ref}",
- "rel" : "full"
- },
-
- {
- "href" : "{$schema}",
- "rel" : "describedby"
- }
- ],
-
- "fragmentResolution" : "slash-delimited"
-}
diff --git a/deps/npm/node_modules/json-schema/draft-03/json-ref b/deps/npm/node_modules/json-schema/draft-03/json-ref
deleted file mode 100644
index 66e08f26078..00000000000
--- a/deps/npm/node_modules/json-schema/draft-03/json-ref
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "$schema" : "http://json-schema.org/draft-03/hyper-schema#",
- "id" : "http://json-schema.org/draft-03/json-ref#",
-
- "additionalItems" : {"$ref" : "#"},
- "additionalProperties" : {"$ref" : "#"},
-
- "links" : [
- {
- "href" : "{id}",
- "rel" : "self"
- },
-
- {
- "href" : "{$ref}",
- "rel" : "full"
- },
-
- {
- "href" : "{$schema}",
- "rel" : "describedby"
- }
- ],
-
- "fragmentResolution" : "dot-delimited"
-} \ No newline at end of file
diff --git a/deps/npm/node_modules/json-schema/draft-03/links b/deps/npm/node_modules/json-schema/draft-03/links
deleted file mode 100644
index 9fa63f98794..00000000000
--- a/deps/npm/node_modules/json-schema/draft-03/links
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "$schema" : "http://json-schema.org/draft-03/hyper-schema#",
- "id" : "http://json-schema.org/draft-03/links#",
- "type" : "object",
-
- "properties" : {
- "href" : {
- "type" : "string",
- "required" : true,
- "format" : "link-description-object-template"
- },
-
- "rel" : {
- "type" : "string",
- "required" : true
- },
-
- "targetSchema" : {"$ref" : "http://json-schema.org/draft-03/hyper-schema#"},
-
- "method" : {
- "type" : "string",
- "default" : "GET"
- },
-
- "enctype" : {
- "type" : "string",
- "requires" : "method"
- },
-
- "properties" : {
- "type" : "object",
- "additionalProperties" : {"$ref" : "http://json-schema.org/draft-03/hyper-schema#"}
- }
- }
-} \ No newline at end of file
diff --git a/deps/npm/node_modules/json-schema/draft-03/schema b/deps/npm/node_modules/json-schema/draft-03/schema
deleted file mode 100644
index 29d9469f9fb..00000000000
--- a/deps/npm/node_modules/json-schema/draft-03/schema
+++ /dev/null
@@ -1,174 +0,0 @@
-{
- "$schema" : "http://json-schema.org/draft-03/schema#",
- "id" : "http://json-schema.org/draft-03/schema#",
- "type" : "object",
-
- "properties" : {
- "type" : {
- "type" : ["string", "array"],
- "items" : {
- "type" : ["string", {"$ref" : "#"}]
- },
- "uniqueItems" : true,
- "default" : "any"
- },
-
- "properties" : {
- "type" : "object",
- "additionalProperties" : {"$ref" : "#"},
- "default" : {}
- },
-
- "patternProperties" : {
- "type" : "object",
- "additionalProperties" : {"$ref" : "#"},
- "default" : {}
- },
-
- "additionalProperties" : {
- "type" : [{"$ref" : "#"}, "boolean"],
- "default" : {}
- },
-
- "items" : {
- "type" : [{"$ref" : "#"}, "array"],
- "items" : {"$ref" : "#"},
- "default" : {}
- },
-
- "additionalItems" : {
- "type" : [{"$ref" : "#"}, "boolean"],
- "default" : {}
- },
-
- "required" : {
- "type" : "boolean",
- "default" : false
- },
-
- "dependencies" : {
- "type" : "object",
- "additionalProperties" : {
- "type" : ["string", "array", {"$ref" : "#"}],
- "items" : {
- "type" : "string"
- }
- },
- "default" : {}
- },
-
- "minimum" : {
- "type" : "number"
- },
-
- "maximum" : {
- "type" : "number"
- },
-
- "exclusiveMinimum" : {
- "type" : "boolean",
- "default" : false
- },
-
- "exclusiveMaximum" : {
- "type" : "boolean",
- "default" : false
- },
-
- "minItems" : {
- "type" : "integer",
- "minimum" : 0,
- "default" : 0
- },
-
- "maxItems" : {
- "type" : "integer",
- "minimum" : 0
- },
-
- "uniqueItems" : {
- "type" : "boolean",
- "default" : false
- },
-
- "pattern" : {
- "type" : "string",
- "format" : "regex"
- },
-
- "minLength" : {
- "type" : "integer",
- "minimum" : 0,
- "default" : 0
- },
-
- "maxLength" : {
- "type" : "integer"
- },
-
- "enum" : {
- "type" : "array",
- "minItems" : 1,
- "uniqueItems" : true
- },
-
- "default" : {
- "type" : "any"
- },
-
- "title" : {
- "type" : "string"
- },
-
- "description" : {
- "type" : "string"
- },
-
- "format" : {
- "type" : "string"
- },
-
- "divisibleBy" : {
- "type" : "number",
- "minimum" : 0,
- "exclusiveMinimum" : true,
- "default" : 1
- },
-
- "disallow" : {
- "type" : ["string", "array"],
- "items" : {
- "type" : ["string", {"$ref" : "#"}]
- },
- "uniqueItems" : true
- },
-
- "extends" : {
- "type" : [{"$ref" : "#"}, "array"],
- "items" : {"$ref" : "#"},
- "default" : {}
- },
-
- "id" : {
- "type" : "string",
- "format" : "uri"
- },
-
- "$ref" : {
- "type" : "string",
- "format" : "uri"
- },
-
- "$schema" : {
- "type" : "string",
- "format" : "uri"
- }
- },
-
- "dependencies" : {
- "exclusiveMinimum" : "minimum",
- "exclusiveMaximum" : "maximum"
- },
-
- "default" : {}
-} \ No newline at end of file
diff --git a/deps/npm/node_modules/json-schema/draft-04/hyper-schema b/deps/npm/node_modules/json-schema/draft-04/hyper-schema
deleted file mode 100644
index 63fb34d93e8..00000000000
--- a/deps/npm/node_modules/json-schema/draft-04/hyper-schema
+++ /dev/null
@@ -1,60 +0,0 @@
-{
- "$schema" : "http://json-schema.org/draft-04/hyper-schema#",
- "extends" : {"$ref" : "http://json-schema.org/draft-04/schema#"},
- "id" : "http://json-schema.org/draft-04/hyper-schema#",
-
- "properties" : {
- "links" : {
- "type" : "array",
- "items" : {"$ref" : "http://json-schema.org/draft-04/links#"}
- },
-
- "fragmentResolution" : {
- "type" : "string",
- "default" : "json-pointer"
- },
-
- "root" : {
- "type" : "boolean",
- "default" : false
- },
-
- "readonly" : {
- "type" : "boolean",
- "default" : false
- },
-
- "contentEncoding" : {
- "type" : "string"
- },
-
- "pathStart" : {
- "type" : "string",
- "format" : "uri"
- },
-
- "mediaType" : {
- "type" : "string",
- "format" : "media-type"
- }
- },
-
- "links" : [
- {
- "href" : "{id}",
- "rel" : "self"
- },
-
- {
- "href" : "{$ref}",
- "rel" : "full"
- },
-
- {
- "href" : "{$schema}",
- "rel" : "describedby"
- }
- ],
-
- "fragmentResolution" : "json-pointer"
-}
diff --git a/deps/npm/node_modules/json-schema/draft-04/links b/deps/npm/node_modules/json-schema/draft-04/links
deleted file mode 100644
index 6c06d2930f7..00000000000
--- a/deps/npm/node_modules/json-schema/draft-04/links
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "$schema" : "http://json-schema.org/draft-04/hyper-schema#",
- "id" : "http://json-schema.org/draft-04/links#",
- "type" : "object",
-
- "properties" : {
- "rel" : {
- "type" : "string"
- },
-
- "href" : {
- "type" : "string"
- },
-
- "template" : {
- "type" : "string"
- },
-
- "targetSchema" : {"$ref" : "http://json-schema.org/draft-04/hyper-schema#"},
-
- "method" : {
- "type" : "string",
- "default" : "GET"
- },
-
- "enctype" : {
- "type" : "string"
- },
-
- "properties" : {
- "type" : "object",
- "additionalProperties" : {"$ref" : "http://json-schema.org/draft-04/hyper-schema#"}
- }
- },
-
- "required" : ["rel", "href"],
-
- "dependencies" : {
- "enctype" : "method"
- }
-} \ No newline at end of file
diff --git a/deps/npm/node_modules/json-schema/draft-04/schema b/deps/npm/node_modules/json-schema/draft-04/schema
deleted file mode 100644
index 4231b169217..00000000000
--- a/deps/npm/node_modules/json-schema/draft-04/schema
+++ /dev/null
@@ -1,189 +0,0 @@
-{
- "$schema" : "http://json-schema.org/draft-04/schema#",
- "id" : "http://json-schema.org/draft-04/schema#",
- "type" : "object",
-
- "properties" : {
- "type" : {
- "type" : [
- {
- "id" : "#simple-type",
- "type" : "string",
- "enum" : ["object", "array", "string", "number", "boolean", "null", "any"]
- },
- "array"
- ],
- "items" : {
- "type" : [
- {"$ref" : "#simple-type"},
- {"$ref" : "#"}
- ]
- },
- "uniqueItems" : true,
- "default" : "any"
- },
-
- "disallow" : {
- "type" : ["string", "array"],
- "items" : {
- "type" : ["string", {"$ref" : "#"}]
- },
- "uniqueItems" : true
- },
-
- "extends" : {
- "type" : [{"$ref" : "#"}, "array"],
- "items" : {"$ref" : "#"},
- "default" : {}
- },
-
- "enum" : {
- "type" : "array",
- "minItems" : 1,
- "uniqueItems" : true
- },
-
- "minimum" : {
- "type" : "number"
- },
-
- "maximum" : {
- "type" : "number"
- },
-
- "exclusiveMinimum" : {
- "type" : "boolean",
- "default" : false
- },
-
- "exclusiveMaximum" : {
- "type" : "boolean",
- "default" : false
- },
-
- "divisibleBy" : {
- "type" : "number",
- "minimum" : 0,
- "exclusiveMinimum" : true,
- "default" : 1
- },
-
- "minLength" : {
- "type" : "integer",
- "minimum" : 0,
- "default" : 0
- },
-
- "maxLength" : {
- "type" : "integer"
- },
-
- "pattern" : {
- "type" : "string"
- },
-
- "items" : {
- "type" : [{"$ref" : "#"}, "array"],
- "items" : {"$ref" : "#"},
- "default" : {}
- },
-
- "additionalItems" : {
- "type" : [{"$ref" : "#"}, "boolean"],
- "default" : {}
- },
-
- "minItems" : {
- "type" : "integer",
- "minimum" : 0,
- "default" : 0
- },
-
- "maxItems" : {
- "type" : "integer",
- "minimum" : 0
- },
-
- "uniqueItems" : {
- "type" : "boolean",
- "default" : false
- },
-
- "properties" : {
- "type" : "object",
- "additionalProperties" : {"$ref" : "#"},
- "default" : {}
- },
-
- "patternProperties" : {
- "type" : "object",
- "additionalProperties" : {"$ref" : "#"},
- "default" : {}
- },
-
- "additionalProperties" : {
- "type" : [{"$ref" : "#"}, "boolean"],
- "default" : {}
- },
-
- "minProperties" : {
- "type" : "integer",
- "minimum" : 0,
- "default" : 0
- },
-
- "maxProperties" : {
- "type" : "integer",
- "minimum" : 0
- },
-
- "required" : {
- "type" : "array",
- "items" : {
- "type" : "string"
- }
- },
-
- "dependencies" : {
- "type" : "object",
- "additionalProperties" : {
- "type" : ["string", "array", {"$ref" : "#"}],
- "items" : {
- "type" : "string"
- }
- },
- "default" : {}
- },
-
- "id" : {
- "type" : "string"
- },
-
- "$ref" : {
- "type" : "string"
- },
-
- "$schema" : {
- "type" : "string"
- },
-
- "title" : {
- "type" : "string"
- },
-
- "description" : {
- "type" : "string"
- },
-
- "default" : {
- "type" : "any"
- }
- },
-
- "dependencies" : {
- "exclusiveMinimum" : "minimum",
- "exclusiveMaximum" : "maximum"
- },
-
- "default" : {}
-} \ No newline at end of file
diff --git a/deps/npm/node_modules/json-schema/draft-zyp-json-schema-03.xml b/deps/npm/node_modules/json-schema/draft-zyp-json-schema-03.xml
deleted file mode 100644
index cf606208197..00000000000
--- a/deps/npm/node_modules/json-schema/draft-zyp-json-schema-03.xml
+++ /dev/null
@@ -1,1120 +0,0 @@
-<?xml version="1.0" encoding="US-ASCII"?>
-<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
-<!ENTITY rfc4627 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4627.xml">
-<!ENTITY rfc3986 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3986.xml">
-<!ENTITY rfc2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
-<!ENTITY rfc4287 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4287.xml">
-<!ENTITY rfc2616 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2616.xml">
-<!ENTITY rfc3339 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3339.xml">
-<!ENTITY rfc2045 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2045.xml">
-<!ENTITY rfc5226 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5226.xml">
-<!ENTITY rfc2396 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2396.xml">
-<!ENTITY iddiscovery SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.hammer-discovery.xml">
-<!ENTITY uritemplate SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.gregorio-uritemplate.xml">
-<!ENTITY linkheader SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.nottingham-http-link-header.xml">
-<!ENTITY html401 SYSTEM "http://xml.resource.org/public/rfc/bibxml4/reference.W3C.REC-html401-19991224.xml">
-<!ENTITY css21 SYSTEM "http://xml.resource.org/public/rfc/bibxml4/reference.W3C.CR-CSS21-20070719.xml">
-]>
-<?rfc toc="yes"?>
-<?rfc symrefs="yes"?>
-<?rfc compact="yes"?>
-<?rfc subcompact="no"?>
-<?rfc strict="no"?>
-<?rfc rfcedstyle="yes"?>
-<rfc category="info" docName="draft-zyp-json-schema-03" ipr="trust200902">
- <front>
- <title abbrev="JSON Schema Media Type">A JSON Media Type for Describing the Structure and Meaning of JSON Documents</title>
-
- <author fullname="Kris Zyp" initials="K" role="editor" surname="Zyp">
- <organization>SitePen (USA)</organization>
- <address>
- <postal>
- <street>530 Lytton Avenue</street>
- <city>Palo Alto, CA 94301</city>
- <country>USA</country>
- </postal>
- <phone>+1 650 968 8787</phone>
- <email>kris@sitepen.com</email>
- </address>
- </author>
-
- <author fullname="Gary Court" initials="G" surname="Court">
- <address>
- <postal>
- <street></street>
- <city>Calgary, AB</city>
- <country>Canada</country>
- </postal>
- <email>gary.court@gmail.com</email>
- </address>
- </author>
-
- <date year="2011" />
- <workgroup>Internet Engineering Task Force</workgroup>
- <keyword>JSON</keyword>
- <keyword>Schema</keyword>
- <keyword>JavaScript</keyword>
- <keyword>Object</keyword>
- <keyword>Notation</keyword>
- <keyword>Hyper Schema</keyword>
- <keyword>Hypermedia</keyword>
-
- <abstract>
- <t>
- JSON (JavaScript Object Notation) Schema defines the media type "application/schema+json",
- a JSON based format for defining
- the structure of JSON data. JSON Schema provides a contract for what JSON
- data is required for a given application and how to interact with it. JSON
- Schema is intended to define validation, documentation, hyperlink
- navigation, and interaction control of JSON data.
- </t>
- </abstract>
- </front>
-
- <middle>
- <section title="Introduction">
- <t>
- JSON (JavaScript Object Notation) Schema is a JSON media type for defining
- the structure of JSON data. JSON Schema provides a contract for what JSON
- data is required for a given application and how to interact with it. JSON
- Schema is intended to define validation, documentation, hyperlink
- navigation, and interaction control of JSON data.
- </t>
- </section>
-
- <section title="Conventions">
- <t>
- <!-- The text in this section has been copied from the official boilerplate,
- and should not be modified.-->
-
- The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
- "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
- interpreted as described in <xref target="RFC2119">RFC 2119</xref>.
- </t>
- </section>
-
- <!-- ********************************************* -->
-
- <section title="Overview">
- <t>
- JSON Schema defines the media type "application/schema+json" for
- describing the structure of other
- JSON documents. JSON Schema is JSON-based and includes facilities
- for describing the structure of JSON documents in terms of
- allowable values, descriptions, and interpreting relations with other resources.
- </t>
- <t>
- JSON Schema format is organized into several separate definitions. The first
- definition is the core schema specification. This definition is primary
- concerned with describing a JSON structure and specifying valid elements
- in the structure. The second definition is the Hyper Schema specification
- which is intended define elements in a structure that can be interpreted as
- hyperlinks.
- Hyper Schema builds on JSON Schema to describe the hyperlink structure of
- other JSON documents and elements of interaction. This allows user agents to be able to successfully navigate
- JSON documents based on their schemas.
- </t>
- <t>
- Cumulatively JSON Schema acts as a meta-document that can be used to define the required type and constraints on
- property values, as well as define the meaning of the property values
- for the purpose of describing a resource and determining hyperlinks
- within the representation.
- </t>
- <figure>
- <preamble>An example JSON Schema that describes products might look like:</preamble>
- <artwork>
-<![CDATA[
-{
- "title": "Product",
- "properties": {
- "id": {
- "type": "number",
- "description": "Product identifier",
- "required": true
- },
- "name": {
- "description": "Name of the product",
- "type": "string",
- "required": true
- },
- "price": {
- "required": true,
- "type": "number",
- "minimum": 0,
- "required": true
- },
- "tags": {
- "type": "array",
- "items": {
- "type": "string"
- }
- }
- },
- "links": [{
- "rel": "full",
- "href": "{id}"
- }, {
- "rel": "comments",
- "href": "comments/?id={id}"
- }]
-}
-]]>
- </artwork>
- <postamble>
- This schema defines the properties of the instance JSON documents,
- the required properties (id, name, and price), as well as an optional
- property (tags). This also defines the link relations of the instance
- JSON documents.
- </postamble>
- </figure>
-
- <section title="Terminology">
- <t>
- For this specification, <spanx style="strong">schema</spanx> will be used to denote a JSON Schema
- definition, and an <spanx style="strong">instance</spanx> refers to a JSON value that the schema
- will be describing and validating.
- </t>
- </section>
-
- <section title="Design Considerations">
- <t>
- The JSON Schema media type does not attempt to dictate the structure of JSON
- representations that contain data, but rather provides a separate format
- for flexibly communicating how a JSON representation should be
- interpreted and validated, such that user agents can properly understand
- acceptable structures and extrapolate hyperlink information
- with the JSON document. It is acknowledged that JSON documents come
- in a variety of structures, and JSON is unique in that the structure
- of stored data structures often prescribes a non-ambiguous definite
- JSON representation. Attempting to force a specific structure is generally
- not viable, and therefore JSON Schema allows for a great flexibility
- in the structure of the JSON data that it describes.
- </t>
- <t>
- This specification is protocol agnostic.
- The underlying protocol (such as HTTP) should sufficiently define the
- semantics of the client-server interface, the retrieval of resource
- representations linked to by JSON representations, and modification of
- those resources. The goal of this
- format is to sufficiently describe JSON structures such that one can
- utilize existing information available in existing JSON
- representations from a large variety of services that leverage a representational state transfer
- architecture using existing protocols.
- </t>
- </section>
- </section>
-
- <section title="Schema/Instance Association">
- <t>
- JSON Schema instances are correlated to their schema by the "describedby"
- relation, where the schema is defined to be the target of the relation.
- Instance representations may be of the "application/json" media type or
- any other subtype. Consequently, dictating how an instance
- representation should specify the relation to the schema is beyond the normative scope
- of this document (since this document specifically defines the JSON
- Schema media type, and no other), but it is recommended that instances
- specify their schema so that user agents can interpret the instance
- representation and messages may retain the self-descriptive
- characteristic, avoiding the need for out-of-band information about
- instance data. Two approaches are recommended for declaring the
- relation to the schema that describes the meaning of a JSON instance's (or collection
- of instances) structure. A MIME type parameter named
- "profile" or a relation of "describedby" (which could be defined by a Link header) may be used:
-
- <figure>
- <artwork>
-<![CDATA[
-Content-Type: application/my-media-type+json;
- profile=http://json.com/my-hyper-schema
-]]>
- </artwork>
- </figure>
-
- or if the content is being transferred by a protocol (such as HTTP) that
- provides headers, a Link header can be used:
-
- <figure>
- <artwork>
-<![CDATA[
-Link: <http://json.com/my-hyper-schema>; rel="describedby"
-]]>
- </artwork>
- </figure>
-
- Instances MAY specify multiple schemas, to indicate all the schemas that
- are applicable to the data, and the data SHOULD be valid by all the schemas.
- The instance data MAY have multiple schemas
- that it is defined by (the instance data SHOULD be valid for those schemas).
- Or if the document is a collection of instances, the collection MAY contain
- instances from different schemas. When collections contain heterogeneous
- instances, the "pathStart" attribute MAY be specified in the
- schema to disambiguate which schema should be applied for each item in the
- collection. However, ultimately, the mechanism for referencing a schema is up to the
- media type of the instance documents (if they choose to specify that schemas
- can be referenced).
- </t>
-
- <section title="Self-Descriptive Schema">
- <t>
- JSON Schemas can themselves be described using JSON Schemas.
- A self-describing JSON Schema for the core JSON Schema can
- be found at <eref target="http://json-schema.org/schema">http://json-schema.org/schema</eref> for the latest version or
- <eref target="http://json-schema.org/draft-03/schema">http://json-schema.org/draft-03/schema</eref> for the draft-03 version. The hyper schema
- self-description can be found at <eref target="http://json-schema.org/hyper-schema">http://json-schema.org/hyper-schema</eref>
- or <eref target="http://json-schema.org/draft-03/hyper-schema">http://json-schema.org/draft-03/hyper-schema</eref>. All schemas
- used within a protocol with media type definitions
- SHOULD include a MIME parameter that refers to the self-descriptive
- hyper schema or another schema that extends this hyper schema:
-
- <figure>
- <artwork>
-<![CDATA[
-Content-Type: application/json;
- profile=http://json-schema.org/draft-03/hyper-schema
-]]>
- </artwork>
- </figure>
- </t>
- </section>
- </section>
-
- <section title="Core Schema Definition">
- <t>
- A JSON Schema is a JSON Object that defines various attributes
- (including usage and valid values) of a JSON value. JSON
- Schema has recursive capabilities; there are a number of elements
- in the structure that allow for nested JSON Schemas.
- </t>
-
- <figure>
- <preamble>An example JSON Schema definition could look like:</preamble>
- <artwork>
-<![CDATA[
-{
- "description": "A person",
- "type": "object",
-
- "properties": {
- "name": {
- "type": "string"
- },
- "age": {
- "type": "integer",
- "maximum": 125
- }
- }
-}
-]]>
- </artwork>
- </figure>
-
- <t>
- A JSON Schema object may have any of the following properties, called schema
- attributes (all attributes are optional):
- </t>
-
- <section title="type">
- <t>
- This attribute defines what the primitive type or the schema of the instance MUST be in order to validate.
- This attribute can take one of two forms:
-
- <list style="hanging">
- <t hangText="Simple Types">
- A string indicating a primitive or simple type. The following are acceptable string values:
-
- <list style="hanging">
- <t hangText="string">Value MUST be a string.</t>
- <t hangText="number">Value MUST be a number, floating point numbers are allowed. </t>
- <t hangText="integer">Value MUST be an integer, no floating point numbers are allowed. This is a subset of the number type.</t>
- <t hangText="boolean">Value MUST be a boolean. </t>
- <t hangText="object">Value MUST be an object.</t>
- <t hangText="array">Value MUST be an array.</t>
- <t hangText="null">Value MUST be null. Note this is mainly for purpose of being able use union types to define nullability. If this type is not included in a union, null values are not allowed (the primitives listed above do not allow nulls on their own).</t>
- <t hangText="any">Value MAY be of any type including null.</t>
- </list>
-
- If the property is not defined or is not in this list, then any type of value is acceptable.
- Other type values MAY be used for custom purposes, but minimal validators of the specification
- implementation can allow any instance value on unknown type values.
- </t>
-
- <t hangText="Union Types">
- An array of two or more simple type definitions. Each item in the array MUST be a simple type definition or a schema.
- The instance value is valid if it is of the same type as one of the simple type definitions, or valid by one of the schemas, in the array.
- </t>
- </list>
- </t>
-
- <figure>
- <preamble>For example, a schema that defines if an instance can be a string or a number would be:</preamble>
- <artwork>
-<![CDATA[
-{
- "type": ["string", "number"]
-}
-]]></artwork>
- </figure>
- </section>
-
- <section title="properties" anchor="properties">
- <t>This attribute is an object with property definitions that define the valid values of instance object property values. When the instance value is an object, the property values of the instance object MUST conform to the property definitions in this object. In this object, each property definition's value MUST be a schema, and the property's name MUST be the name of the instance property that it defines. The instance property value MUST be valid according to the schema from the property definition. Properties are considered unordered, the order of the instance properties MAY be in any order.</t>
- </section>
-
- <section title="patternProperties">
- <t>This attribute is an object that defines the schema for a set of property names of an object instance. The name of each property of this attribute's object is a regular expression pattern in the ECMA 262/Perl 5 format, while the value is a schema. If the pattern matches the name of a property on the instance object, the value of the instance's property MUST be valid against the pattern name's schema value.</t>
- </section>
-
- <section title="additionalProperties" anchor="additionalProperties">
- <t>This attribute defines a schema for all properties that are not explicitly defined in an object type definition. If specified, the value MUST be a schema or a boolean. If false is provided, no additional properties are allowed beyond the properties defined in the schema. The default value is an empty schema which allows any value for additional properties.</t>
- </section>
-
- <section title="items">
- <t>This attribute defines the allowed items in an instance array, and MUST be a schema or an array of schemas. The default value is an empty schema which allows any value for items in the instance array.</t>
- <t>When this attribute value is a schema and the instance value is an array, then all the items in the array MUST be valid according to the schema.</t>
- <t>When this attribute value is an array of schemas and the instance value is an array, each position in the instance array MUST conform to the schema in the corresponding position for this array. This called tuple typing. When tuple typing is used, additional items are allowed, disallowed, or constrained by the <xref target="additionalItems">"additionalItems"</xref> attribute using the same rules as <xref target="additionalProperties">"additionalProperties"</xref> for objects.</t>
- </section>
-
- <section title="additionalItems" anchor="additionalItems">
- <t>This provides a definition for additional items in an array instance when tuple definitions of the items is provided. This can be false to indicate additional items in the array are not allowed, or it can be a schema that defines the schema of the additional items.</t>
- </section>
-
- <section title="required">
- <t>This attribute indicates if the instance must have a value, and not be undefined. This is false by default, making the instance optional.</t>
- </section>
-
- <section title="dependencies">
- <t>This attribute is an object that defines the requirements of a property on an instance object. If an object instance has a property with the same name as a property in this attribute's object, then the instance must be valid against the attribute's property value (hereafter referred to as the "dependency value").</t>
- <t>
- The dependency value can take one of two forms:
-
- <list style="hanging">
- <t hangText="Simple Dependency">
- If the dependency value is a string, then the instance object MUST have a property with the same name as the dependency value.
- If the dependency value is an array of strings, then the instance object MUST have a property with the same name as each string in the dependency value's array.
- </t>
- <t hangText="Schema Dependency">
- If the dependency value is a schema, then the instance object MUST be valid against the schema.
- </t>
- </list>
- </t>
- </section>
-
- <section title="minimum">
- <t>This attribute defines the minimum value of the instance property when the type of the instance value is a number.</t>
- </section>
-
- <section title="maximum">
- <t>This attribute defines the maximum value of the instance property when the type of the instance value is a number.</t>
- </section>
-
- <section title="exclusiveMinimum">
- <t>This attribute indicates if the value of the instance (if the instance is a number) can not equal the number defined by the "minimum" attribute. This is false by default, meaning the instance value can be greater then or equal to the minimum value.</t>
- </section>
-
- <section title="exclusiveMaximum">
- <t>This attribute indicates if the value of the instance (if the instance is a number) can not equal the number defined by the "maximum" attribute. This is false by default, meaning the instance value can be less then or equal to the maximum value.</t>
- </section>
-
- <section title="minItems">
- <t>This attribute defines the minimum number of values in an array when the array is the instance value.</t>
- </section>
-
- <section title="maxItems">
- <t>This attribute defines the maximum number of values in an array when the array is the instance value.</t>
- </section>
-
- <section title="uniqueItems" anchor="uniqueItems">
- <t>This attribute indicates that all items in an array instance MUST be unique (contains no two identical values).</t>
- <t>
- Two instance are consider equal if they are both of the same type and:
-
- <list>
- <t>are null; or</t>
- <t>are booleans/numbers/strings and have the same value; or</t>
- <t>are arrays, contains the same number of items, and each item in the array is equal to the corresponding item in the other array; or</t>
- <t>are objects, contains the same property names, and each property in the object is equal to the corresponding property in the other object.</t>
- </list>
- </t>
- </section>
-
- <section title="pattern">
- <t>When the instance value is a string, this provides a regular expression that a string instance MUST match in order to be valid. Regular expressions SHOULD follow the regular expression specification from ECMA 262/Perl 5</t>
- </section>
-
- <section title="minLength">
- <t>When the instance value is a string, this defines the minimum length of the string.</t>
- </section>
-
- <section title="maxLength">
- <t>When the instance value is a string, this defines the maximum length of the string.</t>
- </section>
-
- <section title="enum">
- <t>This provides an enumeration of all possible values that are valid for the instance property. This MUST be an array, and each item in the array represents a possible value for the instance value. If this attribute is defined, the instance value MUST be one of the values in the array in order for the schema to be valid. Comparison of enum values uses the same algorithm as defined in <xref target="uniqueItems">"uniqueItems"</xref>.</t>
- </section>
-
- <section title="default">
- <t>This attribute defines the default value of the instance when the instance is undefined.</t>
- </section>
-
- <section title="title">
- <t>This attribute is a string that provides a short description of the instance property.</t>
- </section>
-
- <section title="description">
- <t>This attribute is a string that provides a full description of the of purpose the instance property.</t>
- </section>
-
- <section title="format">
- <t>This property defines the type of data, content type, or microformat to be expected in the instance property values. A format attribute MAY be one of the values listed below, and if so, SHOULD adhere to the semantics describing for the format. A format SHOULD only be used to give meaning to primitive types (string, integer, number, or boolean). Validators MAY (but are not required to) validate that the instance values conform to a format.</t>
-
- <t>
- The following formats are predefined:
-
- <list style="hanging">
- <t hangText="date-time">This SHOULD be a date in ISO 8601 format of YYYY-MM-DDThh:mm:ssZ in UTC time. This is the recommended form of date/timestamp.</t>
- <t hangText="date">This SHOULD be a date in the format of YYYY-MM-DD. It is recommended that you use the "date-time" format instead of "date" unless you need to transfer only the date part.</t>
- <t hangText="time">This SHOULD be a time in the format of hh:mm:ss. It is recommended that you use the "date-time" format instead of "time" unless you need to transfer only the time part.</t>
- <t hangText="utc-millisec">This SHOULD be the difference, measured in milliseconds, between the specified time and midnight, 00:00 of January 1, 1970 UTC. The value SHOULD be a number (integer or float).</t>
- <t hangText="regex">A regular expression, following the regular expression specification from ECMA 262/Perl 5.</t>
- <t hangText="color">This is a CSS color (like "#FF0000" or "red"), based on <xref target="W3C.CR-CSS21-20070719">CSS 2.1</xref>.</t>
- <t hangText="style">This is a CSS style definition (like "color: red; background-color:#FFF"), based on <xref target="W3C.CR-CSS21-20070719">CSS 2.1</xref>.</t>
- <t hangText="phone">This SHOULD be a phone number (format MAY follow E.123).</t>
- <t hangText="uri">This value SHOULD be a URI.</t>
- <t hangText="email">This SHOULD be an email address.</t>
- <t hangText="ip-address">This SHOULD be an ip version 4 address.</t>
- <t hangText="ipv6">This SHOULD be an ip version 6 address.</t>
- <t hangText="host-name">This SHOULD be a host-name.</t>
- </list>
- </t>
-
- <t>Additional custom formats MAY be created. These custom formats MAY be expressed as an URI, and this URI MAY reference a schema of that format.</t>
- </section>
-
- <section title="divisibleBy">
- <t>This attribute defines what value the number instance must be divisible by with no remainder (the result of the division must be an integer.) The value of this attribute SHOULD NOT be 0.</t>
- </section>
-
- <section title="disallow">
- <t>This attribute takes the same values as the "type" attribute, however if the instance matches the type or if this value is an array and the instance matches any type or schema in the array, then this instance is not valid.</t>
- </section>
-
- <section title="extends">
- <t>The value of this property MUST be another schema which will provide a base schema which the current schema will inherit from. The inheritance rules are such that any instance that is valid according to the current schema MUST be valid according to the referenced schema. This MAY also be an array, in which case, the instance MUST be valid for all the schemas in the array. A schema that extends another schema MAY define additional attributes, constrain existing attributes, or add other constraints.</t>
- <t>
- Conceptually, the behavior of extends can be seen as validating an
- instance against all constraints in the extending schema as well as
- the extended schema(s). More optimized implementations that merge
- schemas are possible, but are not required. Some examples of using "extends":
-
- <figure>
- <artwork>
-<![CDATA[
-{
- "description": "An adult",
- "properties": {
- "age": {
- "minimum": 21
- }
- },
- "extends": {"$ref": "person"}
-}
-]]>
- </artwork>
- </figure>
-
- <figure>
- <artwork>
-<![CDATA[
-{
- "description": "Extended schema",
- "properties": {
- "deprecated": {
- "type": "boolean"
- }
- },
- "extends": {"$ref": "http://json-schema.org/draft-03/schema"}
-}
-]]>
- </artwork>
- </figure>
- </t>
- </section>
-
- <section title="id">
- <t>
- This attribute defines the current URI of this schema (this attribute is
- effectively a "self" link). This URI MAY be relative or absolute. If
- the URI is relative it is resolved against the current URI of the parent
- schema it is contained in. If this schema is not contained in any
- parent schema, the current URI of the parent schema is held to be the
- URI under which this schema was addressed. If id is missing, the current URI of a schema is
- defined to be that of the parent schema. The current URI of the schema
- is also used to construct relative references such as for $ref.
- </t>
- </section>
-
- <section title="$ref">
- <t>
- This attribute defines a URI of a schema that contains the full representation of this schema.
- When a validator encounters this attribute, it SHOULD replace the current schema with the schema referenced by the value's URI (if known and available) and re-validate the instance.
- This URI MAY be relative or absolute, and relative URIs SHOULD be resolved against the URI of the current schema.
- </t>
- </section>
-
- <section title="$schema">
- <t>
- This attribute defines a URI of a JSON Schema that is the schema of the current schema.
- When this attribute is defined, a validator SHOULD use the schema referenced by the value's URI (if known and available) when resolving <xref target="hyper-schema">Hyper Schema</xref><xref target="links">links</xref>.
- </t>
-
- <t>
- A validator MAY use this attribute's value to determine which version of JSON Schema the current schema is written in, and provide the appropriate validation features and behavior.
- Therefore, it is RECOMMENDED that all schema authors include this attribute in their schemas to prevent conflicts with future JSON Schema specification changes.
- </t>
- </section>
- </section>
-
- <section title="Hyper Schema" anchor="hyper-schema">
- <t>
- The following attributes are specified in addition to those
- attributes that already provided by the core schema with the specific
- purpose of informing user agents of relations between resources based
- on JSON data. Just as with JSON
- schema attributes, all the attributes in hyper schemas are optional.
- Therefore, an empty object is a valid (non-informative) schema, and
- essentially describes plain JSON (no constraints on the structures).
- Addition of attributes provides additive information for user agents.
- </t>
-
- <section title="links" anchor="links">
- <t>
- The value of the links property MUST be an array, where each item
- in the array is a link description object which describes the link
- relations of the instances.
- </t>
-
- <section title="Link Description Object">
- <t>
- A link description object is used to describe link relations. In
- the context of a schema, it defines the link relations of the
- instances of the schema, and can be parameterized by the instance
- values. The link description format can be used on its own in
- regular (non-schema documents), and use of this format can
- be declared by referencing the normative link description
- schema as the the schema for the data structure that uses the
- links. The URI of the normative link description schema is:
- <eref target="http://json-schema.org/links">http://json-schema.org/links</eref> (latest version) or
- <eref target="http://json-schema.org/draft-03/links">http://json-schema.org/draft-03/links</eref> (draft-03 version).
- </t>
-
- <section title="href">
- <t>
- The value of the "href" link description property
- indicates the target URI of the related resource. The value
- of the instance property SHOULD be resolved as a URI-Reference per <xref target="RFC3986">RFC 3986</xref>
- and MAY be a relative URI. The base URI to be used for relative resolution
- SHOULD be the URI used to retrieve the instance object (not the schema)
- when used within a schema. Also, when links are used within a schema, the URI
- SHOULD be parametrized by the property values of the instance
- object, if property values exist for the corresponding variables
- in the template (otherwise they MAY be provided from alternate sources, like user input).
- </t>
-
- <t>
- Instance property values SHOULD be substituted into the URIs where
- matching braces ('{', '}') are found surrounding zero or more characters,
- creating an expanded URI. Instance property value substitutions are resolved
- by using the text between the braces to denote the property name
- from the instance to get the value to substitute.
-
- <figure>
- <preamble>For example, if an href value is defined:</preamble>
- <artwork>
-<![CDATA[
-http://somesite.com/{id}
-]]>
- </artwork>
- <postamble>Then it would be resolved by replace the value of the "id" property value from the instance object.</postamble>
- </figure>
-
- <figure>
- <preamble>If the value of the "id" property was "45", the expanded URI would be:</preamble>
- <artwork>
-<![CDATA[
-http://somesite.com/45
-]]>
- </artwork>
- </figure>
-
- If matching braces are found with the string "@" (no quotes) between the braces, then the
- actual instance value SHOULD be used to replace the braces, rather than a property value.
- This should only be used in situations where the instance is a scalar (string,
- boolean, or number), and not for objects or arrays.
- </t>
- </section>
-
- <section title="rel">
- <t>
- The value of the "rel" property indicates the name of the
- relation to the target resource. The relation to the target SHOULD be interpreted as specifically from the instance object that the schema (or sub-schema) applies to, not just the top level resource that contains the object within its hierarchy. If a resource JSON representation contains a sub object with a property interpreted as a link, that sub-object holds the relation with the target. A relation to target from the top level resource MUST be indicated with the schema describing the top level JSON representation.
- </t>
-
- <t>
- Relationship definitions SHOULD NOT be media type dependent, and users are encouraged to utilize existing accepted relation definitions, including those in existing relation registries (see <xref target="RFC4287">RFC 4287</xref>). However, we define these relations here for clarity of normative interpretation within the context of JSON hyper schema defined relations:
-
- <list style="hanging">
- <t hangText="self">
- If the relation value is "self", when this property is encountered in
- the instance object, the object represents a resource and the instance object is
- treated as a full representation of the target resource identified by
- the specified URI.
- </t>
-
- <t hangText="full">
- This indicates that the target of the link is the full representation for the instance object. The object that contains this link possibly may not be the full representation.
- </t>
-
- <t hangText="describedby">
- This indicates the target of the link is the schema for the instance object. This MAY be used to specifically denote the schemas of objects within a JSON object hierarchy, facilitating polymorphic type data structures.
- </t>
-
- <t hangText="root">
- This relation indicates that the target of the link
- SHOULD be treated as the root or the body of the representation for the
- purposes of user agent interaction or fragment resolution. All other
- properties of the instance objects can be regarded as meta-data
- descriptions for the data.
- </t>
- </list>
- </t>
-
- <t>
- The following relations are applicable for schemas (the schema as the "from" resource in the relation):
-
- <list style="hanging">
- <t hangText="instances">This indicates the target resource that represents collection of instances of a schema.</t>
- <t hangText="create">This indicates a target to use for creating new instances of a schema. This link definition SHOULD be a submission link with a non-safe method (like POST).</t>
- </list>
- </t>
-
- <t>
- <figure>
- <preamble>For example, if a schema is defined:</preamble>
- <artwork>
-<![CDATA[
-{
- "links": [{
- "rel": "self",
- "href": "{id}"
- }, {
- "rel": "up",
- "href": "{upId}"
- }, {
- "rel": "children",
- "href": "?upId={id}"
- }]
-}
-]]>
- </artwork>
- </figure>
-
- <figure>
- <preamble>And if a collection of instance resource's JSON representation was retrieved:</preamble>
- <artwork>
-<![CDATA[
-GET /Resource/
-
-[{
- "id": "thing",
- "upId": "parent"
-}, {
- "id": "thing2",
- "upId": "parent"
-}]
-]]>
- </artwork>
- </figure>
-
- This would indicate that for the first item in the collection, its own
- (self) URI would resolve to "/Resource/thing" and the first item's "up"
- relation SHOULD be resolved to the resource at "/Resource/parent".
- The "children" collection would be located at "/Resource/?upId=thing".
- </t>
- </section>
-
- <section title="targetSchema">
- <t>This property value is a schema that defines the expected structure of the JSON representation of the target of the link.</t>
- </section>
-
- <section title="Submission Link Properties">
- <t>
- The following properties also apply to link definition objects, and
- provide functionality analogous to HTML forms, in providing a
- means for submitting extra (often user supplied) information to send to a server.
- </t>
-
- <section title="method">
- <t>
- This attribute defines which method can be used to access the target resource.
- In an HTTP environment, this would be "GET" or "POST" (other HTTP methods
- such as "PUT" and "DELETE" have semantics that are clearly implied by
- accessed resources, and do not need to be defined here).
- This defaults to "GET".
- </t>
- </section>
-
- <section title="enctype">
- <t>
- If present, this property indicates a query media type format that the server
- supports for querying or posting to the collection of instances at the target
- resource. The query can be
- suffixed to the target URI to query the collection with
- property-based constraints on the resources that SHOULD be returned from
- the server or used to post data to the resource (depending on the method).
-
- <figure>
- <preamble>For example, with the following schema:</preamble>
- <artwork>
-<![CDATA[
-{
- "links": [{
- "enctype": "application/x-www-form-urlencoded",
- "method": "GET",
- "href": "/Product/",
- "properties": {
- "name": {
- "description": "name of the product"
- }
- }
- }]
-}
-]]>
- </artwork>
- <postamble>This indicates that the client can query the server for instances that have a specific name.</postamble>
- </figure>
-
- <figure>
- <preamble>For example:</preamble>
- <artwork>
-<![CDATA[
-/Product/?name=Slinky
-]]>
- </artwork>
- </figure>
-
- If no enctype or method is specified, only the single URI specified by
- the href property is defined. If the method is POST, "application/json" is
- the default media type.
- </t>
- </section>
-
- <section title="schema">
- <t>
- This attribute contains a schema which defines the acceptable structure of the submitted
- request (for a GET request, this schema would define the properties for the query string
- and for a POST request, this would define the body).
- </t>
- </section>
- </section>
- </section>
- </section>
-
- <section title="fragmentResolution">
- <t>
- This property indicates the fragment resolution protocol to use for
- resolving fragment identifiers in URIs within the instance
- representations. This applies to the instance object URIs and all
- children of the instance object's URIs. The default fragment resolution
- protocol is "slash-delimited", which is defined below. Other fragment
- resolution protocols MAY be used, but are not defined in this document.
- </t>
-
- <t>
- The fragment identifier is based on <xref target="RFC2396">RFC 2396, Sec 5</xref>, and defines the
- mechanism for resolving references to entities within a document.
- </t>
-
- <section title="slash-delimited fragment resolution">
- <t>
- With the slash-delimited fragment resolution protocol, the fragment
- identifier is interpreted as a series of property reference tokens that start with and
- are delimited by the "/" character (\x2F). Each property reference token
- is a series of unreserved or escaped URI characters. Each property
- reference token SHOULD be interpreted, starting from the beginning of
- the fragment identifier, as a path reference in the target JSON
- structure. The final target value of the fragment can be determined by
- starting with the root of the JSON structure from the representation of
- the resource identified by the pre-fragment URI. If the target is a JSON
- object, then the new target is the value of the property with the name
- identified by the next property reference token in the fragment. If the
- target is a JSON array, then the target is determined by finding the
- item in array the array with the index defined by the next property
- reference token (which MUST be a number). The target is successively
- updated for each property reference token, until the entire fragment has
- been traversed.
- </t>
-
- <t>
- Property names SHOULD be URI-encoded. In particular, any "/" in a
- property name MUST be encoded to avoid being interpreted as a property
- delimiter.
- </t>
-
- <t>
- <figure>
- <preamble>For example, for the following JSON representation:</preamble>
- <artwork>
-<![CDATA[
-{
- "foo": {
- "anArray": [{
- "prop": 44
- }],
- "another prop": {
- "baz": "A string"
- }
- }
-}
-]]>
- </artwork>
- </figure>
-
- <figure>
- <preamble>The following fragment identifiers would be resolved:</preamble>
- <artwork>
-<![CDATA[
-fragment identifier resolution
-------------------- ----------
-# self, the root of the resource itself
-#/foo the object referred to by the foo property
-#/foo/another%20prop the object referred to by the "another prop"
- property of the object referred to by the
- "foo" property
-#/foo/another%20prop/baz the string referred to by the value of "baz"
- property of the "another prop" property of
- the object referred to by the "foo" property
-#/foo/anArray/0 the first object in the "anArray" array
-]]>
- </artwork>
- </figure>
- </t>
- </section>
-
- <section title="dot-delimited fragment resolution">
- <t>
- The dot-delimited fragment resolution protocol is the same as
- slash-delimited fragment resolution protocol except that the "." character
- (\x2E) is used as the delimiter between property names (instead of "/") and
- the path does not need to start with a ".". For example, #.foo and #foo are a valid fragment
- identifiers for referencing the value of the foo propery.
- </t>
- </section>
- </section>
-
- <section title="readonly">
- <t>This attribute indicates that the instance property SHOULD NOT be changed. Attempts by a user agent to modify the value of this property are expected to be rejected by a server.</t>
- </section>
-
- <section title="contentEncoding">
- <t>If the instance property value is a string, this attribute defines that the string SHOULD be interpreted as binary data and decoded using the encoding named by this schema property. <xref target="RFC2045">RFC 2045, Sec 6.1</xref> lists the possible values for this property.</t>
- </section>
-
- <section title="pathStart">
- <t>
- This attribute is a URI that defines what the instance's URI MUST start with in order to validate.
- The value of the "pathStart" attribute MUST be resolved as per <xref target="RFC3986">RFC 3986, Sec 5</xref>,
- and is relative to the instance's URI.
- </t>
-
- <t>
- When multiple schemas have been referenced for an instance, the user agent
- can determine if this schema is applicable for a particular instance by
- determining if the URI of the instance begins with the the value of the "pathStart"
- attribute. If the URI of the instance does not start with this URI,
- or if another schema specifies a starting URI that is longer and also matches the
- instance, this schema SHOULD NOT be applied to the instance. Any schema
- that does not have a pathStart attribute SHOULD be considered applicable
- to all the instances for which it is referenced.
- </t>
- </section>
-
- <section title="mediaType">
- <t>This attribute defines the media type of the instance representations that this schema is defining.</t>
- </section>
- </section>
-
- <section title="Security Considerations">
- <t>
- This specification is a sub-type of the JSON format, and
- consequently the security considerations are generally the same as <xref target="RFC4627">RFC 4627</xref>.
- However, an additional issue is that when link relation of "self"
- is used to denote a full representation of an object, the user agent
- SHOULD NOT consider the representation to be the authoritative representation
- of the resource denoted by the target URI if the target URI is not
- equivalent to or a sub-path of the the URI used to request the resource
- representation which contains the target URI with the "self" link.
-
- <figure>
- <preamble>For example, if a hyper schema was defined:</preamble>
- <artwork>
-<![CDATA[
-{
- "links": [{
- "rel": "self",
- "href": "{id}"
- }]
-}
-]]>
- </artwork>
- </figure>
-
- <figure>
- <preamble>And a resource was requested from somesite.com:</preamble>
- <artwork>
-<![CDATA[
-GET /foo/
-]]>
- </artwork>
- </figure>
-
- <figure>
- <preamble>With a response of:</preamble>
- <artwork>
-<![CDATA[
-Content-Type: application/json; profile=/schema-for-this-data
-
-[{
- "id": "bar",
- "name": "This representation can be safely treated \
- as authoritative "
-}, {
- "id": "/baz",
- "name": "This representation should not be treated as \
- authoritative the user agent should make request the resource\
- from '/baz' to ensure it has the authoritative representation"
-}, {
- "id": "http://othersite.com/something",
- "name": "This representation\
- should also not be treated as authoritative and the target\
- resource representation should be retrieved for the\
- authoritative representation"
-}]
-]]>
- </artwork>
- </figure>
- </t>
- </section>
-
- <section title="IANA Considerations">
- <t>The proposed MIME media type for JSON Schema is "application/schema+json".</t>
- <t>Type name: application</t>
- <t>Subtype name: schema+json</t>
- <t>Required parameters: profile</t>
- <t>
- The value of the profile parameter SHOULD be a URI (relative or absolute) that
- refers to the schema used to define the structure of this structure (the
- meta-schema). Normally the value would be http://json-schema.org/draft-03/hyper-schema,
- but it is allowable to use other schemas that extend the hyper schema's meta-
- schema.
- </t>
- <t>Optional parameters: pretty</t>
- <t>The value of the pretty parameter MAY be true or false to indicate if additional whitespace has been included to make the JSON representation easier to read.</t>
-
- <section title="Registry of Link Relations">
- <t>
- This registry is maintained by IANA per <xref target="RFC4287">RFC 4287</xref> and this specification adds
- four values: "full", "create", "instances", "root". New
- assignments are subject to IESG Approval, as outlined in <xref target="RFC5226">RFC 5226</xref>.
- Requests should be made by email to IANA, which will then forward the
- request to the IESG, requesting approval.
- </t>
- </section>
- </section>
- </middle>
-
- <back>
- <!-- References Section -->
- <references title="Normative References">
- &rfc2045;
- &rfc2119;
- &rfc2396;
- &rfc3339;
- &rfc3986;
- &rfc4287;
- </references>
- <references title="Informative References">
- &rfc2616;
- &rfc4627;
- &rfc5226;
- &iddiscovery;
- &uritemplate;
- &linkheader;
- &html401;
- &css21;
- </references>
-
- <section title="Change Log">
- <t>
- <list style="hanging">
- <t hangText="draft-03">
- <list style="symbols">
- <t>Added example and verbiage to "extends" attribute.</t>
- <t>Defined slash-delimited to use a leading slash.</t>
- <t>Made "root" a relation instead of an attribute.</t>
- <t>Removed address values, and MIME media type from format to reduce confusion (mediaType already exists, so it can be used for MIME types).</t>
- <t>Added more explanation of nullability.</t>
- <t>Removed "alternate" attribute.</t>
- <t>Upper cased many normative usages of must, may, and should.</t>
- <t>Replaced the link submission "properties" attribute to "schema" attribute.</t>
- <t>Replaced "optional" attribute with "required" attribute.</t>
- <t>Replaced "maximumCanEqual" attribute with "exclusiveMaximum" attribute.</t>
- <t>Replaced "minimumCanEqual" attribute with "exclusiveMinimum" attribute.</t>
- <t>Replaced "requires" attribute with "dependencies" attribute.</t>
- <t>Moved "contentEncoding" attribute to hyper schema.</t>
- <t>Added "additionalItems" attribute.</t>
- <t>Added "id" attribute.</t>
- <t>Switched self-referencing variable substitution from "-this" to "@" to align with reserved characters in URI template.</t>
- <t>Added "patternProperties" attribute.</t>
- <t>Schema URIs are now namespace versioned.</t>
- <t>Added "$ref" and "$schema" attributes.</t>
- </list>
- </t>
-
- <t hangText="draft-02">
- <list style="symbols">
- <t>Replaced "maxDecimal" attribute with "divisibleBy" attribute.</t>
- <t>Added slash-delimited fragment resolution protocol and made it the default.</t>
- <t>Added language about using links outside of schemas by referencing its normative URI.</t>
- <t>Added "uniqueItems" attribute.</t>
- <t>Added "targetSchema" attribute to link description object.</t>
- </list>
- </t>
-
- <t hangText="draft-01">
- <list style="symbols">
- <t>Fixed category and updates from template.</t>
- </list>
- </t>
-
- <t hangText="draft-00">
- <list style="symbols">
- <t>Initial draft.</t>
- </list>
- </t>
- </list>
- </t>
- </section>
-
- <section title="Open Issues">
- <t>
- <list>
- <t>Should we give a preference to MIME headers over Link headers (or only use one)?</t>
- <t>Should "root" be a MIME parameter?</t>
- <t>Should "format" be renamed to "mediaType" or "contentType" to reflect the usage MIME media types that are allowed?</t>
- <t>How should dates be handled?</t>
- </list>
- </t>
- </section>
- </back>
-</rfc>
diff --git a/deps/npm/node_modules/json-schema/draft-zyp-json-schema-04.xml b/deps/npm/node_modules/json-schema/draft-zyp-json-schema-04.xml
deleted file mode 100644
index 8ede6bf9ebd..00000000000
--- a/deps/npm/node_modules/json-schema/draft-zyp-json-schema-04.xml
+++ /dev/null
@@ -1,1072 +0,0 @@
-<?xml version="1.0" encoding="US-ASCII"?>
-<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
-<!ENTITY rfc4627 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4627.xml">
-<!ENTITY rfc3986 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3986.xml">
-<!ENTITY rfc2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
-<!ENTITY rfc4287 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4287.xml">
-<!ENTITY rfc2616 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2616.xml">
-<!ENTITY rfc3339 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3339.xml">
-<!ENTITY rfc2045 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2045.xml">
-<!ENTITY rfc5226 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5226.xml">
-<!ENTITY iddiscovery SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.hammer-discovery.xml">
-<!ENTITY uritemplate SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.gregorio-uritemplate.xml">
-<!ENTITY linkheader SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.nottingham-http-link-header.xml">
-<!ENTITY html401 SYSTEM "http://xml.resource.org/public/rfc/bibxml4/reference.W3C.REC-html401-19991224.xml">
-<!ENTITY css21 SYSTEM "http://xml.resource.org/public/rfc/bibxml4/reference.W3C.CR-CSS21-20070719.xml">
-]>
-<?rfc toc="yes"?>
-<?rfc symrefs="yes"?>
-<?rfc compact="yes"?>
-<?rfc subcompact="no"?>
-<?rfc strict="no"?>
-<?rfc rfcedstyle="yes"?>
-<rfc category="info" docName="draft-zyp-json-schema-04" ipr="trust200902">
- <front>
- <title abbrev="JSON Schema Media Type">A JSON Media Type for Describing the Structure and Meaning of JSON Documents</title>
-
- <author fullname="Kris Zyp" initials="K" role="editor" surname="Zyp">
- <organization>SitePen (USA)</organization>
- <address>
- <postal>
- <street>530 Lytton Avenue</street>
- <city>Palo Alto, CA 94301</city>
- <country>USA</country>
- </postal>
- <phone>+1 650 968 8787</phone>
- <email>kris@sitepen.com</email>
- </address>
- </author>
-
- <author fullname="Gary Court" initials="G" surname="Court">
- <address>
- <postal>
- <street></street>
- <city>Calgary, AB</city>
- <country>Canada</country>
- </postal>
- <email>gary.court@gmail.com</email>
- </address>
- </author>
-
- <date year="2011" />
- <workgroup>Internet Engineering Task Force</workgroup>
- <keyword>JSON</keyword>
- <keyword>Schema</keyword>
- <keyword>JavaScript</keyword>
- <keyword>Object</keyword>
- <keyword>Notation</keyword>
- <keyword>Hyper Schema</keyword>
- <keyword>Hypermedia</keyword>
-
- <abstract>
- <t>
- JSON (JavaScript Object Notation) Schema defines the media type "application/schema+json",
- a JSON based format for defining the structure of JSON data. JSON Schema provides a contract for what JSON
- data is required for a given application and how to interact with it. JSON
- Schema is intended to define validation, documentation, hyperlink
- navigation, and interaction control of JSON data.
- </t>
- </abstract>
- </front>
-
- <middle>
- <section title="Introduction">
- <t>
- JSON (JavaScript Object Notation) Schema is a JSON media type for defining
- the structure of JSON data. JSON Schema provides a contract for what JSON
- data is required for a given application and how to interact with it. JSON
- Schema is intended to define validation, documentation, hyperlink
- navigation, and interaction control of JSON data.
- </t>
- </section>
-
- <section title="Conventions and Terminology">
- <t>
- <!-- The text in this section has been copied from the official boilerplate,
- and should not be modified.-->
-
- The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
- "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
- interpreted as described in <xref target="RFC2119">RFC 2119</xref>.
- </t>
-
- <t>
- The terms "JSON", "JSON text", "JSON value", "member", "element", "object",
- "array", "number", "string", "boolean", "true", "false", and "null" in this
- document are to be interpreted as defined in <xref target="RFC4627">RFC 4627</xref>.
- </t>
-
- <t>
- This specification also uses the following defined terms:
-
- <list style="hanging">
- <t hangText="schema">A JSON Schema object.</t>
- <t hangText="instance">Equivalent to "JSON value" as defined in <xref target="RFC4627">RFC 4627</xref>.</t>
- <t hangText="property">Equivalent to "member" as defined in <xref target="RFC4627">RFC 4627</xref>.</t>
- <t hangText="item">Equivalent to "element" as defined in <xref target="RFC4627">RFC 4627</xref>.</t>
- <t hangText="attribute">A property of a JSON Schema object.</t>
- </list>
- </t>
- </section>
-
- <section title="Overview">
- <t>
- JSON Schema defines the media type "application/schema+json" for
- describing the structure of JSON text. JSON Schemas are also written in JSON and includes facilities
- for describing the structure of JSON in terms of
- allowable values, descriptions, and interpreting relations with other resources.
- </t>
- <t>
- This document is organized into several separate definitions. The first
- definition is the core schema specification. This definition is primary
- concerned with describing a JSON structure and specifying valid elements
- in the structure. The second definition is the Hyper Schema specification
- which is intended to define elements in a structure that can be interpreted as
- hyperlinks.
- Hyper Schema builds on JSON Schema to describe the hyperlink structure of
- JSON values. This allows user agents to be able to successfully navigate
- documents containing JSON based on their schemas.
- </t>
- <t>
- Cumulatively JSON Schema acts as meta-JSON that can be used to define the
- required type and constraints on JSON values, as well as define the meaning
- of the JSON values for the purpose of describing a resource and determining
- hyperlinks within the representation.
- </t>
- <figure>
- <preamble>An example JSON Schema that describes products might look like:</preamble>
- <artwork>
-<![CDATA[
-{
- "title": "Product",
- "properties": {
- "id": {
- "title": "Product Identifier",
- "type": "number"
- },
- "name": {
- "title": "Product Name",
- "type": "string"
- },
- "price": {
- "type": "number",
- "minimum": 0
- },
- "tags": {
- "type": "array",
- "items": {
- "type": "string"
- }
- }
- },
- "required" : ["id", "name", "price"],
- "links": [{
- "rel": "full",
- "href": "{id}"
- }, {
- "rel": "comments",
- "href": "comments/?id={id}"
- }]
-}
-]]>
- </artwork>
- <postamble>
- This schema defines the properties of the instance,
- the required properties (id, name, and price), as well as an optional
- property (tags). This also defines the link relations of the instance.
- </postamble>
- </figure>
-
- <section title="Design Considerations">
- <t>
- The JSON Schema media type does not attempt to dictate the structure of JSON
- values that contain data, but rather provides a separate format
- for flexibly communicating how a JSON value should be
- interpreted and validated, such that user agents can properly understand
- acceptable structures and extrapolate hyperlink information
- from the JSON. It is acknowledged that JSON values come
- in a variety of structures, and JSON is unique in that the structure
- of stored data structures often prescribes a non-ambiguous definite
- JSON representation. Attempting to force a specific structure is generally
- not viable, and therefore JSON Schema allows for a great flexibility
- in the structure of the JSON data that it describes.
- </t>
- <t>
- This specification is protocol agnostic.
- The underlying protocol (such as HTTP) should sufficiently define the
- semantics of the client-server interface, the retrieval of resource
- representations linked to by JSON representations, and modification of
- those resources. The goal of this
- format is to sufficiently describe JSON structures such that one can
- utilize existing information available in existing JSON
- representations from a large variety of services that leverage a representational state transfer
- architecture using existing protocols.
- </t>
- </section>
- </section>
-
- <section title="Schema/Instance Association">
- <t>
- JSON values are correlated to their schema by the "describedby"
- relation, where the schema is the target of the relation.
- JSON values MUST be of the "application/json" media type or
- any other subtype. Consequently, dictating how a JSON value should
- specify the relation to the schema is beyond the normative scope
- of this document since this document specifically defines the JSON
- Schema media type, and no other. It is RECOMMNENDED that JSON values
- specify their schema so that user agents can interpret the instance
- and retain the self-descriptive characteristics. This avoides the need for out-of-band information about
- instance data. Two approaches are recommended for declaring the
- relation to the schema that describes the meaning of a JSON instance's (or collection
- of instances) structure. A MIME type parameter named
- "profile" or a relation of "describedby" (which could be specified by a Link header) may be used:
-
- <figure>
- <artwork>
-<![CDATA[
-Content-Type: application/my-media-type+json;
- profile=http://example.com/my-hyper-schema
-]]>
- </artwork>
- </figure>
-
- or if the content is being transferred by a protocol (such as HTTP) that
- provides headers, a Link header can be used:
-
- <figure>
- <artwork>
-<![CDATA[
-Link: <http://example.com/my-hyper-schema>; rel="describedby"
-]]>
- </artwork>
- </figure>
-
- Instances MAY specify multiple schemas, to indicate all the schemas that
- are applicable to the data, and the data SHOULD be valid by all the schemas.
- The instance data MAY have multiple schemas
- that it is described by (the instance data SHOULD be valid for those schemas).
- Or if the document is a collection of instances, the collection MAY contain
- instances from different schemas. The mechanism for referencing a schema is
- determined by the media type of the instance (if it provides a method for
- referencing schemas).
- </t>
-
- <section title="Self-Descriptive Schema">
- <t>
- JSON Schemas can themselves be described using JSON Schemas.
- A self-describing JSON Schema for the core JSON Schema can
- be found at <eref target="http://json-schema.org/schema">http://json-schema.org/schema</eref> for the latest version or
- <eref target="http://json-schema.org/draft-04/schema">http://json-schema.org/draft-04/schema</eref> for the draft-04 version. The hyper schema
- self-description can be found at <eref target="http://json-schema.org/hyper-schema">http://json-schema.org/hyper-schema</eref>
- or <eref target="http://json-schema.org/draft-04/hyper-schema">http://json-schema.org/draft-04/hyper-schema</eref>. All schemas
- used within a protocol with a media type specified SHOULD include a MIME parameter that refers to the self-descriptive
- hyper schema or another schema that extends this hyper schema:
-
- <figure>
- <artwork>
-<![CDATA[
-Content-Type: application/json;
- profile=http://json-schema.org/draft-04/hyper-schema
-]]>
- </artwork>
- </figure>
- </t>
- </section>
- </section>
-
- <section title="Core Schema Definition">
- <t>
- A JSON Schema is a JSON object that defines various attributes
- (including usage and valid values) of a JSON value. JSON
- Schema has recursive capabilities; there are a number of elements
- in the structure that allow for nested JSON Schemas.
- </t>
-
- <figure>
- <preamble>An example JSON Schema could look like:</preamble>
- <artwork>
-<![CDATA[
-{
- "description": "A person",
- "type": "object",
-
- "properties": {
- "name": {
- "type": "string"
- },
- "age": {
- "type": "number",
- "divisibleBy": 1,
- "minimum": 0,
- "maximum": 125
- }
- }
-}
-]]>
- </artwork>
- </figure>
-
- <t>
- A JSON Schema object MAY have any of the following optional properties:
- </t>
-
- <!-- TODO: Break attributes up into type sections -->
- <!-- TODO: Add examples for (almost) every attribute -->
-
- <section title="type" anchor="type">
- <t>
- This attribute defines what the primitive type or the schema of the instance MUST be in order to validate.
- This attribute can take one of two forms:
-
- <list style="hanging">
- <t hangText="Simple Types">
- A string indicating a primitive or simple type. The string MUST be one of the following values:
-
- <list style="hanging">
- <t hangText="object">Instance MUST be an object.</t>
- <t hangText="array">Instance MUST be an array.</t>
- <t hangText="string">Instance MUST be a string.</t>
- <t hangText="number">Instance MUST be a number, including floating point numbers.</t>
- <t hangText="boolean">Instance MUST be the JSON literal "true" or "false".</t>
- <t hangText="null">Instance MUST be the JSON literal "null". Note that without this type, null values are not allowed.</t>
- <t hangText="any">Instance MAY be of any type, including null.</t>
- </list>
- </t>
-
- <t hangText="Union Types">
- An array of one or more simple or schema types.
- The instance value is valid if it is of the same type as one of the simple types, or valid by one of the schemas, in the array.
- </t>
- </list>
-
- If this attribute is not specified, then all value types are accepted.
- </t>
-
- <figure>
- <preamble>For example, a schema that defines if an instance can be a string or a number would be:</preamble>
- <artwork>
-<![CDATA[
-{
- "type": ["string", "number"]
-}
-]]></artwork>
- </figure>
- </section>
-
- <section title="properties" anchor="properties">
- <t>
- This attribute is an object with properties that specify the schemas for the properties of the instance object.
- In this attribute's object, each property value MUST be a schema.
- When the instance value is an object, the value of the instance's properties MUST be valid according to the schemas with the same property names specified in this attribute.
- Objects are unordered, so therefore the order of the instance properties or attribute properties MUST NOT determine validation success.
- </t>
- </section>
-
- <section title="patternProperties" anchor="patternProperties">
- <t>
- This attribute is an object that defines the schema for a set of property names of an object instance.
- The name of each property of this attribute's object is a regular expression pattern in the ECMA 262/Perl 5 format, while the value is a schema.
- If the pattern matches the name of a property on the instance object, the value of the instance's property MUST be valid against the pattern name's schema value.
- </t>
- </section>
-
- <section title="additionalProperties" anchor="additionalProperties">
- <t>This attribute specifies how any instance property that is not explicitly defined by either the <xref target="properties">"properties"</xref> or <xref target="patternProperties">"patternProperties"</xref> attributes (hereafter referred to as "additional properties") is handled. If specified, the value MUST be a schema or a boolean.</t>
- <t>If a schema is provided, then all additional properties MUST be valid according to the schema.</t>
- <t>If false is provided, then no additional properties are allowed.</t>
- <t>The default value is an empty schema, which allows any value for additional properties.</t>
- </section>
-
- <section title="items" anchor="items">
- <t>This attribute provides the allowed items in an array instance. If specified, this attribute MUST be a schema or an array of schemas.</t>
- <t>When this attribute value is a schema and the instance value is an array, then all the items in the array MUST be valid according to the schema.</t>
- <t>When this attribute value is an array of schemas and the instance value is an array, each position in the instance array MUST be valid according to the schema in the corresponding position for this array. This called tuple typing. When tuple typing is used, additional items are allowed, disallowed, or constrained by the <xref target="additionalItems">"additionalItems"</xref> attribute the same way as <xref target="additionalProperties">"additionalProperties"</xref> for objects is.</t>
- </section>
-
- <section title="additionalItems" anchor="additionalItems">
- <t>This attribute specifies how any item in the array instance that is not explicitly defined by <xref target="items">"items"</xref> (hereafter referred to as "additional items") is handled. If specified, the value MUST be a schema or a boolean.</t>
- <t>If a schema is provided:
- <list>
- <t>If the <xref target="items">"items"</xref> attribute is unspecified, then all items in the array instance must be valid against this schema.</t>
- <t>If the <xref target="items">"items"</xref> attribute is a schema, then this attribute is ignored.</t>
- <t>If the <xref target="items">"items"</xref> attribute is an array (during tuple typing), then any additional items MUST be valid against this schema.</t>
- </list>
- </t>
- <t>If false is provided, then any additional items in the array are not allowed.</t>
- <t>The default value is an empty schema, which allows any value for additional items.</t>
- </section>
-
- <section title="required" anchor="required">
- <t>This attribute is an array of strings that defines all the property names that must exist on the object instance.</t>
- </section>
-
- <section title="dependencies" anchor="dependencies">
- <t>This attribute is an object that specifies the requirements of a property on an object instance. If an object instance has a property with the same name as a property in this attribute's object, then the instance must be valid against the attribute's property value (hereafter referred to as the "dependency value").</t>
- <t>
- The dependency value can take one of two forms:
-
- <list style="hanging">
- <t hangText="Simple Dependency">
- If the dependency value is a string, then the instance object MUST have a property with the same name as the dependency value.
- If the dependency value is an array of strings, then the instance object MUST have a property with the same name as each string in the dependency value's array.
- </t>
- <t hangText="Schema Dependency">
- If the dependency value is a schema, then the instance object MUST be valid against the schema.
- </t>
- </list>
- </t>
- </section>
-
- <section title="minimum" anchor="minimum">
- <t>This attribute defines the minimum value of the instance property when the type of the instance value is a number.</t>
- </section>
-
- <section title="maximum" anchor="maximum">
- <t>This attribute defines the maximum value of the instance property when the type of the instance value is a number.</t>
- </section>
-
- <section title="exclusiveMinimum" anchor="exclusiveMinimum">
- <t>This attribute indicates if the value of the instance (if the instance is a number) can not equal the number defined by the "minimum" attribute. This is false by default, meaning the instance value can be greater then or equal to the minimum value.</t>
- </section>
-
- <section title="exclusiveMaximum" anchor="exclusiveMaximum">
- <t>This attribute indicates if the value of the instance (if the instance is a number) can not equal the number defined by the "maximum" attribute. This is false by default, meaning the instance value can be less then or equal to the maximum value.</t>
- </section>
-
- <section title="minItems" anchor="minItems">
- <t>This attribute defines the minimum number of values in an array when the array is the instance value.</t>
- </section>
-
- <section title="maxItems" anchor="maxItems">
- <t>This attribute defines the maximum number of values in an array when the array is the instance value.</t>
- </section>
-
- <section title="minProperties" anchor="minProperties">
- <t>This attribute defines the minimum number of properties required on an object instance.</t>
- </section>
-
- <section title="maxProperties" anchor="maxProperties">
- <t>This attribute defines the maximum number of properties the object instance can have.</t>
- </section>
-
- <section title="uniqueItems" anchor="uniqueItems">
- <t>This attribute indicates that all items in an array instance MUST be unique (contains no two identical values).</t>
- <t>
- Two instance are consider equal if they are both of the same type and:
-
- <list>
- <t>are null; or</t>
- <t>are booleans/numbers/strings and have the same value; or</t>
- <t>are arrays, contains the same number of items, and each item in the array is equal to the item at the corresponding index in the other array; or</t>
- <t>are objects, contains the same property names, and each property in the object is equal to the corresponding property in the other object.</t>
- </list>
- </t>
- </section>
-
- <section title="pattern" anchor="pattern">
- <t>When the instance value is a string, this provides a regular expression that a string instance MUST match in order to be valid. Regular expressions SHOULD follow the regular expression specification from ECMA 262/Perl 5</t>
- </section>
-
- <section title="minLength" anchor="minLength">
- <t>When the instance value is a string, this defines the minimum length of the string.</t>
- </section>
-
- <section title="maxLength" anchor="maxLength">
- <t>When the instance value is a string, this defines the maximum length of the string.</t>
- </section>
-
- <section title="enum" anchor="enum">
- <t>This provides an enumeration of all possible values that are valid for the instance property. This MUST be an array, and each item in the array represents a possible value for the instance value. If this attribute is defined, the instance value MUST be one of the values in the array in order for the schema to be valid. Comparison of enum values uses the same algorithm as defined in <xref target="uniqueItems">"uniqueItems"</xref>.</t>
- </section>
-
- <section title="default" anchor="default">
- <t>This attribute defines the default value of the instance when the instance is undefined.</t>
- </section>
-
- <section title="title" anchor="title">
- <t>This attribute is a string that provides a short description of the instance property.</t>
- </section>
-
- <section title="description" anchor="description">
- <t>This attribute is a string that provides a full description of the of purpose the instance property.</t>
- </section>
-
- <section title="divisibleBy" anchor="divisibleBy">
- <t>This attribute defines what value the number instance must be divisible by with no remainder (the result of the division must be an integer.) The value of this attribute SHOULD NOT be 0.</t>
- </section>
-
- <section title="disallow" anchor="disallow">
- <t>This attribute takes the same values as the "type" attribute, however if the instance matches the type or if this value is an array and the instance matches any type or schema in the array, then this instance is not valid.</t>
- </section>
-
- <section title="extends" anchor="extends">
- <t>The value of this property MUST be another schema which will provide a base schema which the current schema will inherit from. The inheritance rules are such that any instance that is valid according to the current schema MUST be valid according to the referenced schema. This MAY also be an array, in which case, the instance MUST be valid for all the schemas in the array. A schema that extends another schema MAY define additional attributes, constrain existing attributes, or add other constraints.</t>
- <t>
- Conceptually, the behavior of extends can be seen as validating an
- instance against all constraints in the extending schema as well as
- the extended schema(s). More optimized implementations that merge
- schemas are possible, but are not required. Some examples of using "extends":
-
- <figure>
- <artwork>
-<![CDATA[
-{
- "description": "An adult",
- "properties": {
- "age": {
- "minimum": 21
- }
- },
- "extends": {"$ref": "person"}
-}
-]]>
- </artwork>
- </figure>
-
- <figure>
- <artwork>
-<![CDATA[
-{
- "description": "Extended schema",
- "properties": {
- "deprecated": {
- "type": "boolean"
- }
- },
- "extends": {"$ref": "http://json-schema.org/draft-04/schema"}
-}
-]]>
- </artwork>
- </figure>
- </t>
- </section>
-
- <section title="id" anchor="id">
- <t>
- This attribute defines the current URI of this schema (this attribute is
- effectively a "self" link). This URI MAY be relative or absolute. If
- the URI is relative it is resolved against the current URI of the parent
- schema it is contained in. If this schema is not contained in any
- parent schema, the current URI of the parent schema is held to be the
- URI under which this schema was addressed. If id is missing, the current URI of a schema is
- defined to be that of the parent schema. The current URI of the schema
- is also used to construct relative references such as for $ref.
- </t>
- </section>
-
- <section title="$ref" anchor="ref">
- <t>
- This attribute defines a URI of a schema that contains the full representation of this schema.
- When a validator encounters this attribute, it SHOULD replace the current schema with the schema referenced by the value's URI (if known and available) and re-validate the instance.
- This URI MAY be relative or absolute, and relative URIs SHOULD be resolved against the URI of the current schema.
- </t>
- </section>
-
- <section title="$schema" anchor="schema">
- <t>
- This attribute defines a URI of a JSON Schema that is the schema of the current schema.
- When this attribute is defined, a validator SHOULD use the schema referenced by the value's URI (if known and available) when resolving <xref target="hyper-schema">Hyper Schema</xref><xref target="links">links</xref>.
- </t>
-
- <t>
- A validator MAY use this attribute's value to determine which version of JSON Schema the current schema is written in, and provide the appropriate validation features and behavior.
- Therefore, it is RECOMMENDED that all schema authors include this attribute in their schemas to prevent conflicts with future JSON Schema specification changes.
- </t>
- </section>
- </section>
-
- <section title="Hyper Schema" anchor="hyper-schema">
- <t>
- The following attributes are specified in addition to those
- attributes that already provided by the core schema with the specific
- purpose of informing user agents of relations between resources based
- on JSON data. Just as with JSON
- schema attributes, all the attributes in hyper schemas are optional.
- Therefore, an empty object is a valid (non-informative) schema, and
- essentially describes plain JSON (no constraints on the structures).
- Addition of attributes provides additive information for user agents.
- </t>
-
- <section title="links" anchor="links">
- <t>
- The value of the links property MUST be an array, where each item
- in the array is a link description object which describes the link
- relations of the instances.
- </t>
-
- <!-- TODO: Needs more clarification and examples -->
-
- <section title="Link Description Object">
- <t>
- A link description object is used to describe link relations. In
- the context of a schema, it defines the link relations of the
- instances of the schema, and can be parameterized by the instance
- values. The link description format can be used without JSON Schema,
- and use of this format can
- be declared by referencing the normative link description
- schema as the the schema for the data structure that uses the
- links. The URI of the normative link description schema is:
- <eref target="http://json-schema.org/links">http://json-schema.org/links</eref> (latest version) or
- <eref target="http://json-schema.org/draft-04/links">http://json-schema.org/draft-04/links</eref> (draft-04 version).
- </t>
-
- <section title="href" anchor="href">
- <t>
- The value of the "href" link description property
- indicates the target URI of the related resource. The value
- of the instance property SHOULD be resolved as a URI-Reference per <xref target="RFC3986">RFC 3986</xref>
- and MAY be a relative URI. The base URI to be used for relative resolution
- SHOULD be the URI used to retrieve the instance object (not the schema)
- when used within a schema. Also, when links are used within a schema, the URI
- SHOULD be parametrized by the property values of the instance
- object, if property values exist for the corresponding variables
- in the template (otherwise they MAY be provided from alternate sources, like user input).
- </t>
-
- <t>
- Instance property values SHOULD be substituted into the URIs where
- matching braces ('{', '}') are found surrounding zero or more characters,
- creating an expanded URI. Instance property value substitutions are resolved
- by using the text between the braces to denote the property name
- from the instance to get the value to substitute.
-
- <figure>
- <preamble>For example, if an href value is defined:</preamble>
- <artwork>
-<![CDATA[
-http://somesite.com/{id}
-]]>
- </artwork>
- <postamble>Then it would be resolved by replace the value of the "id" property value from the instance object.</postamble>
- </figure>
-
- <figure>
- <preamble>If the value of the "id" property was "45", the expanded URI would be:</preamble>
- <artwork>
-<![CDATA[
-http://somesite.com/45
-]]>
- </artwork>
- </figure>
-
- If matching braces are found with the string "@" (no quotes) between the braces, then the
- actual instance value SHOULD be used to replace the braces, rather than a property value.
- This should only be used in situations where the instance is a scalar (string,
- boolean, or number), and not for objects or arrays.
- </t>
- </section>
-
- <section title="rel">
- <t>
- The value of the "rel" property indicates the name of the
- relation to the target resource. The relation to the target SHOULD be interpreted as specifically from the instance object that the schema (or sub-schema) applies to, not just the top level resource that contains the object within its hierarchy. If a resource JSON representation contains a sub object with a property interpreted as a link, that sub-object holds the relation with the target. A relation to target from the top level resource MUST be indicated with the schema describing the top level JSON representation.
- </t>
-
- <t>
- Relationship definitions SHOULD NOT be media type dependent, and users are encouraged to utilize existing accepted relation definitions, including those in existing relation registries (see <xref target="RFC4287">RFC 4287</xref>). However, we define these relations here for clarity of normative interpretation within the context of JSON hyper schema defined relations:
-
- <list style="hanging">
- <t hangText="self">
- If the relation value is "self", when this property is encountered in
- the instance object, the object represents a resource and the instance object is
- treated as a full representation of the target resource identified by
- the specified URI.
- </t>
-
- <t hangText="full">
- This indicates that the target of the link is the full representation for the instance object. The object that contains this link possibly may not be the full representation.
- </t>
-
- <t hangText="describedby">
- This indicates the target of the link is the schema for the instance object. This MAY be used to specifically denote the schemas of objects within a JSON object hierarchy, facilitating polymorphic type data structures.
- </t>
-
- <t hangText="root">
- This relation indicates that the target of the link
- SHOULD be treated as the root or the body of the representation for the
- purposes of user agent interaction or fragment resolution. All other
- properties of the instance objects can be regarded as meta-data
- descriptions for the data.
- </t>
- </list>
- </t>
-
- <t>
- The following relations are applicable for schemas (the schema as the "from" resource in the relation):
-
- <list style="hanging">
- <t hangText="instances">This indicates the target resource that represents collection of instances of a schema.</t>
- <t hangText="create">This indicates a target to use for creating new instances of a schema. This link definition SHOULD be a submission link with a non-safe method (like POST).</t>
- </list>
- </t>
-
- <t>
- <figure>
- <preamble>For example, if a schema is defined:</preamble>
- <artwork>
-<![CDATA[
-{
- "links": [{
- "rel": "self",
- "href": "{id}"
- }, {
- "rel": "up",
- "href": "{upId}"
- }, {
- "rel": "children",
- "href": "?upId={id}"
- }]
-}
-]]>
- </artwork>
- </figure>
-
- <figure>
- <preamble>And if a collection of instance resource's JSON representation was retrieved:</preamble>
- <artwork>
-<![CDATA[
-GET /Resource/
-
-[{
- "id": "thing",
- "upId": "parent"
-}, {
- "id": "thing2",
- "upId": "parent"
-}]
-]]>
- </artwork>
- </figure>
-
- This would indicate that for the first item in the collection, its own
- (self) URI would resolve to "/Resource/thing" and the first item's "up"
- relation SHOULD be resolved to the resource at "/Resource/parent".
- The "children" collection would be located at "/Resource/?upId=thing".
- </t>
- </section>
-
- <section title="template">
- <t>This property value is a string that defines the templating language used in the <xref target="href">"href"</xref> attribute. If no templating language is defined, then the default <xref target="href">Link Description Object templating langauge</xref> is used.</t>
- </section>
-
- <section title="targetSchema">
- <t>This property value is a schema that defines the expected structure of the JSON representation of the target of the link.</t>
- </section>
-
- <section title="Submission Link Properties">
- <t>
- The following properties also apply to link definition objects, and
- provide functionality analogous to HTML forms, in providing a
- means for submitting extra (often user supplied) information to send to a server.
- </t>
-
- <section title="method">
- <t>
- This attribute defines which method can be used to access the target resource.
- In an HTTP environment, this would be "GET" or "POST" (other HTTP methods
- such as "PUT" and "DELETE" have semantics that are clearly implied by
- accessed resources, and do not need to be defined here).
- This defaults to "GET".
- </t>
- </section>
-
- <section title="enctype">
- <t>
- If present, this property indicates a query media type format that the server
- supports for querying or posting to the collection of instances at the target
- resource. The query can be
- suffixed to the target URI to query the collection with
- property-based constraints on the resources that SHOULD be returned from
- the server or used to post data to the resource (depending on the method).
-
- <figure>
- <preamble>For example, with the following schema:</preamble>
- <artwork>
-<![CDATA[
-{
- "links": [{
- "enctype": "application/x-www-form-urlencoded",
- "method": "GET",
- "href": "/Product/",
- "properties": {
- "name": {
- "description": "name of the product"
- }
- }
- }]
-}
-]]>
- </artwork>
- <postamble>This indicates that the client can query the server for instances that have a specific name.</postamble>
- </figure>
-
- <figure>
- <preamble>For example:</preamble>
- <artwork>
-<![CDATA[
-/Product/?name=Slinky
-]]>
- </artwork>
- </figure>
-
- If no enctype or method is specified, only the single URI specified by
- the href property is defined. If the method is POST, "application/json" is
- the default media type.
- </t>
- </section>
-
- <section title="schema">
- <t>
- This attribute contains a schema which defines the acceptable structure of the submitted
- request (for a GET request, this schema would define the properties for the query string
- and for a POST request, this would define the body).
- </t>
- </section>
- </section>
- </section>
- </section>
-
- <section title="fragmentResolution">
- <t>
- This property indicates the fragment resolution protocol to use for
- resolving fragment identifiers in URIs within the instance
- representations. This applies to the instance object URIs and all
- children of the instance object's URIs. The default fragment resolution
- protocol is "json-pointer", which is defined below. Other fragment
- resolution protocols MAY be used, but are not defined in this document.
- </t>
-
- <t>
- The fragment identifier is based on <xref target="RFC3986">RFC 3986, Sec 5</xref>, and defines the
- mechanism for resolving references to entities within a document.
- </t>
-
- <section title="json-pointer fragment resolution">
- <t>The "json-pointer" fragment resolution protocol uses a <xref target="json-pointer">JSON Pointer</xref> to resolve fragment identifiers in URIs within instance representations.</t>
- </section>
- </section>
-
- <!-- TODO: Remove this? -->
-
- <section title="readonly">
- <t>This attribute indicates that the instance value SHOULD NOT be changed. Attempts by a user agent to modify the value of this property are expected to be rejected by a server.</t>
- </section>
-
- <section title="contentEncoding">
- <t>If the instance property value is a string, this attribute defines that the string SHOULD be interpreted as binary data and decoded using the encoding named by this schema property. <xref target="RFC2045">RFC 2045, Sec 6.1</xref> lists the possible values for this property.</t>
- </section>
-
- <section title="pathStart">
- <t>
- This attribute is a URI that defines what the instance's URI MUST start with in order to validate.
- The value of the "pathStart" attribute MUST be resolved as per <xref target="RFC3986">RFC 3986, Sec 5</xref>,
- and is relative to the instance's URI.
- </t>
-
- <t>
- When multiple schemas have been referenced for an instance, the user agent
- can determine if this schema is applicable for a particular instance by
- determining if the URI of the instance begins with the the value of the "pathStart"
- attribute. If the URI of the instance does not start with this URI,
- or if another schema specifies a starting URI that is longer and also matches the
- instance, this schema SHOULD NOT be applied to the instance. Any schema
- that does not have a pathStart attribute SHOULD be considered applicable
- to all the instances for which it is referenced.
- </t>
- </section>
-
- <section title="mediaType">
- <t>This attribute defines the media type of the instance representations that this schema is defining.</t>
- </section>
- </section>
-
- <section title="Security Considerations">
- <t>
- This specification is a sub-type of the JSON format, and
- consequently the security considerations are generally the same as <xref target="RFC4627">RFC 4627</xref>.
- However, an additional issue is that when link relation of "self"
- is used to denote a full representation of an object, the user agent
- SHOULD NOT consider the representation to be the authoritative representation
- of the resource denoted by the target URI if the target URI is not
- equivalent to or a sub-path of the the URI used to request the resource
- representation which contains the target URI with the "self" link.
-
- <figure>
- <preamble>For example, if a hyper schema was defined:</preamble>
- <artwork>
-<![CDATA[
-{
- "links": [{
- "rel": "self",
- "href": "{id}"
- }]
-}
-]]>
- </artwork>
- </figure>
-
- <figure>
- <preamble>And a resource was requested from somesite.com:</preamble>
- <artwork>
-<![CDATA[
-GET /foo/
-]]>
- </artwork>
- </figure>
-
- <figure>
- <preamble>With a response of:</preamble>
- <artwork>
-<![CDATA[
-Content-Type: application/json; profile=/schema-for-this-data
-
-[{
- "id": "bar",
- "name": "This representation can be safely treated \
- as authoritative "
-}, {
- "id": "/baz",
- "name": "This representation should not be treated as \
- authoritative the user agent should make request the resource\
- from '/baz' to ensure it has the authoritative representation"
-}, {
- "id": "http://othersite.com/something",
- "name": "This representation\
- should also not be treated as authoritative and the target\
- resource representation should be retrieved for the\
- authoritative representation"
-}]
-]]>
- </artwork>
- </figure>
- </t>
- </section>
-
- <section title="IANA Considerations">
- <t>The proposed MIME media type for JSON Schema is "application/schema+json".</t>
- <t>Type name: application</t>
- <t>Subtype name: schema+json</t>
- <t>Required parameters: profile</t>
- <t>
- The value of the profile parameter SHOULD be a URI (relative or absolute) that
- refers to the schema used to define the structure of this structure (the
- meta-schema). Normally the value would be http://json-schema.org/draft-04/hyper-schema,
- but it is allowable to use other schemas that extend the hyper schema's meta-
- schema.
- </t>
- <t>Optional parameters: pretty</t>
- <t>The value of the pretty parameter MAY be true or false to indicate if additional whitespace has been included to make the JSON representation easier to read.</t>
-
- <section title="Registry of Link Relations">
- <t>
- This registry is maintained by IANA per <xref target="RFC4287">RFC 4287</xref> and this specification adds
- four values: "full", "create", "instances", "root". New
- assignments are subject to IESG Approval, as outlined in <xref target="RFC5226">RFC 5226</xref>.
- Requests should be made by email to IANA, which will then forward the
- request to the IESG, requesting approval.
- </t>
- </section>
- </section>
- </middle>
-
- <back>
- <!-- References Section -->
- <references title="Normative References">
- &rfc2045;
- &rfc2119;
- &rfc3339;
- &rfc3986;
- &rfc4287;
- <reference anchor="json-pointer" target="http://tools.ietf.org/html/draft-pbryan-zyp-json-pointer-02">
- <front>
- <title>JSON Pointer</title>
- <author initials="P." surname="Bryan">
- <organization>ForgeRock US, Inc.</organization>
- </author>
- <author initials="K." surname="Zyp">
- <organization>SitePen (USA)</organization>
- </author>
- <date year="2011" month="October" />
- </front>
- </reference>
- </references>
- <references title="Informative References">
- &rfc2616;
- &rfc4627;
- &rfc5226;
- &iddiscovery;
- &uritemplate;
- &linkheader;
- &html401;
- &css21;
- </references>
-
- <section title="Change Log">
- <t>
- <list style="hanging">
- <t hangText="draft-04">
- <list style="symbols">
- <t>Changed "required" attribute to an array of strings.</t>
- <t>Removed "format" attribute.</t>
- <t>Added "minProperties" and "maxProperties" attributes.</t>
- <t>Replaced "slash-delimited" fragment resolution with "json-pointer".</t>
- <t>Added "template" LDO attribute.</t>
- <t>Removed irrelevant "Open Issues" section.</t>
- <t>Merged Conventions and Terminology sections.</t>
- <t>Defined terms used in specification.</t>
- <t>Removed "integer" type in favor of {"type":"number", "divisibleBy":1}.</t>
- <t>Restricted "type" to only the core JSON types.</t>
- <t>Improved wording of many sections.</t>
- </list>
- </t>
-
- <t hangText="draft-03">
- <list style="symbols">
- <t>Added example and verbiage to "extends" attribute.</t>
- <t>Defined slash-delimited to use a leading slash.</t>
- <t>Made "root" a relation instead of an attribute.</t>
- <t>Removed address values, and MIME media type from format to reduce confusion (mediaType already exists, so it can be used for MIME types).</t>
- <t>Added more explanation of nullability.</t>
- <t>Removed "alternate" attribute.</t>
- <t>Upper cased many normative usages of must, may, and should.</t>
- <t>Replaced the link submission "properties" attribute to "schema" attribute.</t>
- <t>Replaced "optional" attribute with "required" attribute.</t>
- <t>Replaced "maximumCanEqual" attribute with "exclusiveMaximum" attribute.</t>
- <t>Replaced "minimumCanEqual" attribute with "exclusiveMinimum" attribute.</t>
- <t>Replaced "requires" attribute with "dependencies" attribute.</t>
- <t>Moved "contentEncoding" attribute to hyper schema.</t>
- <t>Added "additionalItems" attribute.</t>
- <t>Added "id" attribute.</t>
- <t>Switched self-referencing variable substitution from "-this" to "@" to align with reserved characters in URI template.</t>
- <t>Added "patternProperties" attribute.</t>
- <t>Schema URIs are now namespace versioned.</t>
- <t>Added "$ref" and "$schema" attributes.</t>
- </list>
- </t>
-
- <t hangText="draft-02">
- <list style="symbols">
- <t>Replaced "maxDecimal" attribute with "divisibleBy" attribute.</t>
- <t>Added slash-delimited fragment resolution protocol and made it the default.</t>
- <t>Added language about using links outside of schemas by referencing its normative URI.</t>
- <t>Added "uniqueItems" attribute.</t>
- <t>Added "targetSchema" attribute to link description object.</t>
- </list>
- </t>
-
- <t hangText="draft-01">
- <list style="symbols">
- <t>Fixed category and updates from template.</t>
- </list>
- </t>
-
- <t hangText="draft-00">
- <list style="symbols">
- <t>Initial draft.</t>
- </list>
- </t>
- </list>
- </t>
- </section>
- </back>
-</rfc>
diff --git a/deps/npm/node_modules/json-schema/lib/links.js b/deps/npm/node_modules/json-schema/lib/links.js
deleted file mode 100644
index 8a87f02d162..00000000000
--- a/deps/npm/node_modules/json-schema/lib/links.js
+++ /dev/null
@@ -1,66 +0,0 @@
-/**
- * JSON Schema link handler
- * Copyright (c) 2007 Kris Zyp SitePen (www.sitepen.com)
- * Licensed under the MIT (MIT-LICENSE.txt) license.
- */
-(function (root, factory) {
- if (typeof define === 'function' && define.amd) {
- // AMD. Register as an anonymous module.
- define([], function () {
- return factory();
- });
- } else if (typeof module === 'object' && module.exports) {
- // Node. Does not work with strict CommonJS, but
- // only CommonJS-like environments that support module.exports,
- // like Node.
- module.exports = factory();
- } else {
- // Browser globals
- root.jsonSchemaLinks = factory();
- }
-}(this, function () {// setup primitive classes to be JSON Schema types
-var exports = {};
-exports.cacheLinks = true;
-exports.getLink = function(relation, instance, schema){
- // gets the URI of the link for the given relation based on the instance and schema
- // for example:
- // getLink(
- // "brother",
- // {"brother_id":33},
- // {links:[{rel:"brother", href:"Brother/{brother_id}"}]}) ->
- // "Brother/33"
- var links = schema.__linkTemplates;
- if(!links){
- links = {};
- var schemaLinks = schema.links;
- if(schemaLinks && schemaLinks instanceof Array){
- schemaLinks.forEach(function(link){
- /* // TODO: allow for multiple same-name relations
- if(links[link.rel]){
- if(!(links[link.rel] instanceof Array)){
- links[link.rel] = [links[link.rel]];
- }
- }*/
- links[link.rel] = link.href;
- });
- }
- if(exports.cacheLinks){
- schema.__linkTemplates = links;
- }
- }
- var linkTemplate = links[relation];
- return linkTemplate && exports.substitute(linkTemplate, instance);
-};
-
-exports.substitute = function(linkTemplate, instance){
- return linkTemplate.replace(/\{([^\}]*)\}/g, function(t, property){
- var value = instance[decodeURIComponent(property)];
- if(value instanceof Array){
- // the value is an array, it should produce a URI like /Table/(4,5,8) and store.get() should handle that as an array of values
- return '(' + value.join(',') + ')';
- }
- return value;
- });
-};
-return exports;
-})); \ No newline at end of file
diff --git a/deps/npm/node_modules/json-schema/lib/validate.js b/deps/npm/node_modules/json-schema/lib/validate.js
deleted file mode 100644
index e4dc1511611..00000000000
--- a/deps/npm/node_modules/json-schema/lib/validate.js
+++ /dev/null
@@ -1,273 +0,0 @@
-/**
- * JSONSchema Validator - Validates JavaScript objects using JSON Schemas
- * (http://www.json.com/json-schema-proposal/)
- *
- * Copyright (c) 2007 Kris Zyp SitePen (www.sitepen.com)
- * Licensed under the MIT (MIT-LICENSE.txt) license.
-To use the validator call the validate function with an instance object and an optional schema object.
-If a schema is provided, it will be used to validate. If the instance object refers to a schema (self-validating),
-that schema will be used to validate and the schema parameter is not necessary (if both exist,
-both validations will occur).
-The validate method will return an array of validation errors. If there are no errors, then an
-empty list will be returned. A validation error will have two properties:
-"property" which indicates which property had the error
-"message" which indicates what the error was
- */
-(function (root, factory) {
- if (typeof define === 'function' && define.amd) {
- // AMD. Register as an anonymous module.
- define([], function () {
- return factory();
- });
- } else if (typeof module === 'object' && module.exports) {
- // Node. Does not work with strict CommonJS, but
- // only CommonJS-like environments that support module.exports,
- // like Node.
- module.exports = factory();
- } else {
- // Browser globals
- root.jsonSchema = factory();
- }
-}(this, function () {// setup primitive classes to be JSON Schema types
-var exports = validate
-exports.Integer = {type:"integer"};
-var primitiveConstructors = {
- String: String,
- Boolean: Boolean,
- Number: Number,
- Object: Object,
- Array: Array,
- Date: Date
-}
-exports.validate = validate;
-function validate(/*Any*/instance,/*Object*/schema) {
- // Summary:
- // To use the validator call JSONSchema.validate with an instance object and an optional schema object.
- // If a schema is provided, it will be used to validate. If the instance object refers to a schema (self-validating),
- // that schema will be used to validate and the schema parameter is not necessary (if both exist,
- // both validations will occur).
- // The validate method will return an object with two properties:
- // valid: A boolean indicating if the instance is valid by the schema
- // errors: An array of validation errors. If there are no errors, then an
- // empty list will be returned. A validation error will have two properties:
- // property: which indicates which property had the error
- // message: which indicates what the error was
- //
- return validate(instance, schema, {changing: false});//, coerce: false, existingOnly: false});
- };
-exports.checkPropertyChange = function(/*Any*/value,/*Object*/schema, /*String*/property) {
- // Summary:
- // The checkPropertyChange method will check to see if an value can legally be in property with the given schema
- // This is slightly different than the validate method in that it will fail if the schema is readonly and it will
- // not check for self-validation, it is assumed that the passed in value is already internally valid.
- // The checkPropertyChange method will return the same object type as validate, see JSONSchema.validate for
- // information.
- //
- return validate(value, schema, {changing: property || "property"});
- };
-var validate = exports._validate = function(/*Any*/instance,/*Object*/schema,/*Object*/options) {
-
- if (!options) options = {};
- var _changing = options.changing;
-
- function getType(schema){
- return schema.type || (primitiveConstructors[schema.name] == schema && schema.name.toLowerCase());
- }
- var errors = [];
- // validate a value against a property definition
- function checkProp(value, schema, path,i){
-
- var l;
- path += path ? typeof i == 'number' ? '[' + i + ']' : typeof i == 'undefined' ? '' : '.' + i : i;
- function addError(message){
- errors.push({property:path,message:message});
- }
-
- if((typeof schema != 'object' || schema instanceof Array) && (path || typeof schema != 'function') && !(schema && getType(schema))){
- if(typeof schema == 'function'){
- if(!(value instanceof schema)){
- addError("is not an instance of the class/constructor " + schema.name);
- }
- }else if(schema){
- addError("Invalid schema/property definition " + schema);
- }
- return null;
- }
- if(_changing && schema.readonly){
- addError("is a readonly field, it can not be changed");
- }
- if(schema['extends']){ // if it extends another schema, it must pass that schema as well
- checkProp(value,schema['extends'],path,i);
- }
- // validate a value against a type definition
- function checkType(type,value){
- if(type){
- if(typeof type == 'string' && type != 'any' &&
- (type == 'null' ? value !== null : typeof value != type) &&
- !(value instanceof Array && type == 'array') &&
- !(value instanceof Date && type == 'date') &&
- !(type == 'integer' && value%1===0)){
- return [{property:path,message:(typeof value) + " value found, but a " + type + " is required"}];
- }
- if(type instanceof Array){
- var unionErrors=[];
- for(var j = 0; j < type.length; j++){ // a union type
- if(!(unionErrors=checkType(type[j],value)).length){
- break;
- }
- }
- if(unionErrors.length){
- return unionErrors;
- }
- }else if(typeof type == 'object'){
- var priorErrors = errors;
- errors = [];
- checkProp(value,type,path);
- var theseErrors = errors;
- errors = priorErrors;
- return theseErrors;
- }
- }
- return [];
- }
- if(value === undefined){
- if(schema.required){
- addError("is missing and it is required");
- }
- }else{
- errors = errors.concat(checkType(getType(schema),value));
- if(schema.disallow && !checkType(schema.disallow,value).length){
- addError(" disallowed value was matched");
- }
- if(value !== null){
- if(value instanceof Array){
- if(schema.items){
- var itemsIsArray = schema.items instanceof Array;
- var propDef = schema.items;
- for (i = 0, l = value.length; i < l; i += 1) {
- if (itemsIsArray)
- propDef = schema.items[i];
- if (options.coerce)
- value[i] = options.coerce(value[i], propDef);
- errors.concat(checkProp(value[i],propDef,path,i));
- }
- }
- if(schema.minItems && value.length < schema.minItems){
- addError("There must be a minimum of " + schema.minItems + " in the array");
- }
- if(schema.maxItems && value.length > schema.maxItems){
- addError("There must be a maximum of " + schema.maxItems + " in the array");
- }
- }else if(schema.properties || schema.additionalProperties){
- errors.concat(checkObj(value, schema.properties, path, schema.additionalProperties));
- }
- if(schema.pattern && typeof value == 'string' && !value.match(schema.pattern)){
- addError("does not match the regex pattern " + schema.pattern);
- }
- if(schema.maxLength && typeof value == 'string' && value.length > schema.maxLength){
- addError("may only be " + schema.maxLength + " characters long");
- }
- if(schema.minLength && typeof value == 'string' && value.length < schema.minLength){
- addError("must be at least " + schema.minLength + " characters long");
- }
- if(typeof schema.minimum !== undefined && typeof value == typeof schema.minimum &&
- schema.minimum > value){
- addError("must have a minimum value of " + schema.minimum);
- }
- if(typeof schema.maximum !== undefined && typeof value == typeof schema.maximum &&
- schema.maximum < value){
- addError("must have a maximum value of " + schema.maximum);
- }
- if(schema['enum']){
- var enumer = schema['enum'];
- l = enumer.length;
- var found;
- for(var j = 0; j < l; j++){
- if(enumer[j]===value){
- found=1;
- break;
- }
- }
- if(!found){
- addError("does not have a value in the enumeration " + enumer.join(", "));
- }
- }
- if(typeof schema.maxDecimal == 'number' &&
- (value.toString().match(new RegExp("\\.[0-9]{" + (schema.maxDecimal + 1) + ",}")))){
- addError("may only have " + schema.maxDecimal + " digits of decimal places");
- }
- }
- }
- return null;
- }
- // validate an object against a schema
- function checkObj(instance,objTypeDef,path,additionalProp){
-
- if(typeof objTypeDef =='object'){
- if(typeof instance != 'object' || instance instanceof Array){
- errors.push({property:path,message:"an object is required"});
- }
-
- for(var i in objTypeDef){
- if(objTypeDef.hasOwnProperty(i)){
- var value = instance[i];
- // skip _not_ specified properties
- if (value === undefined && options.existingOnly) continue;
- var propDef = objTypeDef[i];
- // set default
- if(value === undefined && propDef["default"]){
- value = instance[i] = propDef["default"];
- }
- if(options.coerce && i in instance){
- value = instance[i] = options.coerce(value, propDef);
- }
- checkProp(value,propDef,path,i);
- }
- }
- }
- for(i in instance){
- if(instance.hasOwnProperty(i) && !(i.charAt(0) == '_' && i.charAt(1) == '_') && objTypeDef && !objTypeDef[i] && additionalProp===false){
- if (options.filter) {
- delete instance[i];
- continue;
- } else {
- errors.push({property:path,message:(typeof value) + "The property " + i +
- " is not defined in the schema and the schema does not allow additional properties"});
- }
- }
- var requires = objTypeDef && objTypeDef[i] && objTypeDef[i].requires;
- if(requires && !(requires in instance)){
- errors.push({property:path,message:"the presence of the property " + i + " requires that " + requires + " also be present"});
- }
- value = instance[i];
- if(additionalProp && (!(objTypeDef && typeof objTypeDef == 'object') || !(i in objTypeDef))){
- if(options.coerce){
- value = instance[i] = options.coerce(value, additionalProp);
- }
- checkProp(value,additionalProp,path,i);
- }
- if(!_changing && value && value.$schema){
- errors = errors.concat(checkProp(value,value.$schema,path,i));
- }
- }
- return errors;
- }
- if(schema){
- checkProp(instance,schema,'',_changing || '');
- }
- if(!_changing && instance && instance.$schema){
- checkProp(instance,instance.$schema,'','');
- }
- return {valid:!errors.length,errors:errors};
-};
-exports.mustBeValid = function(result){
- // summary:
- // This checks to ensure that the result is valid and will throw an appropriate error message if it is not
- // result: the result returned from checkPropertyChange or validate
- if(!result.valid){
- throw new TypeError(result.errors.map(function(error){return "for property " + error.property + ': ' + error.message;}).join(", \n"));
- }
-}
-
-return exports;
-}));
diff --git a/deps/npm/node_modules/json-schema/package.json b/deps/npm/node_modules/json-schema/package.json
deleted file mode 100644
index b9b7bac836b..00000000000
--- a/deps/npm/node_modules/json-schema/package.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "name": "json-schema",
- "version": "0.2.3",
- "author": "Kris Zyp",
- "description": "JSON Schema validation and specifications",
- "maintainers":[
- {"name": "Kris Zyp", "email": "kriszyp@gmail.com"}],
- "keywords": [
- "json",
- "schema"
- ],
- "licenses": [
- {
- "type": "AFLv2.1",
- "url": "http://trac.dojotoolkit.org/browser/dojo/trunk/LICENSE#L43"
- },
- {
- "type": "BSD",
- "url": "http://trac.dojotoolkit.org/browser/dojo/trunk/LICENSE#L13"
- }
- ],
- "repository": {
- "type":"git",
- "url":"http://github.com/kriszyp/json-schema"
- },
- "directories": { "lib": "./lib" },
- "main": "./lib/validate.js",
- "devDependencies": { "vows": "*" },
- "scripts": { "test": "echo TESTS DISABLED vows --spec test/*.js" }
-}
-
diff --git a/deps/npm/node_modules/json-schema/test/tests.js b/deps/npm/node_modules/json-schema/test/tests.js
deleted file mode 100644
index 2938aea7c74..00000000000
--- a/deps/npm/node_modules/json-schema/test/tests.js
+++ /dev/null
@@ -1,95 +0,0 @@
-var assert = require('assert');
-var vows = require('vows');
-var path = require('path');
-var fs = require('fs');
-
-var validate = require('../lib/validate').validate;
-
-
-var revision = 'draft-03';
-var schemaRoot = path.join(__dirname, '..', revision);
-var schemaNames = ['schema', 'hyper-schema', 'links', 'json-ref' ];
-var schemas = {};
-
-schemaNames.forEach(function(name) {
- var file = path.join(schemaRoot, name);
- schemas[name] = loadSchema(file);
-});
-
-schemaNames.forEach(function(name) {
- var s, n = name+'-nsd', f = path.join(schemaRoot, name);
- schemas[n] = loadSchema(f);
- s = schemas[n];
- delete s['$schema'];
-});
-
-function loadSchema(path) {
- var data = fs.readFileSync(path, 'utf-8');
- var schema = JSON.parse(data);
- return schema;
-}
-
-function resultIsValid() {
- return function(result) {
- assert.isObject(result);
- //assert.isBoolean(result.valid);
- assert.equal(typeof(result.valid), 'boolean');
- assert.isArray(result.errors);
- for (var i = 0; i < result.errors.length; i++) {
- assert.notEqual(result.errors[i], null, 'errors['+i+'] is null');
- }
- }
-}
-
-function assertValidates(doc, schema) {
- var context = {};
-
- context[': validate('+doc+', '+schema+')'] = {
- topic: validate(schemas[doc], schemas[schema]),
- 'returns valid result': resultIsValid(),
- 'with valid=true': function(result) { assert.equal(result.valid, true); },
- 'and no errors': function(result) {
- // XXX work-around for bug in vows: [null] chokes it
- if (result.errors[0] == null) assert.fail('(errors contains null)');
- assert.length(result.errors, 0);
- }
- };
-
- return context;
-}
-
-function assertSelfValidates(doc) {
- var context = {};
-
- context[': validate('+doc+')'] = {
- topic: validate(schemas[doc]),
- 'returns valid result': resultIsValid(),
- 'with valid=true': function(result) { assert.equal(result.valid, true); },
- 'and no errors': function(result) { assert.length(result.errors, 0); }
- };
-
- return context;
-}
-
-var suite = vows.describe('JSON Schema').addBatch({
- 'Core-NSD self-validates': assertSelfValidates('schema-nsd'),
- 'Core-NSD/Core-NSD': assertValidates('schema-nsd', 'schema-nsd'),
- 'Core-NSD/Core': assertValidates('schema-nsd', 'schema'),
-
- 'Core self-validates': assertSelfValidates('schema'),
- 'Core/Core': assertValidates('schema', 'schema'),
-
- 'Hyper-NSD self-validates': assertSelfValidates('hyper-schema-nsd'),
- 'Hyper self-validates': assertSelfValidates('hyper-schema'),
- 'Hyper/Hyper': assertValidates('hyper-schema', 'hyper-schema'),
- 'Hyper/Core': assertValidates('hyper-schema', 'schema'),
-
- 'Links-NSD self-validates': assertSelfValidates('links-nsd'),
- 'Links self-validates': assertSelfValidates('links'),
- 'Links/Hyper': assertValidates('links', 'hyper-schema'),
- 'Links/Core': assertValidates('links', 'schema'),
-
- 'Json-Ref self-validates': assertSelfValidates('json-ref'),
- 'Json-Ref/Hyper': assertValidates('json-ref', 'hyper-schema'),
- 'Json-Ref/Core': assertValidates('json-ref', 'schema')
-}).export(module);
diff --git a/deps/npm/node_modules/json-stringify-safe/Makefile b/deps/npm/node_modules/json-stringify-safe/Makefile
deleted file mode 100644
index 36088c723a3..00000000000
--- a/deps/npm/node_modules/json-stringify-safe/Makefile
+++ /dev/null
@@ -1,35 +0,0 @@
-NODE_OPTS =
-TEST_OPTS =
-
-love:
- @echo "Feel like makin' love."
-
-test:
- @node $(NODE_OPTS) ./node_modules/.bin/_mocha -R dot $(TEST_OPTS)
-
-spec:
- @node $(NODE_OPTS) ./node_modules/.bin/_mocha -R spec $(TEST_OPTS)
-
-autotest:
- @node $(NODE_OPTS) ./node_modules/.bin/_mocha -R dot --watch $(TEST_OPTS)
-
-autospec:
- @node $(NODE_OPTS) ./node_modules/.bin/_mocha -R spec --watch $(TEST_OPTS)
-
-pack:
- @file=$$(npm pack); echo "$$file"; tar tf "$$file"
-
-publish:
- npm publish
-
-tag:
- git tag "v$$(node -e 'console.log(require("./package").version)')"
-
-clean:
- rm -f *.tgz
- npm prune --production
-
-.PHONY: love
-.PHONY: test spec autotest autospec
-.PHONY: pack publish tag
-.PHONY: clean
diff --git a/deps/npm/node_modules/json-stringify-safe/package.json b/deps/npm/node_modules/json-stringify-safe/package.json
deleted file mode 100644
index 8e17b1266a9..00000000000
--- a/deps/npm/node_modules/json-stringify-safe/package.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "name": "json-stringify-safe",
- "version": "5.0.1",
- "description": "Like JSON.stringify, but doesn't blow up on circular refs.",
- "keywords": [
- "json",
- "stringify",
- "circular",
- "safe"
- ],
- "homepage": "https://github.com/isaacs/json-stringify-safe",
- "bugs": "https://github.com/isaacs/json-stringify-safe/issues",
- "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me)",
- "contributors": [
- "Andri Möll <andri@dot.ee> (http://themoll.com)"
- ],
- "license": "ISC",
- "repository": {
- "type": "git",
- "url": "git://github.com/isaacs/json-stringify-safe"
- },
- "main": "stringify.js",
- "scripts": {
- "test": "node test.js"
- },
- "devDependencies": {
- "mocha": ">= 2.1.0 < 3",
- "must": ">= 0.12 < 0.13",
- "sinon": ">= 1.12.2 < 2"
- }
-}
diff --git a/deps/npm/node_modules/json-stringify-safe/stringify.js b/deps/npm/node_modules/json-stringify-safe/stringify.js
deleted file mode 100644
index 124a452181a..00000000000
--- a/deps/npm/node_modules/json-stringify-safe/stringify.js
+++ /dev/null
@@ -1,27 +0,0 @@
-exports = module.exports = stringify
-exports.getSerialize = serializer
-
-function stringify(obj, replacer, spaces, cycleReplacer) {
- return JSON.stringify(obj, serializer(replacer, cycleReplacer), spaces)
-}
-
-function serializer(replacer, cycleReplacer) {
- var stack = [], keys = []
-
- if (cycleReplacer == null) cycleReplacer = function(key, value) {
- if (stack[0] === value) return "[Circular ~]"
- return "[Circular ~." + keys.slice(0, stack.indexOf(value)).join(".") + "]"
- }
-
- return function(key, value) {
- if (stack.length > 0) {
- var thisPos = stack.indexOf(this)
- ~thisPos ? stack.splice(thisPos + 1) : stack.push(this)
- ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key)
- if (~stack.indexOf(value)) value = cycleReplacer.call(this, key, value)
- }
- else stack.push(value)
-
- return replacer == null ? value : replacer.call(this, key, value)
- }
-}
diff --git a/deps/npm/node_modules/json-stringify-safe/test/mocha.opts b/deps/npm/node_modules/json-stringify-safe/test/mocha.opts
deleted file mode 100644
index 2544e5861e4..00000000000
--- a/deps/npm/node_modules/json-stringify-safe/test/mocha.opts
+++ /dev/null
@@ -1,2 +0,0 @@
---recursive
---require must
diff --git a/deps/npm/node_modules/json-stringify-safe/test/stringify_test.js b/deps/npm/node_modules/json-stringify-safe/test/stringify_test.js
deleted file mode 100644
index 5b325831768..00000000000
--- a/deps/npm/node_modules/json-stringify-safe/test/stringify_test.js
+++ /dev/null
@@ -1,246 +0,0 @@
-var Sinon = require("sinon")
-var stringify = require("..")
-function jsonify(obj) { return JSON.stringify(obj, null, 2) }
-
-describe("Stringify", function() {
- it("must stringify circular objects", function() {
- var obj = {name: "Alice"}
- obj.self = obj
- var json = stringify(obj, null, 2)
- json.must.eql(jsonify({name: "Alice", self: "[Circular ~]"}))
- })
-
- it("must stringify circular objects with intermediaries", function() {
- var obj = {name: "Alice"}
- obj.identity = {self: obj}
- var json = stringify(obj, null, 2)
- json.must.eql(jsonify({name: "Alice", identity: {self: "[Circular ~]"}}))
- })
-
- it("must stringify circular objects deeper", function() {
- var obj = {name: "Alice", child: {name: "Bob"}}
- obj.child.self = obj.child
-
- stringify(obj, null, 2).must.eql(jsonify({
- name: "Alice",
- child: {name: "Bob", self: "[Circular ~.child]"}
- }))
- })
-
- it("must stringify circular objects deeper with intermediaries", function() {
- var obj = {name: "Alice", child: {name: "Bob"}}
- obj.child.identity = {self: obj.child}
-
- stringify(obj, null, 2).must.eql(jsonify({
- name: "Alice",
- child: {name: "Bob", identity: {self: "[Circular ~.child]"}}
- }))
- })
-
- it("must stringify circular objects in an array", function() {
- var obj = {name: "Alice"}
- obj.self = [obj, obj]
-
- stringify(obj, null, 2).must.eql(jsonify({
- name: "Alice", self: ["[Circular ~]", "[Circular ~]"]
- }))
- })
-
- it("must stringify circular objects deeper in an array", function() {
- var obj = {name: "Alice", children: [{name: "Bob"}, {name: "Eve"}]}
- obj.children[0].self = obj.children[0]
- obj.children[1].self = obj.children[1]
-
- stringify(obj, null, 2).must.eql(jsonify({
- name: "Alice",
- children: [
- {name: "Bob", self: "[Circular ~.children.0]"},
- {name: "Eve", self: "[Circular ~.children.1]"}
- ]
- }))
- })
-
- it("must stringify circular arrays", function() {
- var obj = []
- obj.push(obj)
- obj.push(obj)
- var json = stringify(obj, null, 2)
- json.must.eql(jsonify(["[Circular ~]", "[Circular ~]"]))
- })
-
- it("must stringify circular arrays with intermediaries", function() {
- var obj = []
- obj.push({name: "Alice", self: obj})
- obj.push({name: "Bob", self: obj})
-
- stringify(obj, null, 2).must.eql(jsonify([
- {name: "Alice", self: "[Circular ~]"},
- {name: "Bob", self: "[Circular ~]"}
- ]))
- })
-
- it("must stringify repeated objects in objects", function() {
- var obj = {}
- var alice = {name: "Alice"}
- obj.alice1 = alice
- obj.alice2 = alice
-
- stringify(obj, null, 2).must.eql(jsonify({
- alice1: {name: "Alice"},
- alice2: {name: "Alice"}
- }))
- })
-
- it("must stringify repeated objects in arrays", function() {
- var alice = {name: "Alice"}
- var obj = [alice, alice]
- var json = stringify(obj, null, 2)
- json.must.eql(jsonify([{name: "Alice"}, {name: "Alice"}]))
- })
-
- it("must call given decycler and use its output", function() {
- var obj = {}
- obj.a = obj
- obj.b = obj
-
- var decycle = Sinon.spy(function() { return decycle.callCount })
- var json = stringify(obj, null, 2, decycle)
- json.must.eql(jsonify({a: 1, b: 2}, null, 2))
-
- decycle.callCount.must.equal(2)
- decycle.thisValues[0].must.equal(obj)
- decycle.args[0][0].must.equal("a")
- decycle.args[0][1].must.equal(obj)
- decycle.thisValues[1].must.equal(obj)
- decycle.args[1][0].must.equal("b")
- decycle.args[1][1].must.equal(obj)
- })
-
- it("must call replacer and use its output", function() {
- var obj = {name: "Alice", child: {name: "Bob"}}
-
- var replacer = Sinon.spy(bangString)
- var json = stringify(obj, replacer, 2)
- json.must.eql(jsonify({name: "Alice!", child: {name: "Bob!"}}))
-
- replacer.callCount.must.equal(4)
- replacer.args[0][0].must.equal("")
- replacer.args[0][1].must.equal(obj)
- replacer.thisValues[1].must.equal(obj)
- replacer.args[1][0].must.equal("name")
- replacer.args[1][1].must.equal("Alice")
- replacer.thisValues[2].must.equal(obj)
- replacer.args[2][0].must.equal("child")
- replacer.args[2][1].must.equal(obj.child)
- replacer.thisValues[3].must.equal(obj.child)
- replacer.args[3][0].must.equal("name")
- replacer.args[3][1].must.equal("Bob")
- })
-
- it("must call replacer after describing circular references", function() {
- var obj = {name: "Alice"}
- obj.self = obj
-
- var replacer = Sinon.spy(bangString)
- var json = stringify(obj, replacer, 2)
- json.must.eql(jsonify({name: "Alice!", self: "[Circular ~]!"}))
-
- replacer.callCount.must.equal(3)
- replacer.args[0][0].must.equal("")
- replacer.args[0][1].must.equal(obj)
- replacer.thisValues[1].must.equal(obj)
- replacer.args[1][0].must.equal("name")
- replacer.args[1][1].must.equal("Alice")
- replacer.thisValues[2].must.equal(obj)
- replacer.args[2][0].must.equal("self")
- replacer.args[2][1].must.equal("[Circular ~]")
- })
-
- it("must call given decycler and use its output for nested objects",
- function() {
- var obj = {}
- obj.a = obj
- obj.b = {self: obj}
-
- var decycle = Sinon.spy(function() { return decycle.callCount })
- var json = stringify(obj, null, 2, decycle)
- json.must.eql(jsonify({a: 1, b: {self: 2}}))
-
- decycle.callCount.must.equal(2)
- decycle.args[0][0].must.equal("a")
- decycle.args[0][1].must.equal(obj)
- decycle.args[1][0].must.equal("self")
- decycle.args[1][1].must.equal(obj)
- })
-
- it("must use decycler's output when it returned null", function() {
- var obj = {a: "b"}
- obj.self = obj
- obj.selves = [obj, obj]
-
- function decycle() { return null }
- stringify(obj, null, 2, decycle).must.eql(jsonify({
- a: "b",
- self: null,
- selves: [null, null]
- }))
- })
-
- it("must use decycler's output when it returned undefined", function() {
- var obj = {a: "b"}
- obj.self = obj
- obj.selves = [obj, obj]
-
- function decycle() {}
- stringify(obj, null, 2, decycle).must.eql(jsonify({
- a: "b",
- selves: [null, null]
- }))
- })
-
- it("must throw given a decycler that returns a cycle", function() {
- var obj = {}
- obj.self = obj
- var err
- function identity(key, value) { return value }
- try { stringify(obj, null, 2, identity) } catch (ex) { err = ex }
- err.must.be.an.instanceof(TypeError)
- })
-
- describe(".getSerialize", function() {
- it("must stringify circular objects", function() {
- var obj = {a: "b"}
- obj.circularRef = obj
- obj.list = [obj, obj]
-
- var json = JSON.stringify(obj, stringify.getSerialize(), 2)
- json.must.eql(jsonify({
- "a": "b",
- "circularRef": "[Circular ~]",
- "list": ["[Circular ~]", "[Circular ~]"]
- }))
- })
-
- // This is the behavior as of Mar 3, 2015.
- // The serializer function keeps state inside the returned function and
- // so far I'm not sure how to not do that. JSON.stringify's replacer is not
- // called _after_ serialization.
- xit("must return a function that could be called twice", function() {
- var obj = {name: "Alice"}
- obj.self = obj
-
- var json
- var serializer = stringify.getSerialize()
-
- json = JSON.stringify(obj, serializer, 2)
- json.must.eql(jsonify({name: "Alice", self: "[Circular ~]"}))
-
- json = JSON.stringify(obj, serializer, 2)
- json.must.eql(jsonify({name: "Alice", self: "[Circular ~]"}))
- })
- })
-})
-
-function bangString(key, value) {
- return typeof value == "string" ? value + "!" : value
-}
diff --git a/deps/npm/node_modules/jsprim/CHANGES.md b/deps/npm/node_modules/jsprim/CHANGES.md
deleted file mode 100644
index c52d39d6870..00000000000
--- a/deps/npm/node_modules/jsprim/CHANGES.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# Changelog
-
-## not yet released
-
-None yet.
-
-## v1.4.1 (2017-08-02)
-
-* #21 Update verror dep
-* #22 Update extsprintf dependency
-* #23 update contribution guidelines
-
-## v1.4.0 (2017-03-13)
-
-* #7 Add parseInteger() function for safer number parsing
-
-## v1.3.1 (2016-09-12)
-
-* #13 Incompatible with webpack
-
-## v1.3.0 (2016-06-22)
-
-* #14 add safer version of hasOwnProperty()
-* #15 forEachKey() should ignore inherited properties
-
-## v1.2.2 (2015-10-15)
-
-* #11 NPM package shouldn't include any code that does `require('JSV')`
-* #12 jsl.node.conf missing definition for "module"
-
-## v1.2.1 (2015-10-14)
-
-* #8 odd date parsing behaviour
-
-## v1.2.0 (2015-10-13)
-
-* #9 want function for returning RFC1123 dates
-
-## v1.1.0 (2015-09-02)
-
-* #6 a new suite of hrtime manipulation routines: `hrtimeAdd()`,
- `hrtimeAccum()`, `hrtimeNanosec()`, `hrtimeMicrosec()` and
- `hrtimeMillisec()`.
-
-## v1.0.0 (2015-09-01)
-
-First tracked release. Includes everything in previous releases, plus:
-
-* #4 want function for merging objects
diff --git a/deps/npm/node_modules/jsprim/CONTRIBUTING.md b/deps/npm/node_modules/jsprim/CONTRIBUTING.md
deleted file mode 100644
index 750cef8dfd5..00000000000
--- a/deps/npm/node_modules/jsprim/CONTRIBUTING.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# Contributing
-
-This repository uses [cr.joyent.us](https://cr.joyent.us) (Gerrit) for new
-changes. Anyone can submit changes. To get started, see the [cr.joyent.us user
-guide](https://github.com/joyent/joyent-gerrit/blob/master/docs/user/README.md).
-This repo does not use GitHub pull requests.
-
-See the [Joyent Engineering
-Guidelines](https://github.com/joyent/eng/blob/master/docs/index.md) for general
-best practices expected in this repository.
-
-Contributions should be "make prepush" clean. The "prepush" target runs the
-"check" target, which requires these separate tools:
-
-* https://github.com/davepacheco/jsstyle
-* https://github.com/davepacheco/javascriptlint
-
-If you're changing something non-trivial or user-facing, you may want to submit
-an issue first.
diff --git a/deps/npm/node_modules/jsprim/LICENSE b/deps/npm/node_modules/jsprim/LICENSE
deleted file mode 100644
index cbc0bb3ba3b..00000000000
--- a/deps/npm/node_modules/jsprim/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2012, Joyent, Inc. All rights reserved.
-
-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/deps/npm/node_modules/jsprim/lib/jsprim.js b/deps/npm/node_modules/jsprim/lib/jsprim.js
deleted file mode 100644
index f7d0d81c3f4..00000000000
--- a/deps/npm/node_modules/jsprim/lib/jsprim.js
+++ /dev/null
@@ -1,735 +0,0 @@
-/*
- * lib/jsprim.js: utilities for primitive JavaScript types
- */
-
-var mod_assert = require('assert-plus');
-var mod_util = require('util');
-
-var mod_extsprintf = require('extsprintf');
-var mod_verror = require('verror');
-var mod_jsonschema = require('json-schema');
-
-/*
- * Public interface
- */
-exports.deepCopy = deepCopy;
-exports.deepEqual = deepEqual;
-exports.isEmpty = isEmpty;
-exports.hasKey = hasKey;
-exports.forEachKey = forEachKey;
-exports.pluck = pluck;
-exports.flattenObject = flattenObject;
-exports.flattenIter = flattenIter;
-exports.validateJsonObject = validateJsonObjectJS;
-exports.validateJsonObjectJS = validateJsonObjectJS;
-exports.randElt = randElt;
-exports.extraProperties = extraProperties;
-exports.mergeObjects = mergeObjects;
-
-exports.startsWith = startsWith;
-exports.endsWith = endsWith;
-
-exports.parseInteger = parseInteger;
-
-exports.iso8601 = iso8601;
-exports.rfc1123 = rfc1123;
-exports.parseDateTime = parseDateTime;
-
-exports.hrtimediff = hrtimeDiff;
-exports.hrtimeDiff = hrtimeDiff;
-exports.hrtimeAccum = hrtimeAccum;
-exports.hrtimeAdd = hrtimeAdd;
-exports.hrtimeNanosec = hrtimeNanosec;
-exports.hrtimeMicrosec = hrtimeMicrosec;
-exports.hrtimeMillisec = hrtimeMillisec;
-
-
-/*
- * Deep copy an acyclic *basic* Javascript object. This only handles basic
- * scalars (strings, numbers, booleans) and arbitrarily deep arrays and objects
- * containing these. This does *not* handle instances of other classes.
- */
-function deepCopy(obj)
-{
- var ret, key;
- var marker = '__deepCopy';
-
- if (obj && obj[marker])
- throw (new Error('attempted deep copy of cyclic object'));
-
- if (obj && obj.constructor == Object) {
- ret = {};
- obj[marker] = true;
-
- for (key in obj) {
- if (key == marker)
- continue;
-
- ret[key] = deepCopy(obj[key]);
- }
-
- delete (obj[marker]);
- return (ret);
- }
-
- if (obj && obj.constructor == Array) {
- ret = [];
- obj[marker] = true;
-
- for (key = 0; key < obj.length; key++)
- ret.push(deepCopy(obj[key]));
-
- delete (obj[marker]);
- return (ret);
- }
-
- /*
- * It must be a primitive type -- just return it.
- */
- return (obj);
-}
-
-function deepEqual(obj1, obj2)
-{
- if (typeof (obj1) != typeof (obj2))
- return (false);
-
- if (obj1 === null || obj2 === null || typeof (obj1) != 'object')
- return (obj1 === obj2);
-
- if (obj1.constructor != obj2.constructor)
- return (false);
-
- var k;
- for (k in obj1) {
- if (!obj2.hasOwnProperty(k))
- return (false);
-
- if (!deepEqual(obj1[k], obj2[k]))
- return (false);
- }
-
- for (k in obj2) {
- if (!obj1.hasOwnProperty(k))
- return (false);
- }
-
- return (true);
-}
-
-function isEmpty(obj)
-{
- var key;
- for (key in obj)
- return (false);
- return (true);
-}
-
-function hasKey(obj, key)
-{
- mod_assert.equal(typeof (key), 'string');
- return (Object.prototype.hasOwnProperty.call(obj, key));
-}
-
-function forEachKey(obj, callback)
-{
- for (var key in obj) {
- if (hasKey(obj, key)) {
- callback(key, obj[key]);
- }
- }
-}
-
-function pluck(obj, key)
-{
- mod_assert.equal(typeof (key), 'string');
- return (pluckv(obj, key));
-}
-
-function pluckv(obj, key)
-{
- if (obj === null || typeof (obj) !== 'object')
- return (undefined);
-
- if (obj.hasOwnProperty(key))
- return (obj[key]);
-
- var i = key.indexOf('.');
- if (i == -1)
- return (undefined);
-
- var key1 = key.substr(0, i);
- if (!obj.hasOwnProperty(key1))
- return (undefined);
-
- return (pluckv(obj[key1], key.substr(i + 1)));
-}
-
-/*
- * Invoke callback(row) for each entry in the array that would be returned by
- * flattenObject(data, depth). This is just like flattenObject(data,
- * depth).forEach(callback), except that the intermediate array is never
- * created.
- */
-function flattenIter(data, depth, callback)
-{
- doFlattenIter(data, depth, [], callback);
-}
-
-function doFlattenIter(data, depth, accum, callback)
-{
- var each;
- var key;
-
- if (depth === 0) {
- each = accum.slice(0);
- each.push(data);
- callback(each);
- return;
- }
-
- mod_assert.ok(data !== null);
- mod_assert.equal(typeof (data), 'object');
- mod_assert.equal(typeof (depth), 'number');
- mod_assert.ok(depth >= 0);
-
- for (key in data) {
- each = accum.slice(0);
- each.push(key);
- doFlattenIter(data[key], depth - 1, each, callback);
- }
-}
-
-function flattenObject(data, depth)
-{
- if (depth === 0)
- return ([ data ]);
-
- mod_assert.ok(data !== null);
- mod_assert.equal(typeof (data), 'object');
- mod_assert.equal(typeof (depth), 'number');
- mod_assert.ok(depth >= 0);
-
- var rv = [];
- var key;
-
- for (key in data) {
- flattenObject(data[key], depth - 1).forEach(function (p) {
- rv.push([ key ].concat(p));
- });
- }
-
- return (rv);
-}
-
-function startsWith(str, prefix)
-{
- return (str.substr(0, prefix.length) == prefix);
-}
-
-function endsWith(str, suffix)
-{
- return (str.substr(
- str.length - suffix.length, suffix.length) == suffix);
-}
-
-function iso8601(d)
-{
- if (typeof (d) == 'number')
- d = new Date(d);
- mod_assert.ok(d.constructor === Date);
- return (mod_extsprintf.sprintf('%4d-%02d-%02dT%02d:%02d:%02d.%03dZ',
- d.getUTCFullYear(), d.getUTCMonth() + 1, d.getUTCDate(),
- d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(),
- d.getUTCMilliseconds()));
-}
-
-var RFC1123_MONTHS = [
- 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
- 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
-var RFC1123_DAYS = [
- 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
-
-function rfc1123(date) {
- return (mod_extsprintf.sprintf('%s, %02d %s %04d %02d:%02d:%02d GMT',
- RFC1123_DAYS[date.getUTCDay()], date.getUTCDate(),
- RFC1123_MONTHS[date.getUTCMonth()], date.getUTCFullYear(),
- date.getUTCHours(), date.getUTCMinutes(),
- date.getUTCSeconds()));
-}
-
-/*
- * Parses a date expressed as a string, as either a number of milliseconds since
- * the epoch or any string format that Date accepts, giving preference to the
- * former where these two sets overlap (e.g., small numbers).
- */
-function parseDateTime(str)
-{
- /*
- * This is irritatingly implicit, but significantly more concise than
- * alternatives. The "+str" will convert a string containing only a
- * number directly to a Number, or NaN for other strings. Thus, if the
- * conversion succeeds, we use it (this is the milliseconds-since-epoch
- * case). Otherwise, we pass the string directly to the Date
- * constructor to parse.
- */
- var numeric = +str;
- if (!isNaN(numeric)) {
- return (new Date(numeric));
- } else {
- return (new Date(str));
- }
-}
-
-
-/*
- * Number.*_SAFE_INTEGER isn't present before node v0.12, so we hardcode
- * the ES6 definitions here, while allowing for them to someday be higher.
- */
-var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;
-var MIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER || -9007199254740991;
-
-
-/*
- * Default options for parseInteger().
- */
-var PI_DEFAULTS = {
- base: 10,
- allowSign: true,
- allowPrefix: false,
- allowTrailing: false,
- allowImprecise: false,
- trimWhitespace: false,
- leadingZeroIsOctal: false
-};
-
-var CP_0 = 0x30;
-var CP_9 = 0x39;
-
-var CP_A = 0x41;
-var CP_B = 0x42;
-var CP_O = 0x4f;
-var CP_T = 0x54;
-var CP_X = 0x58;
-var CP_Z = 0x5a;
-
-var CP_a = 0x61;
-var CP_b = 0x62;
-var CP_o = 0x6f;
-var CP_t = 0x74;
-var CP_x = 0x78;
-var CP_z = 0x7a;
-
-var PI_CONV_DEC = 0x30;
-var PI_CONV_UC = 0x37;
-var PI_CONV_LC = 0x57;
-
-
-/*
- * A stricter version of parseInt() that provides options for changing what
- * is an acceptable string (for example, disallowing trailing characters).
- */
-function parseInteger(str, uopts)
-{
- mod_assert.string(str, 'str');
- mod_assert.optionalObject(uopts, 'options');
-
- var baseOverride = false;
- var options = PI_DEFAULTS;
-
- if (uopts) {
- baseOverride = hasKey(uopts, 'base');
- options = mergeObjects(options, uopts);
- mod_assert.number(options.base, 'options.base');
- mod_assert.ok(options.base >= 2, 'options.base >= 2');
- mod_assert.ok(options.base <= 36, 'options.base <= 36');
- mod_assert.bool(options.allowSign, 'options.allowSign');
- mod_assert.bool(options.allowPrefix, 'options.allowPrefix');
- mod_assert.bool(options.allowTrailing,
- 'options.allowTrailing');
- mod_assert.bool(options.allowImprecise,
- 'options.allowImprecise');
- mod_assert.bool(options.trimWhitespace,
- 'options.trimWhitespace');
- mod_assert.bool(options.leadingZeroIsOctal,
- 'options.leadingZeroIsOctal');
-
- if (options.leadingZeroIsOctal) {
- mod_assert.ok(!baseOverride,
- '"base" and "leadingZeroIsOctal" are ' +
- 'mutually exclusive');
- }
- }
-
- var c;
- var pbase = -1;
- var base = options.base;
- var start;
- var mult = 1;
- var value = 0;
- var idx = 0;
- var len = str.length;
-
- /* Trim any whitespace on the left side. */
- if (options.trimWhitespace) {
- while (idx < len && isSpace(str.charCodeAt(idx))) {
- ++idx;
- }
- }
-
- /* Check the number for a leading sign. */
- if (options.allowSign) {
- if (str[idx] === '-') {
- idx += 1;
- mult = -1;
- } else if (str[idx] === '+') {
- idx += 1;
- }
- }
-
- /* Parse the base-indicating prefix if there is one. */
- if (str[idx] === '0') {
- if (options.allowPrefix) {
- pbase = prefixToBase(str.charCodeAt(idx + 1));
- if (pbase !== -1 && (!baseOverride || pbase === base)) {
- base = pbase;
- idx += 2;
- }
- }
-
- if (pbase === -1 && options.leadingZeroIsOctal) {
- base = 8;
- }
- }
-
- /* Parse the actual digits. */
- for (start = idx; idx < len; ++idx) {
- c = translateDigit(str.charCodeAt(idx));
- if (c !== -1 && c < base) {
- value *= base;
- value += c;
- } else {
- break;
- }
- }
-
- /* If we didn't parse any digits, we have an invalid number. */
- if (start === idx) {
- return (new Error('invalid number: ' + JSON.stringify(str)));
- }
-
- /* Trim any whitespace on the right side. */
- if (options.trimWhitespace) {
- while (idx < len && isSpace(str.charCodeAt(idx))) {
- ++idx;
- }
- }
-
- /* Check for trailing characters. */
- if (idx < len && !options.allowTrailing) {
- return (new Error('trailing characters after number: ' +
- JSON.stringify(str.slice(idx))));
- }
-
- /* If our value is 0, we return now, to avoid returning -0. */
- if (value === 0) {
- return (0);
- }
-
- /* Calculate our final value. */
- var result = value * mult;
-
- /*
- * If the string represents a value that cannot be precisely represented
- * by JavaScript, then we want to check that:
- *
- * - We never increased the value past MAX_SAFE_INTEGER
- * - We don't make the result negative and below MIN_SAFE_INTEGER
- *
- * Because we only ever increment the value during parsing, there's no
- * chance of moving past MAX_SAFE_INTEGER and then dropping below it
- * again, losing precision in the process. This means that we only need
- * to do our checks here, at the end.
- */
- if (!options.allowImprecise &&
- (value > MAX_SAFE_INTEGER || result < MIN_SAFE_INTEGER)) {
- return (new Error('number is outside of the supported range: ' +
- JSON.stringify(str.slice(start, idx))));
- }
-
- return (result);
-}
-
-
-/*
- * Interpret a character code as a base-36 digit.
- */
-function translateDigit(d)
-{
- if (d >= CP_0 && d <= CP_9) {
- /* '0' to '9' -> 0 to 9 */
- return (d - PI_CONV_DEC);
- } else if (d >= CP_A && d <= CP_Z) {
- /* 'A' - 'Z' -> 10 to 35 */
- return (d - PI_CONV_UC);
- } else if (d >= CP_a && d <= CP_z) {
- /* 'a' - 'z' -> 10 to 35 */
- return (d - PI_CONV_LC);
- } else {
- /* Invalid character code */
- return (-1);
- }
-}
-
-
-/*
- * Test if a value matches the ECMAScript definition of trimmable whitespace.
- */
-function isSpace(c)
-{
- return (c === 0x20) ||
- (c >= 0x0009 && c <= 0x000d) ||
- (c === 0x00a0) ||
- (c === 0x1680) ||
- (c === 0x180e) ||
- (c >= 0x2000 && c <= 0x200a) ||
- (c === 0x2028) ||
- (c === 0x2029) ||
- (c === 0x202f) ||
- (c === 0x205f) ||
- (c === 0x3000) ||
- (c === 0xfeff);
-}
-
-
-/*
- * Determine which base a character indicates (e.g., 'x' indicates hex).
- */
-function prefixToBase(c)
-{
- if (c === CP_b || c === CP_B) {
- /* 0b/0B (binary) */
- return (2);
- } else if (c === CP_o || c === CP_O) {
- /* 0o/0O (octal) */
- return (8);
- } else if (c === CP_t || c === CP_T) {
- /* 0t/0T (decimal) */
- return (10);
- } else if (c === CP_x || c === CP_X) {
- /* 0x/0X (hexadecimal) */
- return (16);
- } else {
- /* Not a meaningful character */
- return (-1);
- }
-}
-
-
-function validateJsonObjectJS(schema, input)
-{
- var report = mod_jsonschema.validate(input, schema);
-
- if (report.errors.length === 0)
- return (null);
-
- /* Currently, we only do anything useful with the first error. */
- var error = report.errors[0];
-
- /* The failed property is given by a URI with an irrelevant prefix. */
- var propname = error['property'];
- var reason = error['message'].toLowerCase();
- var i, j;
-
- /*
- * There's at least one case where the property error message is
- * confusing at best. We work around this here.
- */
- if ((i = reason.indexOf('the property ')) != -1 &&
- (j = reason.indexOf(' is not defined in the schema and the ' +
- 'schema does not allow additional properties')) != -1) {
- i += 'the property '.length;
- if (propname === '')
- propname = reason.substr(i, j - i);
- else
- propname = propname + '.' + reason.substr(i, j - i);
-
- reason = 'unsupported property';
- }
-
- var rv = new mod_verror.VError('property "%s": %s', propname, reason);
- rv.jsv_details = error;
- return (rv);
-}
-
-function randElt(arr)
-{
- mod_assert.ok(Array.isArray(arr) && arr.length > 0,
- 'randElt argument must be a non-empty array');
-
- return (arr[Math.floor(Math.random() * arr.length)]);
-}
-
-function assertHrtime(a)
-{
- mod_assert.ok(a[0] >= 0 && a[1] >= 0,
- 'negative numbers not allowed in hrtimes');
- mod_assert.ok(a[1] < 1e9, 'nanoseconds column overflow');
-}
-
-/*
- * Compute the time elapsed between hrtime readings A and B, where A is later
- * than B. hrtime readings come from Node's process.hrtime(). There is no
- * defined way to represent negative deltas, so it's illegal to diff B from A
- * where the time denoted by B is later than the time denoted by A. If this
- * becomes valuable, we can define a representation and extend the
- * implementation to support it.
- */
-function hrtimeDiff(a, b)
-{
- assertHrtime(a);
- assertHrtime(b);
- mod_assert.ok(a[0] > b[0] || (a[0] == b[0] && a[1] >= b[1]),
- 'negative differences not allowed');
-
- var rv = [ a[0] - b[0], 0 ];
-
- if (a[1] >= b[1]) {
- rv[1] = a[1] - b[1];
- } else {
- rv[0]--;
- rv[1] = 1e9 - (b[1] - a[1]);
- }
-
- return (rv);
-}
-
-/*
- * Convert a hrtime reading from the array format returned by Node's
- * process.hrtime() into a scalar number of nanoseconds.
- */
-function hrtimeNanosec(a)
-{
- assertHrtime(a);
-
- return (Math.floor(a[0] * 1e9 + a[1]));
-}
-
-/*
- * Convert a hrtime reading from the array format returned by Node's
- * process.hrtime() into a scalar number of microseconds.
- */
-function hrtimeMicrosec(a)
-{
- assertHrtime(a);
-
- return (Math.floor(a[0] * 1e6 + a[1] / 1e3));
-}
-
-/*
- * Convert a hrtime reading from the array format returned by Node's
- * process.hrtime() into a scalar number of milliseconds.
- */
-function hrtimeMillisec(a)
-{
- assertHrtime(a);
-
- return (Math.floor(a[0] * 1e3 + a[1] / 1e6));
-}
-
-/*
- * Add two hrtime readings A and B, overwriting A with the result of the
- * addition. This function is useful for accumulating several hrtime intervals
- * into a counter. Returns A.
- */
-function hrtimeAccum(a, b)
-{
- assertHrtime(a);
- assertHrtime(b);
-
- /*
- * Accumulate the nanosecond component.
- */
- a[1] += b[1];
- if (a[1] >= 1e9) {
- /*
- * The nanosecond component overflowed, so carry to the seconds
- * field.
- */
- a[0]++;
- a[1] -= 1e9;
- }
-
- /*
- * Accumulate the seconds component.
- */
- a[0] += b[0];
-
- return (a);
-}
-
-/*
- * Add two hrtime readings A and B, returning the result as a new hrtime array.
- * Does not modify either input argument.
- */
-function hrtimeAdd(a, b)
-{
- assertHrtime(a);
-
- var rv = [ a[0], a[1] ];
-
- return (hrtimeAccum(rv, b));
-}
-
-
-/*
- * Check an object for unexpected properties. Accepts the object to check, and
- * an array of allowed property names (strings). Returns an array of key names
- * that were found on the object, but did not appear in the list of allowed
- * properties. If no properties were found, the returned array will be of
- * zero length.
- */
-function extraProperties(obj, allowed)
-{
- mod_assert.ok(typeof (obj) === 'object' && obj !== null,
- 'obj argument must be a non-null object');
- mod_assert.ok(Array.isArray(allowed),
- 'allowed argument must be an array of strings');
- for (var i = 0; i < allowed.length; i++) {
- mod_assert.ok(typeof (allowed[i]) === 'string',
- 'allowed argument must be an array of strings');
- }
-
- return (Object.keys(obj).filter(function (key) {
- return (allowed.indexOf(key) === -1);
- }));
-}
-
-/*
- * Given three sets of properties "provided" (may be undefined), "overrides"
- * (required), and "defaults" (may be undefined), construct an object containing
- * the union of these sets with "overrides" overriding "provided", and
- * "provided" overriding "defaults". None of the input objects are modified.
- */
-function mergeObjects(provided, overrides, defaults)
-{
- var rv, k;
-
- rv = {};
- if (defaults) {
- for (k in defaults)
- rv[k] = defaults[k];
- }
-
- if (provided) {
- for (k in provided)
- rv[k] = provided[k];
- }
-
- if (overrides) {
- for (k in overrides)
- rv[k] = overrides[k];
- }
-
- return (rv);
-}
diff --git a/deps/npm/node_modules/jsprim/package.json b/deps/npm/node_modules/jsprim/package.json
deleted file mode 100644
index 25345ee0496..00000000000
--- a/deps/npm/node_modules/jsprim/package.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "name": "jsprim",
- "version": "1.4.1",
- "description": "utilities for primitive JavaScript types",
- "main": "./lib/jsprim.js",
- "repository": {
- "type": "git",
- "url": "git://github.com/joyent/node-jsprim.git"
- },
- "dependencies": {
- "assert-plus": "1.0.0",
- "extsprintf": "1.3.0",
- "json-schema": "0.2.3",
- "verror": "1.10.0"
- },
- "engines": [
- "node >=0.6.0"
- ],
- "license": "MIT"
-}
diff --git a/deps/npm/node_modules/libnpmdiff/package.json b/deps/npm/node_modules/libnpmdiff/package.json
index 53fd5d4befd..529fc79539b 100644
--- a/deps/npm/node_modules/libnpmdiff/package.json
+++ b/deps/npm/node_modules/libnpmdiff/package.json
@@ -60,7 +60,7 @@
"diff": "^5.0.0",
"minimatch": "^3.0.4",
"npm-package-arg": "^8.1.4",
- "pacote": "^11.3.4",
+ "pacote": "^12.0.0",
"tar": "^6.1.0"
}
}
diff --git a/deps/npm/node_modules/libnpmexec/package.json b/deps/npm/node_modules/libnpmexec/package.json
index 2668f11731e..067c39ae744 100644
--- a/deps/npm/node_modules/libnpmexec/package.json
+++ b/deps/npm/node_modules/libnpmexec/package.json
@@ -1,12 +1,12 @@
{
"name": "libnpmexec",
- "version": "2.0.1",
+ "version": "3.0.0",
"files": [
"lib"
],
"main": "lib/index.js",
"engines": {
- "node": ">=10"
+ "node": "^12.13.0 || ^14.15.0 || >=16"
},
"description": "npm exec (npx) programmatic API",
"repository": "https://github.com/npm/libnpmexec",
@@ -37,6 +37,7 @@
"prepublishOnly": "git push origin --follow-tags"
},
"tap": {
+ "color": true,
"check-coverage": true
},
"devDependencies": {
@@ -49,13 +50,13 @@
"tap": "^15.0.6"
},
"dependencies": {
- "@npmcli/arborist": "^2.3.0",
+ "@npmcli/arborist": "^3.0.0",
"@npmcli/ci-detect": "^1.3.0",
- "@npmcli/run-script": "^1.8.4",
+ "@npmcli/run-script": "^2.0.0",
"chalk": "^4.1.0",
"mkdirp-infer-owner": "^2.0.0",
"npm-package-arg": "^8.1.2",
- "pacote": "^11.3.1",
+ "pacote": "^12.0.0",
"proc-log": "^1.0.0",
"read": "^1.0.7",
"read-package-json-fast": "^2.0.2",
diff --git a/deps/npm/node_modules/libnpmfund/package.json b/deps/npm/node_modules/libnpmfund/package.json
index 7f4acad383b..e021d8874d2 100644
--- a/deps/npm/node_modules/libnpmfund/package.json
+++ b/deps/npm/node_modules/libnpmfund/package.json
@@ -1,6 +1,6 @@
{
"name": "libnpmfund",
- "version": "1.1.0",
+ "version": "2.0.0",
"files": [
"index.js"
],
@@ -52,6 +52,9 @@
"tap": "^15.0.9"
},
"dependencies": {
- "@npmcli/arborist": "^2.5.0"
+ "@npmcli/arborist": "^3.0.0"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16"
}
}
diff --git a/deps/npm/node_modules/libnpmpack/package.json b/deps/npm/node_modules/libnpmpack/package.json
index f3ec245d314..e0538b17160 100644
--- a/deps/npm/node_modules/libnpmpack/package.json
+++ b/deps/npm/node_modules/libnpmpack/package.json
@@ -1,6 +1,6 @@
{
"name": "libnpmpack",
- "version": "2.0.1",
+ "version": "3.0.0",
"description": "Programmatic API for the bits behind npm pack",
"author": "npm Inc. <support@npmjs.com>",
"contributors": [
@@ -34,11 +34,11 @@
"bugs": "https://github.com/npm/libnpmpack/issues",
"homepage": "https://npmjs.com/package/libnpmpack",
"dependencies": {
- "@npmcli/run-script": "^1.8.3",
+ "@npmcli/run-script": "^2.0.0",
"npm-package-arg": "^8.1.0",
- "pacote": "^11.2.6"
+ "pacote": "^12.0.0"
},
"engines": {
- "node": ">=10"
+ "node": "^12.13.0 || ^14.15.0 || >=16"
}
}
diff --git a/deps/npm/node_modules/libnpmversion/package.json b/deps/npm/node_modules/libnpmversion/package.json
index 1ee2ee5995a..523f25f1d55 100644
--- a/deps/npm/node_modules/libnpmversion/package.json
+++ b/deps/npm/node_modules/libnpmversion/package.json
@@ -1,6 +1,6 @@
{
"name": "libnpmversion",
- "version": "1.2.1",
+ "version": "2.0.1",
"main": "lib/index.js",
"files": [
"lib/*.js"
@@ -38,9 +38,12 @@
},
"dependencies": {
"@npmcli/git": "^2.0.7",
- "@npmcli/run-script": "^1.8.4",
+ "@npmcli/run-script": "^2.0.0",
"json-parse-even-better-errors": "^2.3.1",
"semver": "^7.3.5",
"stringify-package": "^1.0.1"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16"
}
}
diff --git a/deps/npm/node_modules/mime-db/HISTORY.md b/deps/npm/node_modules/mime-db/HISTORY.md
deleted file mode 100644
index 672d414ca37..00000000000
--- a/deps/npm/node_modules/mime-db/HISTORY.md
+++ /dev/null
@@ -1,486 +0,0 @@
-1.49.0 / 2021-07-26
-===================
-
- * Add extension `.trig` to `application/trig`
- * Add new upstream MIME types
-
-1.48.0 / 2021-05-30
-===================
-
- * Add extension `.mvt` to `application/vnd.mapbox-vector-tile`
- * Add new upstream MIME types
- * Mark `text/yaml` as compressible
-
-1.47.0 / 2021-04-01
-===================
-
- * Add new upstream MIME types
- * Remove ambigious extensions from IANA for `application/*+xml` types
- * Update primary extension to `.es` for `application/ecmascript`
-
-1.46.0 / 2021-02-13
-===================
-
- * Add extension `.amr` to `audio/amr`
- * Add extension `.m4s` to `video/iso.segment`
- * Add extension `.opus` to `audio/ogg`
- * Add new upstream MIME types
-
-1.45.0 / 2020-09-22
-===================
-
- * Add `application/ubjson` with extension `.ubj`
- * Add `image/avif` with extension `.avif`
- * Add `image/ktx2` with extension `.ktx2`
- * Add extension `.dbf` to `application/vnd.dbf`
- * Add extension `.rar` to `application/vnd.rar`
- * Add extension `.td` to `application/urc-targetdesc+xml`
- * Add new upstream MIME types
- * Fix extension of `application/vnd.apple.keynote` to be `.key`
-
-1.44.0 / 2020-04-22
-===================
-
- * Add charsets from IANA
- * Add extension `.cjs` to `application/node`
- * Add new upstream MIME types
-
-1.43.0 / 2020-01-05
-===================
-
- * Add `application/x-keepass2` with extension `.kdbx`
- * Add extension `.mxmf` to `audio/mobile-xmf`
- * Add extensions from IANA for `application/*+xml` types
- * Add new upstream MIME types
-
-1.42.0 / 2019-09-25
-===================
-
- * Add `image/vnd.ms-dds` with extension `.dds`
- * Add new upstream MIME types
- * Remove compressible from `multipart/mixed`
-
-1.41.0 / 2019-08-30
-===================
-
- * Add new upstream MIME types
- * Add `application/toml` with extension `.toml`
- * Mark `font/ttf` as compressible
-
-1.40.0 / 2019-04-20
-===================
-
- * Add extensions from IANA for `model/*` types
- * Add `text/mdx` with extension `.mdx`
-
-1.39.0 / 2019-04-04
-===================
-
- * Add extensions `.siv` and `.sieve` to `application/sieve`
- * Add new upstream MIME types
-
-1.38.0 / 2019-02-04
-===================
-
- * Add extension `.nq` to `application/n-quads`
- * Add extension `.nt` to `application/n-triples`
- * Add new upstream MIME types
- * Mark `text/less` as compressible
-
-1.37.0 / 2018-10-19
-===================
-
- * Add extensions to HEIC image types
- * Add new upstream MIME types
-
-1.36.0 / 2018-08-20
-===================
-
- * Add Apple file extensions from IANA
- * Add extensions from IANA for `image/*` types
- * Add new upstream MIME types
-
-1.35.0 / 2018-07-15
-===================
-
- * Add extension `.owl` to `application/rdf+xml`
- * Add new upstream MIME types
- - Removes extension `.woff` from `application/font-woff`
-
-1.34.0 / 2018-06-03
-===================
-
- * Add extension `.csl` to `application/vnd.citationstyles.style+xml`
- * Add extension `.es` to `application/ecmascript`
- * Add new upstream MIME types
- * Add `UTF-8` as default charset for `text/turtle`
- * Mark all XML-derived types as compressible
-
-1.33.0 / 2018-02-15
-===================
-
- * Add extensions from IANA for `message/*` types
- * Add new upstream MIME types
- * Fix some incorrect OOXML types
- * Remove `application/font-woff2`
-
-1.32.0 / 2017-11-29
-===================
-
- * Add new upstream MIME types
- * Update `text/hjson` to registered `application/hjson`
- * Add `text/shex` with extension `.shex`
-
-1.31.0 / 2017-10-25
-===================
-
- * Add `application/raml+yaml` with extension `.raml`
- * Add `application/wasm` with extension `.wasm`
- * Add new `font` type from IANA
- * Add new upstream font extensions
- * Add new upstream MIME types
- * Add extensions for JPEG-2000 images
-
-1.30.0 / 2017-08-27
-===================
-
- * Add `application/vnd.ms-outlook`
- * Add `application/x-arj`
- * Add extension `.mjs` to `application/javascript`
- * Add glTF types and extensions
- * Add new upstream MIME types
- * Add `text/x-org`
- * Add VirtualBox MIME types
- * Fix `source` records for `video/*` types that are IANA
- * Update `font/opentype` to registered `font/otf`
-
-1.29.0 / 2017-07-10
-===================
-
- * Add `application/fido.trusted-apps+json`
- * Add extension `.wadl` to `application/vnd.sun.wadl+xml`
- * Add new upstream MIME types
- * Add `UTF-8` as default charset for `text/css`
-
-1.28.0 / 2017-05-14
-===================
-
- * Add new upstream MIME types
- * Add extension `.gz` to `application/gzip`
- * Update extensions `.md` and `.markdown` to be `text/markdown`
-
-1.27.0 / 2017-03-16
-===================
-
- * Add new upstream MIME types
- * Add `image/apng` with extension `.apng`
-
-1.26.0 / 2017-01-14
-===================
-
- * Add new upstream MIME types
- * Add extension `.geojson` to `application/geo+json`
-
-1.25.0 / 2016-11-11
-===================
-
- * Add new upstream MIME types
-
-1.24.0 / 2016-09-18
-===================
-
- * Add `audio/mp3`
- * Add new upstream MIME types
-
-1.23.0 / 2016-05-01
-===================
-
- * Add new upstream MIME types
- * Add extension `.3gpp` to `audio/3gpp`
-
-1.22.0 / 2016-02-15
-===================
-
- * Add `text/slim`
- * Add extension `.rng` to `application/xml`
- * Add new upstream MIME types
- * Fix extension of `application/dash+xml` to be `.mpd`
- * Update primary extension to `.m4a` for `audio/mp4`
-
-1.21.0 / 2016-01-06
-===================
-
- * Add Google document types
- * Add new upstream MIME types
-
-1.20.0 / 2015-11-10
-===================
-
- * Add `text/x-suse-ymp`
- * Add new upstream MIME types
-
-1.19.0 / 2015-09-17
-===================
-
- * Add `application/vnd.apple.pkpass`
- * Add new upstream MIME types
-
-1.18.0 / 2015-09-03
-===================
-
- * Add new upstream MIME types
-
-1.17.0 / 2015-08-13
-===================
-
- * Add `application/x-msdos-program`
- * Add `audio/g711-0`
- * Add `image/vnd.mozilla.apng`
- * Add extension `.exe` to `application/x-msdos-program`
-
-1.16.0 / 2015-07-29
-===================
-
- * Add `application/vnd.uri-map`
-
-1.15.0 / 2015-07-13
-===================
-
- * Add `application/x-httpd-php`
-
-1.14.0 / 2015-06-25
-===================
-
- * Add `application/scim+json`
- * Add `application/vnd.3gpp.ussd+xml`
- * Add `application/vnd.biopax.rdf+xml`
- * Add `text/x-processing`
-
-1.13.0 / 2015-06-07
-===================
-
- * Add nginx as a source
- * Add `application/x-cocoa`
- * Add `application/x-java-archive-diff`
- * Add `application/x-makeself`
- * Add `application/x-perl`
- * Add `application/x-pilot`
- * Add `application/x-redhat-package-manager`
- * Add `application/x-sea`
- * Add `audio/x-m4a`
- * Add `audio/x-realaudio`
- * Add `image/x-jng`
- * Add `text/mathml`
-
-1.12.0 / 2015-06-05
-===================
-
- * Add `application/bdoc`
- * Add `application/vnd.hyperdrive+json`
- * Add `application/x-bdoc`
- * Add extension `.rtf` to `text/rtf`
-
-1.11.0 / 2015-05-31
-===================
-
- * Add `audio/wav`
- * Add `audio/wave`
- * Add extension `.litcoffee` to `text/coffeescript`
- * Add extension `.sfd-hdstx` to `application/vnd.hydrostatix.sof-data`
- * Add extension `.n-gage` to `application/vnd.nokia.n-gage.symbian.install`
-
-1.10.0 / 2015-05-19
-===================
-
- * Add `application/vnd.balsamiq.bmpr`
- * Add `application/vnd.microsoft.portable-executable`
- * Add `application/x-ns-proxy-autoconfig`
-
-1.9.1 / 2015-04-19
-==================
-
- * Remove `.json` extension from `application/manifest+json`
- - This is causing bugs downstream
-
-1.9.0 / 2015-04-19
-==================
-
- * Add `application/manifest+json`
- * Add `application/vnd.micro+json`
- * Add `image/vnd.zbrush.pcx`
- * Add `image/x-ms-bmp`
-
-1.8.0 / 2015-03-13
-==================
-
- * Add `application/vnd.citationstyles.style+xml`
- * Add `application/vnd.fastcopy-disk-image`
- * Add `application/vnd.gov.sk.xmldatacontainer+xml`
- * Add extension `.jsonld` to `application/ld+json`
-
-1.7.0 / 2015-02-08
-==================
-
- * Add `application/vnd.gerber`
- * Add `application/vnd.msa-disk-image`
-
-1.6.1 / 2015-02-05
-==================
-
- * Community extensions ownership transferred from `node-mime`
-
-1.6.0 / 2015-01-29
-==================
-
- * Add `application/jose`
- * Add `application/jose+json`
- * Add `application/json-seq`
- * Add `application/jwk+json`
- * Add `application/jwk-set+json`
- * Add `application/jwt`
- * Add `application/rdap+json`
- * Add `application/vnd.gov.sk.e-form+xml`
- * Add `application/vnd.ims.imsccv1p3`
-
-1.5.0 / 2014-12-30
-==================
-
- * Add `application/vnd.oracle.resource+json`
- * Fix various invalid MIME type entries
- - `application/mbox+xml`
- - `application/oscp-response`
- - `application/vwg-multiplexed`
- - `audio/g721`
-
-1.4.0 / 2014-12-21
-==================
-
- * Add `application/vnd.ims.imsccv1p2`
- * Fix various invalid MIME type entries
- - `application/vnd-acucobol`
- - `application/vnd-curl`
- - `application/vnd-dart`
- - `application/vnd-dxr`
- - `application/vnd-fdf`
- - `application/vnd-mif`
- - `application/vnd-sema`
- - `application/vnd-wap-wmlc`
- - `application/vnd.adobe.flash-movie`
- - `application/vnd.dece-zip`
- - `application/vnd.dvb_service`
- - `application/vnd.micrografx-igx`
- - `application/vnd.sealed-doc`
- - `application/vnd.sealed-eml`
- - `application/vnd.sealed-mht`
- - `application/vnd.sealed-ppt`
- - `application/vnd.sealed-tiff`
- - `application/vnd.sealed-xls`
- - `application/vnd.sealedmedia.softseal-html`
- - `application/vnd.sealedmedia.softseal-pdf`
- - `application/vnd.wap-slc`
- - `application/vnd.wap-wbxml`
- - `audio/vnd.sealedmedia.softseal-mpeg`
- - `image/vnd-djvu`
- - `image/vnd-svf`
- - `image/vnd-wap-wbmp`
- - `image/vnd.sealed-png`
- - `image/vnd.sealedmedia.softseal-gif`
- - `image/vnd.sealedmedia.softseal-jpg`
- - `model/vnd-dwf`
- - `model/vnd.parasolid.transmit-binary`
- - `model/vnd.parasolid.transmit-text`
- - `text/vnd-a`
- - `text/vnd-curl`
- - `text/vnd.wap-wml`
- * Remove example template MIME types
- - `application/example`
- - `audio/example`
- - `image/example`
- - `message/example`
- - `model/example`
- - `multipart/example`
- - `text/example`
- - `video/example`
-
-1.3.1 / 2014-12-16
-==================
-
- * Fix missing extensions
- - `application/json5`
- - `text/hjson`
-
-1.3.0 / 2014-12-07
-==================
-
- * Add `application/a2l`
- * Add `application/aml`
- * Add `application/atfx`
- * Add `application/atxml`
- * Add `application/cdfx+xml`
- * Add `application/dii`
- * Add `application/json5`
- * Add `application/lxf`
- * Add `application/mf4`
- * Add `application/vnd.apache.thrift.compact`
- * Add `application/vnd.apache.thrift.json`
- * Add `application/vnd.coffeescript`
- * Add `application/vnd.enphase.envoy`
- * Add `application/vnd.ims.imsccv1p1`
- * Add `text/csv-schema`
- * Add `text/hjson`
- * Add `text/markdown`
- * Add `text/yaml`
-
-1.2.0 / 2014-11-09
-==================
-
- * Add `application/cea`
- * Add `application/dit`
- * Add `application/vnd.gov.sk.e-form+zip`
- * Add `application/vnd.tmd.mediaflex.api+xml`
- * Type `application/epub+zip` is now IANA-registered
-
-1.1.2 / 2014-10-23
-==================
-
- * Rebuild database for `application/x-www-form-urlencoded` change
-
-1.1.1 / 2014-10-20
-==================
-
- * Mark `application/x-www-form-urlencoded` as compressible.
-
-1.1.0 / 2014-09-28
-==================
-
- * Add `application/font-woff2`
-
-1.0.3 / 2014-09-25
-==================
-
- * Fix engine requirement in package
-
-1.0.2 / 2014-09-25
-==================
-
- * Add `application/coap-group+json`
- * Add `application/dcd`
- * Add `application/vnd.apache.thrift.binary`
- * Add `image/vnd.tencent.tap`
- * Mark all JSON-derived types as compressible
- * Update `text/vtt` data
-
-1.0.1 / 2014-08-30
-==================
-
- * Fix extension ordering
-
-1.0.0 / 2014-08-30
-==================
-
- * Add `application/atf`
- * Add `application/merge-patch+json`
- * Add `multipart/x-mixed-replace`
- * Add `source: 'apache'` metadata
- * Add `source: 'iana'` metadata
- * Remove badly-assumed charset data
diff --git a/deps/npm/node_modules/mime-db/LICENSE b/deps/npm/node_modules/mime-db/LICENSE
deleted file mode 100644
index a7ae8ee9b8a..00000000000
--- a/deps/npm/node_modules/mime-db/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-
-The MIT License (MIT)
-
-Copyright (c) 2014 Jonathan Ong me@jongleberry.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/deps/npm/node_modules/mime-db/db.json b/deps/npm/node_modules/mime-db/db.json
deleted file mode 100644
index 911b0f865b7..00000000000
--- a/deps/npm/node_modules/mime-db/db.json
+++ /dev/null
@@ -1,8417 +0,0 @@
-{
- "application/1d-interleaved-parityfec": {
- "source": "iana"
- },
- "application/3gpdash-qoe-report+xml": {
- "source": "iana",
- "charset": "UTF-8",
- "compressible": true
- },
- "application/3gpp-ims+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/3gpphal+json": {
- "source": "iana",
- "compressible": true
- },
- "application/3gpphalforms+json": {
- "source": "iana",
- "compressible": true
- },
- "application/a2l": {
- "source": "iana"
- },
- "application/activemessage": {
- "source": "iana"
- },
- "application/activity+json": {
- "source": "iana",
- "compressible": true
- },
- "application/alto-costmap+json": {
- "source": "iana",
- "compressible": true
- },
- "application/alto-costmapfilter+json": {
- "source": "iana",
- "compressible": true
- },
- "application/alto-directory+json": {
- "source": "iana",
- "compressible": true
- },
- "application/alto-endpointcost+json": {
- "source": "iana",
- "compressible": true
- },
- "application/alto-endpointcostparams+json": {
- "source": "iana",
- "compressible": true
- },
- "application/alto-endpointprop+json": {
- "source": "iana",
- "compressible": true
- },
- "application/alto-endpointpropparams+json": {
- "source": "iana",
- "compressible": true
- },
- "application/alto-error+json": {
- "source": "iana",
- "compressible": true
- },
- "application/alto-networkmap+json": {
- "source": "iana",
- "compressible": true
- },
- "application/alto-networkmapfilter+json": {
- "source": "iana",
- "compressible": true
- },
- "application/alto-updatestreamcontrol+json": {
- "source": "iana",
- "compressible": true
- },
- "application/alto-updatestreamparams+json": {
- "source": "iana",
- "compressible": true
- },
- "application/aml": {
- "source": "iana"
- },
- "application/andrew-inset": {
- "source": "iana",
- "extensions": ["ez"]
- },
- "application/applefile": {
- "source": "iana"
- },
- "application/applixware": {
- "source": "apache",
- "extensions": ["aw"]
- },
- "application/atf": {
- "source": "iana"
- },
- "application/atfx": {
- "source": "iana"
- },
- "application/atom+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["atom"]
- },
- "application/atomcat+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["atomcat"]
- },
- "application/atomdeleted+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["atomdeleted"]
- },
- "application/atomicmail": {
- "source": "iana"
- },
- "application/atomsvc+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["atomsvc"]
- },
- "application/atsc-dwd+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["dwd"]
- },
- "application/atsc-dynamic-event-message": {
- "source": "iana"
- },
- "application/atsc-held+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["held"]
- },
- "application/atsc-rdt+json": {
- "source": "iana",
- "compressible": true
- },
- "application/atsc-rsat+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["rsat"]
- },
- "application/atxml": {
- "source": "iana"
- },
- "application/auth-policy+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/bacnet-xdd+zip": {
- "source": "iana",
- "compressible": false
- },
- "application/batch-smtp": {
- "source": "iana"
- },
- "application/bdoc": {
- "compressible": false,
- "extensions": ["bdoc"]
- },
- "application/beep+xml": {
- "source": "iana",
- "charset": "UTF-8",
- "compressible": true
- },
- "application/calendar+json": {
- "source": "iana",
- "compressible": true
- },
- "application/calendar+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["xcs"]
- },
- "application/call-completion": {
- "source": "iana"
- },
- "application/cals-1840": {
- "source": "iana"
- },
- "application/captive+json": {
- "source": "iana",
- "compressible": true
- },
- "application/cbor": {
- "source": "iana"
- },
- "application/cbor-seq": {
- "source": "iana"
- },
- "application/cccex": {
- "source": "iana"
- },
- "application/ccmp+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/ccxml+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["ccxml"]
- },
- "application/cdfx+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["cdfx"]
- },
- "application/cdmi-capability": {
- "source": "iana",
- "extensions": ["cdmia"]
- },
- "application/cdmi-container": {
- "source": "iana",
- "extensions": ["cdmic"]
- },
- "application/cdmi-domain": {
- "source": "iana",
- "extensions": ["cdmid"]
- },
- "application/cdmi-object": {
- "source": "iana",
- "extensions": ["cdmio"]
- },
- "application/cdmi-queue": {
- "source": "iana",
- "extensions": ["cdmiq"]
- },
- "application/cdni": {
- "source": "iana"
- },
- "application/cea": {
- "source": "iana"
- },
- "application/cea-2018+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/cellml+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/cfw": {
- "source": "iana"
- },
- "application/clr": {
- "source": "iana"
- },
- "application/clue+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/clue_info+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/cms": {
- "source": "iana"
- },
- "application/cnrp+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/coap-group+json": {
- "source": "iana",
- "compressible": true
- },
- "application/coap-payload": {
- "source": "iana"
- },
- "application/commonground": {
- "source": "iana"
- },
- "application/conference-info+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/cose": {
- "source": "iana"
- },
- "application/cose-key": {
- "source": "iana"
- },
- "application/cose-key-set": {
- "source": "iana"
- },
- "application/cpl+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/csrattrs": {
- "source": "iana"
- },
- "application/csta+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/cstadata+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/csvm+json": {
- "source": "iana",
- "compressible": true
- },
- "application/cu-seeme": {
- "source": "apache",
- "extensions": ["cu"]
- },
- "application/cwt": {
- "source": "iana"
- },
- "application/cybercash": {
- "source": "iana"
- },
- "application/dart": {
- "compressible": true
- },
- "application/dash+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["mpd"]
- },
- "application/dashdelta": {
- "source": "iana"
- },
- "application/davmount+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["davmount"]
- },
- "application/dca-rft": {
- "source": "iana"
- },
- "application/dcd": {
- "source": "iana"
- },
- "application/dec-dx": {
- "source": "iana"
- },
- "application/dialog-info+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/dicom": {
- "source": "iana"
- },
- "application/dicom+json": {
- "source": "iana",
- "compressible": true
- },
- "application/dicom+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/dii": {
- "source": "iana"
- },
- "application/dit": {
- "source": "iana"
- },
- "application/dns": {
- "source": "iana"
- },
- "application/dns+json": {
- "source": "iana",
- "compressible": true
- },
- "application/dns-message": {
- "source": "iana"
- },
- "application/docbook+xml": {
- "source": "apache",
- "compressible": true,
- "extensions": ["dbk"]
- },
- "application/dots+cbor": {
- "source": "iana"
- },
- "application/dskpp+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/dssc+der": {
- "source": "iana",
- "extensions": ["dssc"]
- },
- "application/dssc+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["xdssc"]
- },
- "application/dvcs": {
- "source": "iana"
- },
- "application/ecmascript": {
- "source": "iana",
- "compressible": true,
- "extensions": ["es","ecma"]
- },
- "application/edi-consent": {
- "source": "iana"
- },
- "application/edi-x12": {
- "source": "iana",
- "compressible": false
- },
- "application/edifact": {
- "source": "iana",
- "compressible": false
- },
- "application/efi": {
- "source": "iana"
- },
- "application/elm+json": {
- "source": "iana",
- "charset": "UTF-8",
- "compressible": true
- },
- "application/elm+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/emergencycalldata.cap+xml": {
- "source": "iana",
- "charset": "UTF-8",
- "compressible": true
- },
- "application/emergencycalldata.comment+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/emergencycalldata.control+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/emergencycalldata.deviceinfo+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/emergencycalldata.ecall.msd": {
- "source": "iana"
- },
- "application/emergencycalldata.providerinfo+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/emergencycalldata.serviceinfo+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/emergencycalldata.subscriberinfo+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/emergencycalldata.veds+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/emma+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["emma"]
- },
- "application/emotionml+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["emotionml"]
- },
- "application/encaprtp": {
- "source": "iana"
- },
- "application/epp+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/epub+zip": {
- "source": "iana",
- "compressible": false,
- "extensions": ["epub"]
- },
- "application/eshop": {
- "source": "iana"
- },
- "application/exi": {
- "source": "iana",
- "extensions": ["exi"]
- },
- "application/expect-ct-report+json": {
- "source": "iana",
- "compressible": true
- },
- "application/fastinfoset": {
- "source": "iana"
- },
- "application/fastsoap": {
- "source": "iana"
- },
- "application/fdt+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["fdt"]
- },
- "application/fhir+json": {
- "source": "iana",
- "charset": "UTF-8",
- "compressible": true
- },
- "application/fhir+xml": {
- "source": "iana",
- "charset": "UTF-8",
- "compressible": true
- },
- "application/fido.trusted-apps+json": {
- "compressible": true
- },
- "application/fits": {
- "source": "iana"
- },
- "application/flexfec": {
- "source": "iana"
- },
- "application/font-sfnt": {
- "source": "iana"
- },
- "application/font-tdpfr": {
- "source": "iana",
- "extensions": ["pfr"]
- },
- "application/font-woff": {
- "source": "iana",
- "compressible": false
- },
- "application/framework-attributes+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/geo+json": {
- "source": "iana",
- "compressible": true,
- "extensions": ["geojson"]
- },
- "application/geo+json-seq": {
- "source": "iana"
- },
- "application/geopackage+sqlite3": {
- "source": "iana"
- },
- "application/geoxacml+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/gltf-buffer": {
- "source": "iana"
- },
- "application/gml+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["gml"]
- },
- "application/gpx+xml": {
- "source": "apache",
- "compressible": true,
- "extensions": ["gpx"]
- },
- "application/gxf": {
- "source": "apache",
- "extensions": ["gxf"]
- },
- "application/gzip": {
- "source": "iana",
- "compressible": false,
- "extensions": ["gz"]
- },
- "application/h224": {
- "source": "iana"
- },
- "application/held+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/hjson": {
- "extensions": ["hjson"]
- },
- "application/http": {
- "source": "iana"
- },
- "application/hyperstudio": {
- "source": "iana",
- "extensions": ["stk"]
- },
- "application/ibe-key-request+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/ibe-pkg-reply+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/ibe-pp-data": {
- "source": "iana"
- },
- "application/iges": {
- "source": "iana"
- },
- "application/im-iscomposing+xml": {
- "source": "iana",
- "charset": "UTF-8",
- "compressible": true
- },
- "application/index": {
- "source": "iana"
- },
- "application/index.cmd": {
- "source": "iana"
- },
- "application/index.obj": {
- "source": "iana"
- },
- "application/index.response": {
- "source": "iana"
- },
- "application/index.vnd": {
- "source": "iana"
- },
- "application/inkml+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["ink","inkml"]
- },
- "application/iotp": {
- "source": "iana"
- },
- "application/ipfix": {
- "source": "iana",
- "extensions": ["ipfix"]
- },
- "application/ipp": {
- "source": "iana"
- },
- "application/isup": {
- "source": "iana"
- },
- "application/its+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["its"]
- },
- "application/java-archive": {
- "source": "apache",
- "compressible": false,
- "extensions": ["jar","war","ear"]
- },
- "application/java-serialized-object": {
- "source": "apache",
- "compressible": false,
- "extensions": ["ser"]
- },
- "application/java-vm": {
- "source": "apache",
- "compressible": false,
- "extensions": ["class"]
- },
- "application/javascript": {
- "source": "iana",
- "charset": "UTF-8",
- "compressible": true,
- "extensions": ["js","mjs"]
- },
- "application/jf2feed+json": {
- "source": "iana",
- "compressible": true
- },
- "application/jose": {
- "source": "iana"
- },
- "application/jose+json": {
- "source": "iana",
- "compressible": true
- },
- "application/jrd+json": {
- "source": "iana",
- "compressible": true
- },
- "application/jscalendar+json": {
- "source": "iana",
- "compressible": true
- },
- "application/json": {
- "source": "iana",
- "charset": "UTF-8",
- "compressible": true,
- "extensions": ["json","map"]
- },
- "application/json-patch+json": {
- "source": "iana",
- "compressible": true
- },
- "application/json-seq": {
- "source": "iana"
- },
- "application/json5": {
- "extensions": ["json5"]
- },
- "application/jsonml+json": {
- "source": "apache",
- "compressible": true,
- "extensions": ["jsonml"]
- },
- "application/jwk+json": {
- "source": "iana",
- "compressible": true
- },
- "application/jwk-set+json": {
- "source": "iana",
- "compressible": true
- },
- "application/jwt": {
- "source": "iana"
- },
- "application/kpml-request+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/kpml-response+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/ld+json": {
- "source": "iana",
- "compressible": true,
- "extensions": ["jsonld"]
- },
- "application/lgr+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["lgr"]
- },
- "application/link-format": {
- "source": "iana"
- },
- "application/load-control+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/lost+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["lostxml"]
- },
- "application/lostsync+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/lpf+zip": {
- "source": "iana",
- "compressible": false
- },
- "application/lxf": {
- "source": "iana"
- },
- "application/mac-binhex40": {
- "source": "iana",
- "extensions": ["hqx"]
- },
- "application/mac-compactpro": {
- "source": "apache",
- "extensions": ["cpt"]
- },
- "application/macwriteii": {
- "source": "iana"
- },
- "application/mads+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["mads"]
- },
- "application/manifest+json": {
- "source": "iana",
- "charset": "UTF-8",
- "compressible": true,
- "extensions": ["webmanifest"]
- },
- "application/marc": {
- "source": "iana",
- "extensions": ["mrc"]
- },
- "application/marcxml+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["mrcx"]
- },
- "application/mathematica": {
- "source": "iana",
- "extensions": ["ma","nb","mb"]
- },
- "application/mathml+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["mathml"]
- },
- "application/mathml-content+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/mathml-presentation+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/mbms-associated-procedure-description+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/mbms-deregister+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/mbms-envelope+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/mbms-msk+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/mbms-msk-response+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/mbms-protection-description+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/mbms-reception-report+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/mbms-register+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/mbms-register-response+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/mbms-schedule+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/mbms-user-service-description+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/mbox": {
- "source": "iana",
- "extensions": ["mbox"]
- },
- "application/media-policy-dataset+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/media_control+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/mediaservercontrol+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["mscml"]
- },
- "application/merge-patch+json": {
- "source": "iana",
- "compressible": true
- },
- "application/metalink+xml": {
- "source": "apache",
- "compressible": true,
- "extensions": ["metalink"]
- },
- "application/metalink4+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["meta4"]
- },
- "application/mets+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["mets"]
- },
- "application/mf4": {
- "source": "iana"
- },
- "application/mikey": {
- "source": "iana"
- },
- "application/mipc": {
- "source": "iana"
- },
- "application/missing-blocks+cbor-seq": {
- "source": "iana"
- },
- "application/mmt-aei+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["maei"]
- },
- "application/mmt-usd+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["musd"]
- },
- "application/mods+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["mods"]
- },
- "application/moss-keys": {
- "source": "iana"
- },
- "application/moss-signature": {
- "source": "iana"
- },
- "application/mosskey-data": {
- "source": "iana"
- },
- "application/mosskey-request": {
- "source": "iana"
- },
- "application/mp21": {
- "source": "iana",
- "extensions": ["m21","mp21"]
- },
- "application/mp4": {
- "source": "iana",
- "extensions": ["mp4s","m4p"]
- },
- "application/mpeg4-generic": {
- "source": "iana"
- },
- "application/mpeg4-iod": {
- "source": "iana"
- },
- "application/mpeg4-iod-xmt": {
- "source": "iana"
- },
- "application/mrb-consumer+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/mrb-publish+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/msc-ivr+xml": {
- "source": "iana",
- "charset": "UTF-8",
- "compressible": true
- },
- "application/msc-mixer+xml": {
- "source": "iana",
- "charset": "UTF-8",
- "compressible": true
- },
- "application/msword": {
- "source": "iana",
- "compressible": false,
- "extensions": ["doc","dot"]
- },
- "application/mud+json": {
- "source": "iana",
- "compressible": true
- },
- "application/multipart-core": {
- "source": "iana"
- },
- "application/mxf": {
- "source": "iana",
- "extensions": ["mxf"]
- },
- "application/n-quads": {
- "source": "iana",
- "extensions": ["nq"]
- },
- "application/n-triples": {
- "source": "iana",
- "extensions": ["nt"]
- },
- "application/nasdata": {
- "source": "iana"
- },
- "application/news-checkgroups": {
- "source": "iana",
- "charset": "US-ASCII"
- },
- "application/news-groupinfo": {
- "source": "iana",
- "charset": "US-ASCII"
- },
- "application/news-transmission": {
- "source": "iana"
- },
- "application/nlsml+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/node": {
- "source": "iana",
- "extensions": ["cjs"]
- },
- "application/nss": {
- "source": "iana"
- },
- "application/oauth-authz-req+jwt": {
- "source": "iana"
- },
- "application/ocsp-request": {
- "source": "iana"
- },
- "application/ocsp-response": {
- "source": "iana"
- },
- "application/octet-stream": {
- "source": "iana",
- "compressible": false,
- "extensions": ["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]
- },
- "application/oda": {
- "source": "iana",
- "extensions": ["oda"]
- },
- "application/odm+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/odx": {
- "source": "iana"
- },
- "application/oebps-package+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["opf"]
- },
- "application/ogg": {
- "source": "iana",
- "compressible": false,
- "extensions": ["ogx"]
- },
- "application/omdoc+xml": {
- "source": "apache",
- "compressible": true,
- "extensions": ["omdoc"]
- },
- "application/onenote": {
- "source": "apache",
- "extensions": ["onetoc","onetoc2","onetmp","onepkg"]
- },
- "application/opc-nodeset+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/oscore": {
- "source": "iana"
- },
- "application/oxps": {
- "source": "iana",
- "extensions": ["oxps"]
- },
- "application/p21+zip": {
- "source": "iana",
- "compressible": false
- },
- "application/p2p-overlay+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["relo"]
- },
- "application/parityfec": {
- "source": "iana"
- },
- "application/passport": {
- "source": "iana"
- },
- "application/patch-ops-error+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["xer"]
- },
- "application/pdf": {
- "source": "iana",
- "compressible": false,
- "extensions": ["pdf"]
- },
- "application/pdx": {
- "source": "iana"
- },
- "application/pem-certificate-chain": {
- "source": "iana"
- },
- "application/pgp-encrypted": {
- "source": "iana",
- "compressible": false,
- "extensions": ["pgp"]
- },
- "application/pgp-keys": {
- "source": "iana"
- },
- "application/pgp-signature": {
- "source": "iana",
- "extensions": ["asc","sig"]
- },
- "application/pics-rules": {
- "source": "apache",
- "extensions": ["prf"]
- },
- "application/pidf+xml": {
- "source": "iana",
- "charset": "UTF-8",
- "compressible": true
- },
- "application/pidf-diff+xml": {
- "source": "iana",
- "charset": "UTF-8",
- "compressible": true
- },
- "application/pkcs10": {
- "source": "iana",
- "extensions": ["p10"]
- },
- "application/pkcs12": {
- "source": "iana"
- },
- "application/pkcs7-mime": {
- "source": "iana",
- "extensions": ["p7m","p7c"]
- },
- "application/pkcs7-signature": {
- "source": "iana",
- "extensions": ["p7s"]
- },
- "application/pkcs8": {
- "source": "iana",
- "extensions": ["p8"]
- },
- "application/pkcs8-encrypted": {
- "source": "iana"
- },
- "application/pkix-attr-cert": {
- "source": "iana",
- "extensions": ["ac"]
- },
- "application/pkix-cert": {
- "source": "iana",
- "extensions": ["cer"]
- },
- "application/pkix-crl": {
- "source": "iana",
- "extensions": ["crl"]
- },
- "application/pkix-pkipath": {
- "source": "iana",
- "extensions": ["pkipath"]
- },
- "application/pkixcmp": {
- "source": "iana",
- "extensions": ["pki"]
- },
- "application/pls+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["pls"]
- },
- "application/poc-settings+xml": {
- "source": "iana",
- "charset": "UTF-8",
- "compressible": true
- },
- "application/postscript": {
- "source": "iana",
- "compressible": true,
- "extensions": ["ai","eps","ps"]
- },
- "application/ppsp-tracker+json": {
- "source": "iana",
- "compressible": true
- },
- "application/problem+json": {
- "source": "iana",
- "compressible": true
- },
- "application/problem+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/provenance+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["provx"]
- },
- "application/prs.alvestrand.titrax-sheet": {
- "source": "iana"
- },
- "application/prs.cww": {
- "source": "iana",
- "extensions": ["cww"]
- },
- "application/prs.cyn": {
- "source": "iana",
- "charset": "7-BIT"
- },
- "application/prs.hpub+zip": {
- "source": "iana",
- "compressible": false
- },
- "application/prs.nprend": {
- "source": "iana"
- },
- "application/prs.plucker": {
- "source": "iana"
- },
- "application/prs.rdf-xml-crypt": {
- "source": "iana"
- },
- "application/prs.xsf+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/pskc+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["pskcxml"]
- },
- "application/pvd+json": {
- "source": "iana",
- "compressible": true
- },
- "application/qsig": {
- "source": "iana"
- },
- "application/raml+yaml": {
- "compressible": true,
- "extensions": ["raml"]
- },
- "application/raptorfec": {
- "source": "iana"
- },
- "application/rdap+json": {
- "source": "iana",
- "compressible": true
- },
- "application/rdf+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["rdf","owl"]
- },
- "application/reginfo+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["rif"]
- },
- "application/relax-ng-compact-syntax": {
- "source": "iana",
- "extensions": ["rnc"]
- },
- "application/remote-printing": {
- "source": "iana"
- },
- "application/reputon+json": {
- "source": "iana",
- "compressible": true
- },
- "application/resource-lists+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["rl"]
- },
- "application/resource-lists-diff+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["rld"]
- },
- "application/rfc+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/riscos": {
- "source": "iana"
- },
- "application/rlmi+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/rls-services+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["rs"]
- },
- "application/route-apd+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["rapd"]
- },
- "application/route-s-tsid+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["sls"]
- },
- "application/route-usd+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["rusd"]
- },
- "application/rpki-ghostbusters": {
- "source": "iana",
- "extensions": ["gbr"]
- },
- "application/rpki-manifest": {
- "source": "iana",
- "extensions": ["mft"]
- },
- "application/rpki-publication": {
- "source": "iana"
- },
- "application/rpki-roa": {
- "source": "iana",
- "extensions": ["roa"]
- },
- "application/rpki-updown": {
- "source": "iana"
- },
- "application/rsd+xml": {
- "source": "apache",
- "compressible": true,
- "extensions": ["rsd"]
- },
- "application/rss+xml": {
- "source": "apache",
- "compressible": true,
- "extensions": ["rss"]
- },
- "application/rtf": {
- "source": "iana",
- "compressible": true,
- "extensions": ["rtf"]
- },
- "application/rtploopback": {
- "source": "iana"
- },
- "application/rtx": {
- "source": "iana"
- },
- "application/samlassertion+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/samlmetadata+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/sarif+json": {
- "source": "iana",
- "compressible": true
- },
- "application/sarif-external-properties+json": {
- "source": "iana",
- "compressible": true
- },
- "application/sbe": {
- "source": "iana"
- },
- "application/sbml+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["sbml"]
- },
- "application/scaip+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/scim+json": {
- "source": "iana",
- "compressible": true
- },
- "application/scvp-cv-request": {
- "source": "iana",
- "extensions": ["scq"]
- },
- "application/scvp-cv-response": {
- "source": "iana",
- "extensions": ["scs"]
- },
- "application/scvp-vp-request": {
- "source": "iana",
- "extensions": ["spq"]
- },
- "application/scvp-vp-response": {
- "source": "iana",
- "extensions": ["spp"]
- },
- "application/sdp": {
- "source": "iana",
- "extensions": ["sdp"]
- },
- "application/secevent+jwt": {
- "source": "iana"
- },
- "application/senml+cbor": {
- "source": "iana"
- },
- "application/senml+json": {
- "source": "iana",
- "compressible": true
- },
- "application/senml+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["senmlx"]
- },
- "application/senml-etch+cbor": {
- "source": "iana"
- },
- "application/senml-etch+json": {
- "source": "iana",
- "compressible": true
- },
- "application/senml-exi": {
- "source": "iana"
- },
- "application/sensml+cbor": {
- "source": "iana"
- },
- "application/sensml+json": {
- "source": "iana",
- "compressible": true
- },
- "application/sensml+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["sensmlx"]
- },
- "application/sensml-exi": {
- "source": "iana"
- },
- "application/sep+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/sep-exi": {
- "source": "iana"
- },
- "application/session-info": {
- "source": "iana"
- },
- "application/set-payment": {
- "source": "iana"
- },
- "application/set-payment-initiation": {
- "source": "iana",
- "extensions": ["setpay"]
- },
- "application/set-registration": {
- "source": "iana"
- },
- "application/set-registration-initiation": {
- "source": "iana",
- "extensions": ["setreg"]
- },
- "application/sgml": {
- "source": "iana"
- },
- "application/sgml-open-catalog": {
- "source": "iana"
- },
- "application/shf+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["shf"]
- },
- "application/sieve": {
- "source": "iana",
- "extensions": ["siv","sieve"]
- },
- "application/simple-filter+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/simple-message-summary": {
- "source": "iana"
- },
- "application/simplesymbolcontainer": {
- "source": "iana"
- },
- "application/sipc": {
- "source": "iana"
- },
- "application/slate": {
- "source": "iana"
- },
- "application/smil": {
- "source": "iana"
- },
- "application/smil+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["smi","smil"]
- },
- "application/smpte336m": {
- "source": "iana"
- },
- "application/soap+fastinfoset": {
- "source": "iana"
- },
- "application/soap+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/sparql-query": {
- "source": "iana",
- "extensions": ["rq"]
- },
- "application/sparql-results+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["srx"]
- },
- "application/spirits-event+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/sql": {
- "source": "iana"
- },
- "application/srgs": {
- "source": "iana",
- "extensions": ["gram"]
- },
- "application/srgs+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["grxml"]
- },
- "application/sru+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["sru"]
- },
- "application/ssdl+xml": {
- "source": "apache",
- "compressible": true,
- "extensions": ["ssdl"]
- },
- "application/ssml+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["ssml"]
- },
- "application/stix+json": {
- "source": "iana",
- "compressible": true
- },
- "application/swid+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["swidtag"]
- },
- "application/tamp-apex-update": {
- "source": "iana"
- },
- "application/tamp-apex-update-confirm": {
- "source": "iana"
- },
- "application/tamp-community-update": {
- "source": "iana"
- },
- "application/tamp-community-update-confirm": {
- "source": "iana"
- },
- "application/tamp-error": {
- "source": "iana"
- },
- "application/tamp-sequence-adjust": {
- "source": "iana"
- },
- "application/tamp-sequence-adjust-confirm": {
- "source": "iana"
- },
- "application/tamp-status-query": {
- "source": "iana"
- },
- "application/tamp-status-response": {
- "source": "iana"
- },
- "application/tamp-update": {
- "source": "iana"
- },
- "application/tamp-update-confirm": {
- "source": "iana"
- },
- "application/tar": {
- "compressible": true
- },
- "application/taxii+json": {
- "source": "iana",
- "compressible": true
- },
- "application/td+json": {
- "source": "iana",
- "compressible": true
- },
- "application/tei+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["tei","teicorpus"]
- },
- "application/tetra_isi": {
- "source": "iana"
- },
- "application/thraud+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["tfi"]
- },
- "application/timestamp-query": {
- "source": "iana"
- },
- "application/timestamp-reply": {
- "source": "iana"
- },
- "application/timestamped-data": {
- "source": "iana",
- "extensions": ["tsd"]
- },
- "application/tlsrpt+gzip": {
- "source": "iana"
- },
- "application/tlsrpt+json": {
- "source": "iana",
- "compressible": true
- },
- "application/tnauthlist": {
- "source": "iana"
- },
- "application/toml": {
- "compressible": true,
- "extensions": ["toml"]
- },
- "application/trickle-ice-sdpfrag": {
- "source": "iana"
- },
- "application/trig": {
- "source": "iana",
- "extensions": ["trig"]
- },
- "application/ttml+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["ttml"]
- },
- "application/tve-trigger": {
- "source": "iana"
- },
- "application/tzif": {
- "source": "iana"
- },
- "application/tzif-leap": {
- "source": "iana"
- },
- "application/ubjson": {
- "compressible": false,
- "extensions": ["ubj"]
- },
- "application/ulpfec": {
- "source": "iana"
- },
- "application/urc-grpsheet+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/urc-ressheet+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["rsheet"]
- },
- "application/urc-targetdesc+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["td"]
- },
- "application/urc-uisocketdesc+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vcard+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vcard+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vemmi": {
- "source": "iana"
- },
- "application/vividence.scriptfile": {
- "source": "apache"
- },
- "application/vnd.1000minds.decision-model+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["1km"]
- },
- "application/vnd.3gpp-prose+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp-prose-pc3ch+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp-v2x-local-service-information": {
- "source": "iana"
- },
- "application/vnd.3gpp.5gnas": {
- "source": "iana"
- },
- "application/vnd.3gpp.access-transfer-events+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp.bsf+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp.gmop+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp.gtpc": {
- "source": "iana"
- },
- "application/vnd.3gpp.interworking-data": {
- "source": "iana"
- },
- "application/vnd.3gpp.lpp": {
- "source": "iana"
- },
- "application/vnd.3gpp.mc-signalling-ear": {
- "source": "iana"
- },
- "application/vnd.3gpp.mcdata-affiliation-command+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp.mcdata-info+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp.mcdata-payload": {
- "source": "iana"
- },
- "application/vnd.3gpp.mcdata-service-config+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp.mcdata-signalling": {
- "source": "iana"
- },
- "application/vnd.3gpp.mcdata-ue-config+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp.mcdata-user-profile+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp.mcptt-affiliation-command+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp.mcptt-floor-request+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp.mcptt-info+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp.mcptt-location-info+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp.mcptt-mbms-usage-info+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp.mcptt-service-config+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp.mcptt-signed+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp.mcptt-ue-config+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp.mcptt-ue-init-config+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp.mcptt-user-profile+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp.mcvideo-affiliation-command+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp.mcvideo-affiliation-info+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp.mcvideo-info+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp.mcvideo-location-info+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp.mcvideo-mbms-usage-info+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp.mcvideo-service-config+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp.mcvideo-transmission-request+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp.mcvideo-ue-config+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp.mcvideo-user-profile+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp.mid-call+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp.ngap": {
- "source": "iana"
- },
- "application/vnd.3gpp.pfcp": {
- "source": "iana"
- },
- "application/vnd.3gpp.pic-bw-large": {
- "source": "iana",
- "extensions": ["plb"]
- },
- "application/vnd.3gpp.pic-bw-small": {
- "source": "iana",
- "extensions": ["psb"]
- },
- "application/vnd.3gpp.pic-bw-var": {
- "source": "iana",
- "extensions": ["pvb"]
- },
- "application/vnd.3gpp.s1ap": {
- "source": "iana"
- },
- "application/vnd.3gpp.sms": {
- "source": "iana"
- },
- "application/vnd.3gpp.sms+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp.srvcc-ext+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp.srvcc-info+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp.state-and-event-info+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp.ussd+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp2.bcmcsinfo+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.3gpp2.sms": {
- "source": "iana"
- },
- "application/vnd.3gpp2.tcap": {
- "source": "iana",
- "extensions": ["tcap"]
- },
- "application/vnd.3lightssoftware.imagescal": {
- "source": "iana"
- },
- "application/vnd.3m.post-it-notes": {
- "source": "iana",
- "extensions": ["pwn"]
- },
- "application/vnd.accpac.simply.aso": {
- "source": "iana",
- "extensions": ["aso"]
- },
- "application/vnd.accpac.simply.imp": {
- "source": "iana",
- "extensions": ["imp"]
- },
- "application/vnd.acucobol": {
- "source": "iana",
- "extensions": ["acu"]
- },
- "application/vnd.acucorp": {
- "source": "iana",
- "extensions": ["atc","acutc"]
- },
- "application/vnd.adobe.air-application-installer-package+zip": {
- "source": "apache",
- "compressible": false,
- "extensions": ["air"]
- },
- "application/vnd.adobe.flash.movie": {
- "source": "iana"
- },
- "application/vnd.adobe.formscentral.fcdt": {
- "source": "iana",
- "extensions": ["fcdt"]
- },
- "application/vnd.adobe.fxp": {
- "source": "iana",
- "extensions": ["fxp","fxpl"]
- },
- "application/vnd.adobe.partial-upload": {
- "source": "iana"
- },
- "application/vnd.adobe.xdp+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["xdp"]
- },
- "application/vnd.adobe.xfdf": {
- "source": "iana",
- "extensions": ["xfdf"]
- },
- "application/vnd.aether.imp": {
- "source": "iana"
- },
- "application/vnd.afpc.afplinedata": {
- "source": "iana"
- },
- "application/vnd.afpc.afplinedata-pagedef": {
- "source": "iana"
- },
- "application/vnd.afpc.cmoca-cmresource": {
- "source": "iana"
- },
- "application/vnd.afpc.foca-charset": {
- "source": "iana"
- },
- "application/vnd.afpc.foca-codedfont": {
- "source": "iana"
- },
- "application/vnd.afpc.foca-codepage": {
- "source": "iana"
- },
- "application/vnd.afpc.modca": {
- "source": "iana"
- },
- "application/vnd.afpc.modca-cmtable": {
- "source": "iana"
- },
- "application/vnd.afpc.modca-formdef": {
- "source": "iana"
- },
- "application/vnd.afpc.modca-mediummap": {
- "source": "iana"
- },
- "application/vnd.afpc.modca-objectcontainer": {
- "source": "iana"
- },
- "application/vnd.afpc.modca-overlay": {
- "source": "iana"
- },
- "application/vnd.afpc.modca-pagesegment": {
- "source": "iana"
- },
- "application/vnd.ah-barcode": {
- "source": "iana"
- },
- "application/vnd.ahead.space": {
- "source": "iana",
- "extensions": ["ahead"]
- },
- "application/vnd.airzip.filesecure.azf": {
- "source": "iana",
- "extensions": ["azf"]
- },
- "application/vnd.airzip.filesecure.azs": {
- "source": "iana",
- "extensions": ["azs"]
- },
- "application/vnd.amadeus+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.amazon.ebook": {
- "source": "apache",
- "extensions": ["azw"]
- },
- "application/vnd.amazon.mobi8-ebook": {
- "source": "iana"
- },
- "application/vnd.americandynamics.acc": {
- "source": "iana",
- "extensions": ["acc"]
- },
- "application/vnd.amiga.ami": {
- "source": "iana",
- "extensions": ["ami"]
- },
- "application/vnd.amundsen.maze+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.android.ota": {
- "source": "iana"
- },
- "application/vnd.android.package-archive": {
- "source": "apache",
- "compressible": false,
- "extensions": ["apk"]
- },
- "application/vnd.anki": {
- "source": "iana"
- },
- "application/vnd.anser-web-certificate-issue-initiation": {
- "source": "iana",
- "extensions": ["cii"]
- },
- "application/vnd.anser-web-funds-transfer-initiation": {
- "source": "apache",
- "extensions": ["fti"]
- },
- "application/vnd.antix.game-component": {
- "source": "iana",
- "extensions": ["atx"]
- },
- "application/vnd.apache.arrow.file": {
- "source": "iana"
- },
- "application/vnd.apache.arrow.stream": {
- "source": "iana"
- },
- "application/vnd.apache.thrift.binary": {
- "source": "iana"
- },
- "application/vnd.apache.thrift.compact": {
- "source": "iana"
- },
- "application/vnd.apache.thrift.json": {
- "source": "iana"
- },
- "application/vnd.api+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.aplextor.warrp+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.apothekende.reservation+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.apple.installer+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["mpkg"]
- },
- "application/vnd.apple.keynote": {
- "source": "iana",
- "extensions": ["key"]
- },
- "application/vnd.apple.mpegurl": {
- "source": "iana",
- "extensions": ["m3u8"]
- },
- "application/vnd.apple.numbers": {
- "source": "iana",
- "extensions": ["numbers"]
- },
- "application/vnd.apple.pages": {
- "source": "iana",
- "extensions": ["pages"]
- },
- "application/vnd.apple.pkpass": {
- "compressible": false,
- "extensions": ["pkpass"]
- },
- "application/vnd.arastra.swi": {
- "source": "iana"
- },
- "application/vnd.aristanetworks.swi": {
- "source": "iana",
- "extensions": ["swi"]
- },
- "application/vnd.artisan+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.artsquare": {
- "source": "iana"
- },
- "application/vnd.astraea-software.iota": {
- "source": "iana",
- "extensions": ["iota"]
- },
- "application/vnd.audiograph": {
- "source": "iana",
- "extensions": ["aep"]
- },
- "application/vnd.autopackage": {
- "source": "iana"
- },
- "application/vnd.avalon+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.avistar+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.balsamiq.bmml+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["bmml"]
- },
- "application/vnd.balsamiq.bmpr": {
- "source": "iana"
- },
- "application/vnd.banana-accounting": {
- "source": "iana"
- },
- "application/vnd.bbf.usp.error": {
- "source": "iana"
- },
- "application/vnd.bbf.usp.msg": {
- "source": "iana"
- },
- "application/vnd.bbf.usp.msg+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.bekitzur-stech+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.bint.med-content": {
- "source": "iana"
- },
- "application/vnd.biopax.rdf+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.blink-idb-value-wrapper": {
- "source": "iana"
- },
- "application/vnd.blueice.multipass": {
- "source": "iana",
- "extensions": ["mpm"]
- },
- "application/vnd.bluetooth.ep.oob": {
- "source": "iana"
- },
- "application/vnd.bluetooth.le.oob": {
- "source": "iana"
- },
- "application/vnd.bmi": {
- "source": "iana",
- "extensions": ["bmi"]
- },
- "application/vnd.bpf": {
- "source": "iana"
- },
- "application/vnd.bpf3": {
- "source": "iana"
- },
- "application/vnd.businessobjects": {
- "source": "iana",
- "extensions": ["rep"]
- },
- "application/vnd.byu.uapi+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.cab-jscript": {
- "source": "iana"
- },
- "application/vnd.canon-cpdl": {
- "source": "iana"
- },
- "application/vnd.canon-lips": {
- "source": "iana"
- },
- "application/vnd.capasystems-pg+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.cendio.thinlinc.clientconf": {
- "source": "iana"
- },
- "application/vnd.century-systems.tcp_stream": {
- "source": "iana"
- },
- "application/vnd.chemdraw+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["cdxml"]
- },
- "application/vnd.chess-pgn": {
- "source": "iana"
- },
- "application/vnd.chipnuts.karaoke-mmd": {
- "source": "iana",
- "extensions": ["mmd"]
- },
- "application/vnd.ciedi": {
- "source": "iana"
- },
- "application/vnd.cinderella": {
- "source": "iana",
- "extensions": ["cdy"]
- },
- "application/vnd.cirpack.isdn-ext": {
- "source": "iana"
- },
- "application/vnd.citationstyles.style+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["csl"]
- },
- "application/vnd.claymore": {
- "source": "iana",
- "extensions": ["cla"]
- },
- "application/vnd.cloanto.rp9": {
- "source": "iana",
- "extensions": ["rp9"]
- },
- "application/vnd.clonk.c4group": {
- "source": "iana",
- "extensions": ["c4g","c4d","c4f","c4p","c4u"]
- },
- "application/vnd.cluetrust.cartomobile-config": {
- "source": "iana",
- "extensions": ["c11amc"]
- },
- "application/vnd.cluetrust.cartomobile-config-pkg": {
- "source": "iana",
- "extensions": ["c11amz"]
- },
- "application/vnd.coffeescript": {
- "source": "iana"
- },
- "application/vnd.collabio.xodocuments.document": {
- "source": "iana"
- },
- "application/vnd.collabio.xodocuments.document-template": {
- "source": "iana"
- },
- "application/vnd.collabio.xodocuments.presentation": {
- "source": "iana"
- },
- "application/vnd.collabio.xodocuments.presentation-template": {
- "source": "iana"
- },
- "application/vnd.collabio.xodocuments.spreadsheet": {
- "source": "iana"
- },
- "application/vnd.collabio.xodocuments.spreadsheet-template": {
- "source": "iana"
- },
- "application/vnd.collection+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.collection.doc+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.collection.next+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.comicbook+zip": {
- "source": "iana",
- "compressible": false
- },
- "application/vnd.comicbook-rar": {
- "source": "iana"
- },
- "application/vnd.commerce-battelle": {
- "source": "iana"
- },
- "application/vnd.commonspace": {
- "source": "iana",
- "extensions": ["csp"]
- },
- "application/vnd.contact.cmsg": {
- "source": "iana",
- "extensions": ["cdbcmsg"]
- },
- "application/vnd.coreos.ignition+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.cosmocaller": {
- "source": "iana",
- "extensions": ["cmc"]
- },
- "application/vnd.crick.clicker": {
- "source": "iana",
- "extensions": ["clkx"]
- },
- "application/vnd.crick.clicker.keyboard": {
- "source": "iana",
- "extensions": ["clkk"]
- },
- "application/vnd.crick.clicker.palette": {
- "source": "iana",
- "extensions": ["clkp"]
- },
- "application/vnd.crick.clicker.template": {
- "source": "iana",
- "extensions": ["clkt"]
- },
- "application/vnd.crick.clicker.wordbank": {
- "source": "iana",
- "extensions": ["clkw"]
- },
- "application/vnd.criticaltools.wbs+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["wbs"]
- },
- "application/vnd.cryptii.pipe+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.crypto-shade-file": {
- "source": "iana"
- },
- "application/vnd.cryptomator.encrypted": {
- "source": "iana"
- },
- "application/vnd.cryptomator.vault": {
- "source": "iana"
- },
- "application/vnd.ctc-posml": {
- "source": "iana",
- "extensions": ["pml"]
- },
- "application/vnd.ctct.ws+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.cups-pdf": {
- "source": "iana"
- },
- "application/vnd.cups-postscript": {
- "source": "iana"
- },
- "application/vnd.cups-ppd": {
- "source": "iana",
- "extensions": ["ppd"]
- },
- "application/vnd.cups-raster": {
- "source": "iana"
- },
- "application/vnd.cups-raw": {
- "source": "iana"
- },
- "application/vnd.curl": {
- "source": "iana"
- },
- "application/vnd.curl.car": {
- "source": "apache",
- "extensions": ["car"]
- },
- "application/vnd.curl.pcurl": {
- "source": "apache",
- "extensions": ["pcurl"]
- },
- "application/vnd.cyan.dean.root+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.cybank": {
- "source": "iana"
- },
- "application/vnd.cyclonedx+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.cyclonedx+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.d2l.coursepackage1p0+zip": {
- "source": "iana",
- "compressible": false
- },
- "application/vnd.d3m-dataset": {
- "source": "iana"
- },
- "application/vnd.d3m-problem": {
- "source": "iana"
- },
- "application/vnd.dart": {
- "source": "iana",
- "compressible": true,
- "extensions": ["dart"]
- },
- "application/vnd.data-vision.rdz": {
- "source": "iana",
- "extensions": ["rdz"]
- },
- "application/vnd.datapackage+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.dataresource+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.dbf": {
- "source": "iana",
- "extensions": ["dbf"]
- },
- "application/vnd.debian.binary-package": {
- "source": "iana"
- },
- "application/vnd.dece.data": {
- "source": "iana",
- "extensions": ["uvf","uvvf","uvd","uvvd"]
- },
- "application/vnd.dece.ttml+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["uvt","uvvt"]
- },
- "application/vnd.dece.unspecified": {
- "source": "iana",
- "extensions": ["uvx","uvvx"]
- },
- "application/vnd.dece.zip": {
- "source": "iana",
- "extensions": ["uvz","uvvz"]
- },
- "application/vnd.denovo.fcselayout-link": {
- "source": "iana",
- "extensions": ["fe_launch"]
- },
- "application/vnd.desmume.movie": {
- "source": "iana"
- },
- "application/vnd.dir-bi.plate-dl-nosuffix": {
- "source": "iana"
- },
- "application/vnd.dm.delegation+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.dna": {
- "source": "iana",
- "extensions": ["dna"]
- },
- "application/vnd.document+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.dolby.mlp": {
- "source": "apache",
- "extensions": ["mlp"]
- },
- "application/vnd.dolby.mobile.1": {
- "source": "iana"
- },
- "application/vnd.dolby.mobile.2": {
- "source": "iana"
- },
- "application/vnd.doremir.scorecloud-binary-document": {
- "source": "iana"
- },
- "application/vnd.dpgraph": {
- "source": "iana",
- "extensions": ["dpg"]
- },
- "application/vnd.dreamfactory": {
- "source": "iana",
- "extensions": ["dfac"]
- },
- "application/vnd.drive+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.ds-keypoint": {
- "source": "apache",
- "extensions": ["kpxx"]
- },
- "application/vnd.dtg.local": {
- "source": "iana"
- },
- "application/vnd.dtg.local.flash": {
- "source": "iana"
- },
- "application/vnd.dtg.local.html": {
- "source": "iana"
- },
- "application/vnd.dvb.ait": {
- "source": "iana",
- "extensions": ["ait"]
- },
- "application/vnd.dvb.dvbisl+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.dvb.dvbj": {
- "source": "iana"
- },
- "application/vnd.dvb.esgcontainer": {
- "source": "iana"
- },
- "application/vnd.dvb.ipdcdftnotifaccess": {
- "source": "iana"
- },
- "application/vnd.dvb.ipdcesgaccess": {
- "source": "iana"
- },
- "application/vnd.dvb.ipdcesgaccess2": {
- "source": "iana"
- },
- "application/vnd.dvb.ipdcesgpdd": {
- "source": "iana"
- },
- "application/vnd.dvb.ipdcroaming": {
- "source": "iana"
- },
- "application/vnd.dvb.iptv.alfec-base": {
- "source": "iana"
- },
- "application/vnd.dvb.iptv.alfec-enhancement": {
- "source": "iana"
- },
- "application/vnd.dvb.notif-aggregate-root+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.dvb.notif-container+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.dvb.notif-generic+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.dvb.notif-ia-msglist+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.dvb.notif-ia-registration-request+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.dvb.notif-ia-registration-response+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.dvb.notif-init+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.dvb.pfr": {
- "source": "iana"
- },
- "application/vnd.dvb.service": {
- "source": "iana",
- "extensions": ["svc"]
- },
- "application/vnd.dxr": {
- "source": "iana"
- },
- "application/vnd.dynageo": {
- "source": "iana",
- "extensions": ["geo"]
- },
- "application/vnd.dzr": {
- "source": "iana"
- },
- "application/vnd.easykaraoke.cdgdownload": {
- "source": "iana"
- },
- "application/vnd.ecdis-update": {
- "source": "iana"
- },
- "application/vnd.ecip.rlp": {
- "source": "iana"
- },
- "application/vnd.ecowin.chart": {
- "source": "iana",
- "extensions": ["mag"]
- },
- "application/vnd.ecowin.filerequest": {
- "source": "iana"
- },
- "application/vnd.ecowin.fileupdate": {
- "source": "iana"
- },
- "application/vnd.ecowin.series": {
- "source": "iana"
- },
- "application/vnd.ecowin.seriesrequest": {
- "source": "iana"
- },
- "application/vnd.ecowin.seriesupdate": {
- "source": "iana"
- },
- "application/vnd.efi.img": {
- "source": "iana"
- },
- "application/vnd.efi.iso": {
- "source": "iana"
- },
- "application/vnd.emclient.accessrequest+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.enliven": {
- "source": "iana",
- "extensions": ["nml"]
- },
- "application/vnd.enphase.envoy": {
- "source": "iana"
- },
- "application/vnd.eprints.data+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.epson.esf": {
- "source": "iana",
- "extensions": ["esf"]
- },
- "application/vnd.epson.msf": {
- "source": "iana",
- "extensions": ["msf"]
- },
- "application/vnd.epson.quickanime": {
- "source": "iana",
- "extensions": ["qam"]
- },
- "application/vnd.epson.salt": {
- "source": "iana",
- "extensions": ["slt"]
- },
- "application/vnd.epson.ssf": {
- "source": "iana",
- "extensions": ["ssf"]
- },
- "application/vnd.ericsson.quickcall": {
- "source": "iana"
- },
- "application/vnd.espass-espass+zip": {
- "source": "iana",
- "compressible": false
- },
- "application/vnd.eszigno3+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["es3","et3"]
- },
- "application/vnd.etsi.aoc+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.etsi.asic-e+zip": {
- "source": "iana",
- "compressible": false
- },
- "application/vnd.etsi.asic-s+zip": {
- "source": "iana",
- "compressible": false
- },
- "application/vnd.etsi.cug+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.etsi.iptvcommand+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.etsi.iptvdiscovery+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.etsi.iptvprofile+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.etsi.iptvsad-bc+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.etsi.iptvsad-cod+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.etsi.iptvsad-npvr+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.etsi.iptvservice+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.etsi.iptvsync+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.etsi.iptvueprofile+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.etsi.mcid+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.etsi.mheg5": {
- "source": "iana"
- },
- "application/vnd.etsi.overload-control-policy-dataset+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.etsi.pstn+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.etsi.sci+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.etsi.simservs+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.etsi.timestamp-token": {
- "source": "iana"
- },
- "application/vnd.etsi.tsl+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.etsi.tsl.der": {
- "source": "iana"
- },
- "application/vnd.eudora.data": {
- "source": "iana"
- },
- "application/vnd.evolv.ecig.profile": {
- "source": "iana"
- },
- "application/vnd.evolv.ecig.settings": {
- "source": "iana"
- },
- "application/vnd.evolv.ecig.theme": {
- "source": "iana"
- },
- "application/vnd.exstream-empower+zip": {
- "source": "iana",
- "compressible": false
- },
- "application/vnd.exstream-package": {
- "source": "iana"
- },
- "application/vnd.ezpix-album": {
- "source": "iana",
- "extensions": ["ez2"]
- },
- "application/vnd.ezpix-package": {
- "source": "iana",
- "extensions": ["ez3"]
- },
- "application/vnd.f-secure.mobile": {
- "source": "iana"
- },
- "application/vnd.fastcopy-disk-image": {
- "source": "iana"
- },
- "application/vnd.fdf": {
- "source": "iana",
- "extensions": ["fdf"]
- },
- "application/vnd.fdsn.mseed": {
- "source": "iana",
- "extensions": ["mseed"]
- },
- "application/vnd.fdsn.seed": {
- "source": "iana",
- "extensions": ["seed","dataless"]
- },
- "application/vnd.ffsns": {
- "source": "iana"
- },
- "application/vnd.ficlab.flb+zip": {
- "source": "iana",
- "compressible": false
- },
- "application/vnd.filmit.zfc": {
- "source": "iana"
- },
- "application/vnd.fints": {
- "source": "iana"
- },
- "application/vnd.firemonkeys.cloudcell": {
- "source": "iana"
- },
- "application/vnd.flographit": {
- "source": "iana",
- "extensions": ["gph"]
- },
- "application/vnd.fluxtime.clip": {
- "source": "iana",
- "extensions": ["ftc"]
- },
- "application/vnd.font-fontforge-sfd": {
- "source": "iana"
- },
- "application/vnd.framemaker": {
- "source": "iana",
- "extensions": ["fm","frame","maker","book"]
- },
- "application/vnd.frogans.fnc": {
- "source": "iana",
- "extensions": ["fnc"]
- },
- "application/vnd.frogans.ltf": {
- "source": "iana",
- "extensions": ["ltf"]
- },
- "application/vnd.fsc.weblaunch": {
- "source": "iana",
- "extensions": ["fsc"]
- },
- "application/vnd.fujifilm.fb.docuworks": {
- "source": "iana"
- },
- "application/vnd.fujifilm.fb.docuworks.binder": {
- "source": "iana"
- },
- "application/vnd.fujifilm.fb.docuworks.container": {
- "source": "iana"
- },
- "application/vnd.fujifilm.fb.jfi+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.fujitsu.oasys": {
- "source": "iana",
- "extensions": ["oas"]
- },
- "application/vnd.fujitsu.oasys2": {
- "source": "iana",
- "extensions": ["oa2"]
- },
- "application/vnd.fujitsu.oasys3": {
- "source": "iana",
- "extensions": ["oa3"]
- },
- "application/vnd.fujitsu.oasysgp": {
- "source": "iana",
- "extensions": ["fg5"]
- },
- "application/vnd.fujitsu.oasysprs": {
- "source": "iana",
- "extensions": ["bh2"]
- },
- "application/vnd.fujixerox.art-ex": {
- "source": "iana"
- },
- "application/vnd.fujixerox.art4": {
- "source": "iana"
- },
- "application/vnd.fujixerox.ddd": {
- "source": "iana",
- "extensions": ["ddd"]
- },
- "application/vnd.fujixerox.docuworks": {
- "source": "iana",
- "extensions": ["xdw"]
- },
- "application/vnd.fujixerox.docuworks.binder": {
- "source": "iana",
- "extensions": ["xbd"]
- },
- "application/vnd.fujixerox.docuworks.container": {
- "source": "iana"
- },
- "application/vnd.fujixerox.hbpl": {
- "source": "iana"
- },
- "application/vnd.fut-misnet": {
- "source": "iana"
- },
- "application/vnd.futoin+cbor": {
- "source": "iana"
- },
- "application/vnd.futoin+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.fuzzysheet": {
- "source": "iana",
- "extensions": ["fzs"]
- },
- "application/vnd.genomatix.tuxedo": {
- "source": "iana",
- "extensions": ["txd"]
- },
- "application/vnd.gentics.grd+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.geo+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.geocube+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.geogebra.file": {
- "source": "iana",
- "extensions": ["ggb"]
- },
- "application/vnd.geogebra.slides": {
- "source": "iana"
- },
- "application/vnd.geogebra.tool": {
- "source": "iana",
- "extensions": ["ggt"]
- },
- "application/vnd.geometry-explorer": {
- "source": "iana",
- "extensions": ["gex","gre"]
- },
- "application/vnd.geonext": {
- "source": "iana",
- "extensions": ["gxt"]
- },
- "application/vnd.geoplan": {
- "source": "iana",
- "extensions": ["g2w"]
- },
- "application/vnd.geospace": {
- "source": "iana",
- "extensions": ["g3w"]
- },
- "application/vnd.gerber": {
- "source": "iana"
- },
- "application/vnd.globalplatform.card-content-mgt": {
- "source": "iana"
- },
- "application/vnd.globalplatform.card-content-mgt-response": {
- "source": "iana"
- },
- "application/vnd.gmx": {
- "source": "iana",
- "extensions": ["gmx"]
- },
- "application/vnd.google-apps.document": {
- "compressible": false,
- "extensions": ["gdoc"]
- },
- "application/vnd.google-apps.presentation": {
- "compressible": false,
- "extensions": ["gslides"]
- },
- "application/vnd.google-apps.spreadsheet": {
- "compressible": false,
- "extensions": ["gsheet"]
- },
- "application/vnd.google-earth.kml+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["kml"]
- },
- "application/vnd.google-earth.kmz": {
- "source": "iana",
- "compressible": false,
- "extensions": ["kmz"]
- },
- "application/vnd.gov.sk.e-form+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.gov.sk.e-form+zip": {
- "source": "iana",
- "compressible": false
- },
- "application/vnd.gov.sk.xmldatacontainer+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.grafeq": {
- "source": "iana",
- "extensions": ["gqf","gqs"]
- },
- "application/vnd.gridmp": {
- "source": "iana"
- },
- "application/vnd.groove-account": {
- "source": "iana",
- "extensions": ["gac"]
- },
- "application/vnd.groove-help": {
- "source": "iana",
- "extensions": ["ghf"]
- },
- "application/vnd.groove-identity-message": {
- "source": "iana",
- "extensions": ["gim"]
- },
- "application/vnd.groove-injector": {
- "source": "iana",
- "extensions": ["grv"]
- },
- "application/vnd.groove-tool-message": {
- "source": "iana",
- "extensions": ["gtm"]
- },
- "application/vnd.groove-tool-template": {
- "source": "iana",
- "extensions": ["tpl"]
- },
- "application/vnd.groove-vcard": {
- "source": "iana",
- "extensions": ["vcg"]
- },
- "application/vnd.hal+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.hal+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["hal"]
- },
- "application/vnd.handheld-entertainment+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["zmm"]
- },
- "application/vnd.hbci": {
- "source": "iana",
- "extensions": ["hbci"]
- },
- "application/vnd.hc+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.hcl-bireports": {
- "source": "iana"
- },
- "application/vnd.hdt": {
- "source": "iana"
- },
- "application/vnd.heroku+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.hhe.lesson-player": {
- "source": "iana",
- "extensions": ["les"]
- },
- "application/vnd.hp-hpgl": {
- "source": "iana",
- "extensions": ["hpgl"]
- },
- "application/vnd.hp-hpid": {
- "source": "iana",
- "extensions": ["hpid"]
- },
- "application/vnd.hp-hps": {
- "source": "iana",
- "extensions": ["hps"]
- },
- "application/vnd.hp-jlyt": {
- "source": "iana",
- "extensions": ["jlt"]
- },
- "application/vnd.hp-pcl": {
- "source": "iana",
- "extensions": ["pcl"]
- },
- "application/vnd.hp-pclxl": {
- "source": "iana",
- "extensions": ["pclxl"]
- },
- "application/vnd.httphone": {
- "source": "iana"
- },
- "application/vnd.hydrostatix.sof-data": {
- "source": "iana",
- "extensions": ["sfd-hdstx"]
- },
- "application/vnd.hyper+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.hyper-item+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.hyperdrive+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.hzn-3d-crossword": {
- "source": "iana"
- },
- "application/vnd.ibm.afplinedata": {
- "source": "iana"
- },
- "application/vnd.ibm.electronic-media": {
- "source": "iana"
- },
- "application/vnd.ibm.minipay": {
- "source": "iana",
- "extensions": ["mpy"]
- },
- "application/vnd.ibm.modcap": {
- "source": "iana",
- "extensions": ["afp","listafp","list3820"]
- },
- "application/vnd.ibm.rights-management": {
- "source": "iana",
- "extensions": ["irm"]
- },
- "application/vnd.ibm.secure-container": {
- "source": "iana",
- "extensions": ["sc"]
- },
- "application/vnd.iccprofile": {
- "source": "iana",
- "extensions": ["icc","icm"]
- },
- "application/vnd.ieee.1905": {
- "source": "iana"
- },
- "application/vnd.igloader": {
- "source": "iana",
- "extensions": ["igl"]
- },
- "application/vnd.imagemeter.folder+zip": {
- "source": "iana",
- "compressible": false
- },
- "application/vnd.imagemeter.image+zip": {
- "source": "iana",
- "compressible": false
- },
- "application/vnd.immervision-ivp": {
- "source": "iana",
- "extensions": ["ivp"]
- },
- "application/vnd.immervision-ivu": {
- "source": "iana",
- "extensions": ["ivu"]
- },
- "application/vnd.ims.imsccv1p1": {
- "source": "iana"
- },
- "application/vnd.ims.imsccv1p2": {
- "source": "iana"
- },
- "application/vnd.ims.imsccv1p3": {
- "source": "iana"
- },
- "application/vnd.ims.lis.v2.result+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.ims.lti.v2.toolconsumerprofile+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.ims.lti.v2.toolproxy+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.ims.lti.v2.toolproxy.id+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.ims.lti.v2.toolsettings+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.ims.lti.v2.toolsettings.simple+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.informedcontrol.rms+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.informix-visionary": {
- "source": "iana"
- },
- "application/vnd.infotech.project": {
- "source": "iana"
- },
- "application/vnd.infotech.project+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.innopath.wamp.notification": {
- "source": "iana"
- },
- "application/vnd.insors.igm": {
- "source": "iana",
- "extensions": ["igm"]
- },
- "application/vnd.intercon.formnet": {
- "source": "iana",
- "extensions": ["xpw","xpx"]
- },
- "application/vnd.intergeo": {
- "source": "iana",
- "extensions": ["i2g"]
- },
- "application/vnd.intertrust.digibox": {
- "source": "iana"
- },
- "application/vnd.intertrust.nncp": {
- "source": "iana"
- },
- "application/vnd.intu.qbo": {
- "source": "iana",
- "extensions": ["qbo"]
- },
- "application/vnd.intu.qfx": {
- "source": "iana",
- "extensions": ["qfx"]
- },
- "application/vnd.iptc.g2.catalogitem+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.iptc.g2.conceptitem+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.iptc.g2.knowledgeitem+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.iptc.g2.newsitem+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.iptc.g2.newsmessage+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.iptc.g2.packageitem+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.iptc.g2.planningitem+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.ipunplugged.rcprofile": {
- "source": "iana",
- "extensions": ["rcprofile"]
- },
- "application/vnd.irepository.package+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["irp"]
- },
- "application/vnd.is-xpr": {
- "source": "iana",
- "extensions": ["xpr"]
- },
- "application/vnd.isac.fcs": {
- "source": "iana",
- "extensions": ["fcs"]
- },
- "application/vnd.iso11783-10+zip": {
- "source": "iana",
- "compressible": false
- },
- "application/vnd.jam": {
- "source": "iana",
- "extensions": ["jam"]
- },
- "application/vnd.japannet-directory-service": {
- "source": "iana"
- },
- "application/vnd.japannet-jpnstore-wakeup": {
- "source": "iana"
- },
- "application/vnd.japannet-payment-wakeup": {
- "source": "iana"
- },
- "application/vnd.japannet-registration": {
- "source": "iana"
- },
- "application/vnd.japannet-registration-wakeup": {
- "source": "iana"
- },
- "application/vnd.japannet-setstore-wakeup": {
- "source": "iana"
- },
- "application/vnd.japannet-verification": {
- "source": "iana"
- },
- "application/vnd.japannet-verification-wakeup": {
- "source": "iana"
- },
- "application/vnd.jcp.javame.midlet-rms": {
- "source": "iana",
- "extensions": ["rms"]
- },
- "application/vnd.jisp": {
- "source": "iana",
- "extensions": ["jisp"]
- },
- "application/vnd.joost.joda-archive": {
- "source": "iana",
- "extensions": ["joda"]
- },
- "application/vnd.jsk.isdn-ngn": {
- "source": "iana"
- },
- "application/vnd.kahootz": {
- "source": "iana",
- "extensions": ["ktz","ktr"]
- },
- "application/vnd.kde.karbon": {
- "source": "iana",
- "extensions": ["karbon"]
- },
- "application/vnd.kde.kchart": {
- "source": "iana",
- "extensions": ["chrt"]
- },
- "application/vnd.kde.kformula": {
- "source": "iana",
- "extensions": ["kfo"]
- },
- "application/vnd.kde.kivio": {
- "source": "iana",
- "extensions": ["flw"]
- },
- "application/vnd.kde.kontour": {
- "source": "iana",
- "extensions": ["kon"]
- },
- "application/vnd.kde.kpresenter": {
- "source": "iana",
- "extensions": ["kpr","kpt"]
- },
- "application/vnd.kde.kspread": {
- "source": "iana",
- "extensions": ["ksp"]
- },
- "application/vnd.kde.kword": {
- "source": "iana",
- "extensions": ["kwd","kwt"]
- },
- "application/vnd.kenameaapp": {
- "source": "iana",
- "extensions": ["htke"]
- },
- "application/vnd.kidspiration": {
- "source": "iana",
- "extensions": ["kia"]
- },
- "application/vnd.kinar": {
- "source": "iana",
- "extensions": ["kne","knp"]
- },
- "application/vnd.koan": {
- "source": "iana",
- "extensions": ["skp","skd","skt","skm"]
- },
- "application/vnd.kodak-descriptor": {
- "source": "iana",
- "extensions": ["sse"]
- },
- "application/vnd.las": {
- "source": "iana"
- },
- "application/vnd.las.las+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.las.las+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["lasxml"]
- },
- "application/vnd.laszip": {
- "source": "iana"
- },
- "application/vnd.leap+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.liberty-request+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.llamagraphics.life-balance.desktop": {
- "source": "iana",
- "extensions": ["lbd"]
- },
- "application/vnd.llamagraphics.life-balance.exchange+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["lbe"]
- },
- "application/vnd.logipipe.circuit+zip": {
- "source": "iana",
- "compressible": false
- },
- "application/vnd.loom": {
- "source": "iana"
- },
- "application/vnd.lotus-1-2-3": {
- "source": "iana",
- "extensions": ["123"]
- },
- "application/vnd.lotus-approach": {
- "source": "iana",
- "extensions": ["apr"]
- },
- "application/vnd.lotus-freelance": {
- "source": "iana",
- "extensions": ["pre"]
- },
- "application/vnd.lotus-notes": {
- "source": "iana",
- "extensions": ["nsf"]
- },
- "application/vnd.lotus-organizer": {
- "source": "iana",
- "extensions": ["org"]
- },
- "application/vnd.lotus-screencam": {
- "source": "iana",
- "extensions": ["scm"]
- },
- "application/vnd.lotus-wordpro": {
- "source": "iana",
- "extensions": ["lwp"]
- },
- "application/vnd.macports.portpkg": {
- "source": "iana",
- "extensions": ["portpkg"]
- },
- "application/vnd.mapbox-vector-tile": {
- "source": "iana",
- "extensions": ["mvt"]
- },
- "application/vnd.marlin.drm.actiontoken+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.marlin.drm.conftoken+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.marlin.drm.license+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.marlin.drm.mdcf": {
- "source": "iana"
- },
- "application/vnd.mason+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.maxmind.maxmind-db": {
- "source": "iana"
- },
- "application/vnd.mcd": {
- "source": "iana",
- "extensions": ["mcd"]
- },
- "application/vnd.medcalcdata": {
- "source": "iana",
- "extensions": ["mc1"]
- },
- "application/vnd.mediastation.cdkey": {
- "source": "iana",
- "extensions": ["cdkey"]
- },
- "application/vnd.meridian-slingshot": {
- "source": "iana"
- },
- "application/vnd.mfer": {
- "source": "iana",
- "extensions": ["mwf"]
- },
- "application/vnd.mfmp": {
- "source": "iana",
- "extensions": ["mfm"]
- },
- "application/vnd.micro+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.micrografx.flo": {
- "source": "iana",
- "extensions": ["flo"]
- },
- "application/vnd.micrografx.igx": {
- "source": "iana",
- "extensions": ["igx"]
- },
- "application/vnd.microsoft.portable-executable": {
- "source": "iana"
- },
- "application/vnd.microsoft.windows.thumbnail-cache": {
- "source": "iana"
- },
- "application/vnd.miele+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.mif": {
- "source": "iana",
- "extensions": ["mif"]
- },
- "application/vnd.minisoft-hp3000-save": {
- "source": "iana"
- },
- "application/vnd.mitsubishi.misty-guard.trustweb": {
- "source": "iana"
- },
- "application/vnd.mobius.daf": {
- "source": "iana",
- "extensions": ["daf"]
- },
- "application/vnd.mobius.dis": {
- "source": "iana",
- "extensions": ["dis"]
- },
- "application/vnd.mobius.mbk": {
- "source": "iana",
- "extensions": ["mbk"]
- },
- "application/vnd.mobius.mqy": {
- "source": "iana",
- "extensions": ["mqy"]
- },
- "application/vnd.mobius.msl": {
- "source": "iana",
- "extensions": ["msl"]
- },
- "application/vnd.mobius.plc": {
- "source": "iana",
- "extensions": ["plc"]
- },
- "application/vnd.mobius.txf": {
- "source": "iana",
- "extensions": ["txf"]
- },
- "application/vnd.mophun.application": {
- "source": "iana",
- "extensions": ["mpn"]
- },
- "application/vnd.mophun.certificate": {
- "source": "iana",
- "extensions": ["mpc"]
- },
- "application/vnd.motorola.flexsuite": {
- "source": "iana"
- },
- "application/vnd.motorola.flexsuite.adsi": {
- "source": "iana"
- },
- "application/vnd.motorola.flexsuite.fis": {
- "source": "iana"
- },
- "application/vnd.motorola.flexsuite.gotap": {
- "source": "iana"
- },
- "application/vnd.motorola.flexsuite.kmr": {
- "source": "iana"
- },
- "application/vnd.motorola.flexsuite.ttc": {
- "source": "iana"
- },
- "application/vnd.motorola.flexsuite.wem": {
- "source": "iana"
- },
- "application/vnd.motorola.iprm": {
- "source": "iana"
- },
- "application/vnd.mozilla.xul+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["xul"]
- },
- "application/vnd.ms-3mfdocument": {
- "source": "iana"
- },
- "application/vnd.ms-artgalry": {
- "source": "iana",
- "extensions": ["cil"]
- },
- "application/vnd.ms-asf": {
- "source": "iana"
- },
- "application/vnd.ms-cab-compressed": {
- "source": "iana",
- "extensions": ["cab"]
- },
- "application/vnd.ms-color.iccprofile": {
- "source": "apache"
- },
- "application/vnd.ms-excel": {
- "source": "iana",
- "compressible": false,
- "extensions": ["xls","xlm","xla","xlc","xlt","xlw"]
- },
- "application/vnd.ms-excel.addin.macroenabled.12": {
- "source": "iana",
- "extensions": ["xlam"]
- },
- "application/vnd.ms-excel.sheet.binary.macroenabled.12": {
- "source": "iana",
- "extensions": ["xlsb"]
- },
- "application/vnd.ms-excel.sheet.macroenabled.12": {
- "source": "iana",
- "extensions": ["xlsm"]
- },
- "application/vnd.ms-excel.template.macroenabled.12": {
- "source": "iana",
- "extensions": ["xltm"]
- },
- "application/vnd.ms-fontobject": {
- "source": "iana",
- "compressible": true,
- "extensions": ["eot"]
- },
- "application/vnd.ms-htmlhelp": {
- "source": "iana",
- "extensions": ["chm"]
- },
- "application/vnd.ms-ims": {
- "source": "iana",
- "extensions": ["ims"]
- },
- "application/vnd.ms-lrm": {
- "source": "iana",
- "extensions": ["lrm"]
- },
- "application/vnd.ms-office.activex+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.ms-officetheme": {
- "source": "iana",
- "extensions": ["thmx"]
- },
- "application/vnd.ms-opentype": {
- "source": "apache",
- "compressible": true
- },
- "application/vnd.ms-outlook": {
- "compressible": false,
- "extensions": ["msg"]
- },
- "application/vnd.ms-package.obfuscated-opentype": {
- "source": "apache"
- },
- "application/vnd.ms-pki.seccat": {
- "source": "apache",
- "extensions": ["cat"]
- },
- "application/vnd.ms-pki.stl": {
- "source": "apache",
- "extensions": ["stl"]
- },
- "application/vnd.ms-playready.initiator+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.ms-powerpoint": {
- "source": "iana",
- "compressible": false,
- "extensions": ["ppt","pps","pot"]
- },
- "application/vnd.ms-powerpoint.addin.macroenabled.12": {
- "source": "iana",
- "extensions": ["ppam"]
- },
- "application/vnd.ms-powerpoint.presentation.macroenabled.12": {
- "source": "iana",
- "extensions": ["pptm"]
- },
- "application/vnd.ms-powerpoint.slide.macroenabled.12": {
- "source": "iana",
- "extensions": ["sldm"]
- },
- "application/vnd.ms-powerpoint.slideshow.macroenabled.12": {
- "source": "iana",
- "extensions": ["ppsm"]
- },
- "application/vnd.ms-powerpoint.template.macroenabled.12": {
- "source": "iana",
- "extensions": ["potm"]
- },
- "application/vnd.ms-printdevicecapabilities+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.ms-printing.printticket+xml": {
- "source": "apache",
- "compressible": true
- },
- "application/vnd.ms-printschematicket+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.ms-project": {
- "source": "iana",
- "extensions": ["mpp","mpt"]
- },
- "application/vnd.ms-tnef": {
- "source": "iana"
- },
- "application/vnd.ms-windows.devicepairing": {
- "source": "iana"
- },
- "application/vnd.ms-windows.nwprinting.oob": {
- "source": "iana"
- },
- "application/vnd.ms-windows.printerpairing": {
- "source": "iana"
- },
- "application/vnd.ms-windows.wsd.oob": {
- "source": "iana"
- },
- "application/vnd.ms-wmdrm.lic-chlg-req": {
- "source": "iana"
- },
- "application/vnd.ms-wmdrm.lic-resp": {
- "source": "iana"
- },
- "application/vnd.ms-wmdrm.meter-chlg-req": {
- "source": "iana"
- },
- "application/vnd.ms-wmdrm.meter-resp": {
- "source": "iana"
- },
- "application/vnd.ms-word.document.macroenabled.12": {
- "source": "iana",
- "extensions": ["docm"]
- },
- "application/vnd.ms-word.template.macroenabled.12": {
- "source": "iana",
- "extensions": ["dotm"]
- },
- "application/vnd.ms-works": {
- "source": "iana",
- "extensions": ["wps","wks","wcm","wdb"]
- },
- "application/vnd.ms-wpl": {
- "source": "iana",
- "extensions": ["wpl"]
- },
- "application/vnd.ms-xpsdocument": {
- "source": "iana",
- "compressible": false,
- "extensions": ["xps"]
- },
- "application/vnd.msa-disk-image": {
- "source": "iana"
- },
- "application/vnd.mseq": {
- "source": "iana",
- "extensions": ["mseq"]
- },
- "application/vnd.msign": {
- "source": "iana"
- },
- "application/vnd.multiad.creator": {
- "source": "iana"
- },
- "application/vnd.multiad.creator.cif": {
- "source": "iana"
- },
- "application/vnd.music-niff": {
- "source": "iana"
- },
- "application/vnd.musician": {
- "source": "iana",
- "extensions": ["mus"]
- },
- "application/vnd.muvee.style": {
- "source": "iana",
- "extensions": ["msty"]
- },
- "application/vnd.mynfc": {
- "source": "iana",
- "extensions": ["taglet"]
- },
- "application/vnd.ncd.control": {
- "source": "iana"
- },
- "application/vnd.ncd.reference": {
- "source": "iana"
- },
- "application/vnd.nearst.inv+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.nebumind.line": {
- "source": "iana"
- },
- "application/vnd.nervana": {
- "source": "iana"
- },
- "application/vnd.netfpx": {
- "source": "iana"
- },
- "application/vnd.neurolanguage.nlu": {
- "source": "iana",
- "extensions": ["nlu"]
- },
- "application/vnd.nimn": {
- "source": "iana"
- },
- "application/vnd.nintendo.nitro.rom": {
- "source": "iana"
- },
- "application/vnd.nintendo.snes.rom": {
- "source": "iana"
- },
- "application/vnd.nitf": {
- "source": "iana",
- "extensions": ["ntf","nitf"]
- },
- "application/vnd.noblenet-directory": {
- "source": "iana",
- "extensions": ["nnd"]
- },
- "application/vnd.noblenet-sealer": {
- "source": "iana",
- "extensions": ["nns"]
- },
- "application/vnd.noblenet-web": {
- "source": "iana",
- "extensions": ["nnw"]
- },
- "application/vnd.nokia.catalogs": {
- "source": "iana"
- },
- "application/vnd.nokia.conml+wbxml": {
- "source": "iana"
- },
- "application/vnd.nokia.conml+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.nokia.iptv.config+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.nokia.isds-radio-presets": {
- "source": "iana"
- },
- "application/vnd.nokia.landmark+wbxml": {
- "source": "iana"
- },
- "application/vnd.nokia.landmark+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.nokia.landmarkcollection+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.nokia.n-gage.ac+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["ac"]
- },
- "application/vnd.nokia.n-gage.data": {
- "source": "iana",
- "extensions": ["ngdat"]
- },
- "application/vnd.nokia.n-gage.symbian.install": {
- "source": "iana",
- "extensions": ["n-gage"]
- },
- "application/vnd.nokia.ncd": {
- "source": "iana"
- },
- "application/vnd.nokia.pcd+wbxml": {
- "source": "iana"
- },
- "application/vnd.nokia.pcd+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.nokia.radio-preset": {
- "source": "iana",
- "extensions": ["rpst"]
- },
- "application/vnd.nokia.radio-presets": {
- "source": "iana",
- "extensions": ["rpss"]
- },
- "application/vnd.novadigm.edm": {
- "source": "iana",
- "extensions": ["edm"]
- },
- "application/vnd.novadigm.edx": {
- "source": "iana",
- "extensions": ["edx"]
- },
- "application/vnd.novadigm.ext": {
- "source": "iana",
- "extensions": ["ext"]
- },
- "application/vnd.ntt-local.content-share": {
- "source": "iana"
- },
- "application/vnd.ntt-local.file-transfer": {
- "source": "iana"
- },
- "application/vnd.ntt-local.ogw_remote-access": {
- "source": "iana"
- },
- "application/vnd.ntt-local.sip-ta_remote": {
- "source": "iana"
- },
- "application/vnd.ntt-local.sip-ta_tcp_stream": {
- "source": "iana"
- },
- "application/vnd.oasis.opendocument.chart": {
- "source": "iana",
- "extensions": ["odc"]
- },
- "application/vnd.oasis.opendocument.chart-template": {
- "source": "iana",
- "extensions": ["otc"]
- },
- "application/vnd.oasis.opendocument.database": {
- "source": "iana",
- "extensions": ["odb"]
- },
- "application/vnd.oasis.opendocument.formula": {
- "source": "iana",
- "extensions": ["odf"]
- },
- "application/vnd.oasis.opendocument.formula-template": {
- "source": "iana",
- "extensions": ["odft"]
- },
- "application/vnd.oasis.opendocument.graphics": {
- "source": "iana",
- "compressible": false,
- "extensions": ["odg"]
- },
- "application/vnd.oasis.opendocument.graphics-template": {
- "source": "iana",
- "extensions": ["otg"]
- },
- "application/vnd.oasis.opendocument.image": {
- "source": "iana",
- "extensions": ["odi"]
- },
- "application/vnd.oasis.opendocument.image-template": {
- "source": "iana",
- "extensions": ["oti"]
- },
- "application/vnd.oasis.opendocument.presentation": {
- "source": "iana",
- "compressible": false,
- "extensions": ["odp"]
- },
- "application/vnd.oasis.opendocument.presentation-template": {
- "source": "iana",
- "extensions": ["otp"]
- },
- "application/vnd.oasis.opendocument.spreadsheet": {
- "source": "iana",
- "compressible": false,
- "extensions": ["ods"]
- },
- "application/vnd.oasis.opendocument.spreadsheet-template": {
- "source": "iana",
- "extensions": ["ots"]
- },
- "application/vnd.oasis.opendocument.text": {
- "source": "iana",
- "compressible": false,
- "extensions": ["odt"]
- },
- "application/vnd.oasis.opendocument.text-master": {
- "source": "iana",
- "extensions": ["odm"]
- },
- "application/vnd.oasis.opendocument.text-template": {
- "source": "iana",
- "extensions": ["ott"]
- },
- "application/vnd.oasis.opendocument.text-web": {
- "source": "iana",
- "extensions": ["oth"]
- },
- "application/vnd.obn": {
- "source": "iana"
- },
- "application/vnd.ocf+cbor": {
- "source": "iana"
- },
- "application/vnd.oci.image.manifest.v1+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oftn.l10n+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oipf.contentaccessdownload+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oipf.contentaccessstreaming+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oipf.cspg-hexbinary": {
- "source": "iana"
- },
- "application/vnd.oipf.dae.svg+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oipf.dae.xhtml+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oipf.mippvcontrolmessage+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oipf.pae.gem": {
- "source": "iana"
- },
- "application/vnd.oipf.spdiscovery+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oipf.spdlist+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oipf.ueprofile+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oipf.userprofile+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.olpc-sugar": {
- "source": "iana",
- "extensions": ["xo"]
- },
- "application/vnd.oma-scws-config": {
- "source": "iana"
- },
- "application/vnd.oma-scws-http-request": {
- "source": "iana"
- },
- "application/vnd.oma-scws-http-response": {
- "source": "iana"
- },
- "application/vnd.oma.bcast.associated-procedure-parameter+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oma.bcast.drm-trigger+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oma.bcast.imd+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oma.bcast.ltkm": {
- "source": "iana"
- },
- "application/vnd.oma.bcast.notification+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oma.bcast.provisioningtrigger": {
- "source": "iana"
- },
- "application/vnd.oma.bcast.sgboot": {
- "source": "iana"
- },
- "application/vnd.oma.bcast.sgdd+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oma.bcast.sgdu": {
- "source": "iana"
- },
- "application/vnd.oma.bcast.simple-symbol-container": {
- "source": "iana"
- },
- "application/vnd.oma.bcast.smartcard-trigger+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oma.bcast.sprov+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oma.bcast.stkm": {
- "source": "iana"
- },
- "application/vnd.oma.cab-address-book+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oma.cab-feature-handler+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oma.cab-pcc+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oma.cab-subs-invite+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oma.cab-user-prefs+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oma.dcd": {
- "source": "iana"
- },
- "application/vnd.oma.dcdc": {
- "source": "iana"
- },
- "application/vnd.oma.dd2+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["dd2"]
- },
- "application/vnd.oma.drm.risd+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oma.group-usage-list+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oma.lwm2m+cbor": {
- "source": "iana"
- },
- "application/vnd.oma.lwm2m+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oma.lwm2m+tlv": {
- "source": "iana"
- },
- "application/vnd.oma.pal+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oma.poc.detailed-progress-report+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oma.poc.final-report+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oma.poc.groups+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oma.poc.invocation-descriptor+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oma.poc.optimized-progress-report+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oma.push": {
- "source": "iana"
- },
- "application/vnd.oma.scidm.messages+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oma.xcap-directory+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.omads-email+xml": {
- "source": "iana",
- "charset": "UTF-8",
- "compressible": true
- },
- "application/vnd.omads-file+xml": {
- "source": "iana",
- "charset": "UTF-8",
- "compressible": true
- },
- "application/vnd.omads-folder+xml": {
- "source": "iana",
- "charset": "UTF-8",
- "compressible": true
- },
- "application/vnd.omaloc-supl-init": {
- "source": "iana"
- },
- "application/vnd.onepager": {
- "source": "iana"
- },
- "application/vnd.onepagertamp": {
- "source": "iana"
- },
- "application/vnd.onepagertamx": {
- "source": "iana"
- },
- "application/vnd.onepagertat": {
- "source": "iana"
- },
- "application/vnd.onepagertatp": {
- "source": "iana"
- },
- "application/vnd.onepagertatx": {
- "source": "iana"
- },
- "application/vnd.openblox.game+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["obgx"]
- },
- "application/vnd.openblox.game-binary": {
- "source": "iana"
- },
- "application/vnd.openeye.oeb": {
- "source": "iana"
- },
- "application/vnd.openofficeorg.extension": {
- "source": "apache",
- "extensions": ["oxt"]
- },
- "application/vnd.openstreetmap.data+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["osm"]
- },
- "application/vnd.opentimestamps.ots": {
- "source": "iana"
- },
- "application/vnd.openxmlformats-officedocument.custom-properties+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.customxmlproperties+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.drawing+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.drawingml.chart+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.extended-properties+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.comments+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.presentation": {
- "source": "iana",
- "compressible": false,
- "extensions": ["pptx"]
- },
- "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.slide": {
- "source": "iana",
- "extensions": ["sldx"]
- },
- "application/vnd.openxmlformats-officedocument.presentationml.slide+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.slideshow": {
- "source": "iana",
- "extensions": ["ppsx"]
- },
- "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.tags+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.template": {
- "source": "iana",
- "extensions": ["potx"]
- },
- "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
- "source": "iana",
- "compressible": false,
- "extensions": ["xlsx"]
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.template": {
- "source": "iana",
- "extensions": ["xltx"]
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.theme+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.themeoverride+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.vmldrawing": {
- "source": "iana"
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.document": {
- "source": "iana",
- "compressible": false,
- "extensions": ["docx"]
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.template": {
- "source": "iana",
- "extensions": ["dotx"]
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-package.core-properties+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.openxmlformats-package.relationships+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oracle.resource+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.orange.indata": {
- "source": "iana"
- },
- "application/vnd.osa.netdeploy": {
- "source": "iana"
- },
- "application/vnd.osgeo.mapguide.package": {
- "source": "iana",
- "extensions": ["mgp"]
- },
- "application/vnd.osgi.bundle": {
- "source": "iana"
- },
- "application/vnd.osgi.dp": {
- "source": "iana",
- "extensions": ["dp"]
- },
- "application/vnd.osgi.subsystem": {
- "source": "iana",
- "extensions": ["esa"]
- },
- "application/vnd.otps.ct-kip+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.oxli.countgraph": {
- "source": "iana"
- },
- "application/vnd.pagerduty+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.palm": {
- "source": "iana",
- "extensions": ["pdb","pqa","oprc"]
- },
- "application/vnd.panoply": {
- "source": "iana"
- },
- "application/vnd.paos.xml": {
- "source": "iana"
- },
- "application/vnd.patentdive": {
- "source": "iana"
- },
- "application/vnd.patientecommsdoc": {
- "source": "iana"
- },
- "application/vnd.pawaafile": {
- "source": "iana",
- "extensions": ["paw"]
- },
- "application/vnd.pcos": {
- "source": "iana"
- },
- "application/vnd.pg.format": {
- "source": "iana",
- "extensions": ["str"]
- },
- "application/vnd.pg.osasli": {
- "source": "iana",
- "extensions": ["ei6"]
- },
- "application/vnd.piaccess.application-licence": {
- "source": "iana"
- },
- "application/vnd.picsel": {
- "source": "iana",
- "extensions": ["efif"]
- },
- "application/vnd.pmi.widget": {
- "source": "iana",
- "extensions": ["wg"]
- },
- "application/vnd.poc.group-advertisement+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.pocketlearn": {
- "source": "iana",
- "extensions": ["plf"]
- },
- "application/vnd.powerbuilder6": {
- "source": "iana",
- "extensions": ["pbd"]
- },
- "application/vnd.powerbuilder6-s": {
- "source": "iana"
- },
- "application/vnd.powerbuilder7": {
- "source": "iana"
- },
- "application/vnd.powerbuilder7-s": {
- "source": "iana"
- },
- "application/vnd.powerbuilder75": {
- "source": "iana"
- },
- "application/vnd.powerbuilder75-s": {
- "source": "iana"
- },
- "application/vnd.preminet": {
- "source": "iana"
- },
- "application/vnd.previewsystems.box": {
- "source": "iana",
- "extensions": ["box"]
- },
- "application/vnd.proteus.magazine": {
- "source": "iana",
- "extensions": ["mgz"]
- },
- "application/vnd.psfs": {
- "source": "iana"
- },
- "application/vnd.publishare-delta-tree": {
- "source": "iana",
- "extensions": ["qps"]
- },
- "application/vnd.pvi.ptid1": {
- "source": "iana",
- "extensions": ["ptid"]
- },
- "application/vnd.pwg-multiplexed": {
- "source": "iana"
- },
- "application/vnd.pwg-xhtml-print+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.qualcomm.brew-app-res": {
- "source": "iana"
- },
- "application/vnd.quarantainenet": {
- "source": "iana"
- },
- "application/vnd.quark.quarkxpress": {
- "source": "iana",
- "extensions": ["qxd","qxt","qwd","qwt","qxl","qxb"]
- },
- "application/vnd.quobject-quoxdocument": {
- "source": "iana"
- },
- "application/vnd.radisys.moml+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.radisys.msml+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.radisys.msml-audit+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.radisys.msml-audit-conf+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.radisys.msml-audit-conn+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.radisys.msml-audit-dialog+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.radisys.msml-audit-stream+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.radisys.msml-conf+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.radisys.msml-dialog+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.radisys.msml-dialog-base+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.radisys.msml-dialog-fax-detect+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.radisys.msml-dialog-fax-sendrecv+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.radisys.msml-dialog-group+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.radisys.msml-dialog-speech+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.radisys.msml-dialog-transform+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.rainstor.data": {
- "source": "iana"
- },
- "application/vnd.rapid": {
- "source": "iana"
- },
- "application/vnd.rar": {
- "source": "iana",
- "extensions": ["rar"]
- },
- "application/vnd.realvnc.bed": {
- "source": "iana",
- "extensions": ["bed"]
- },
- "application/vnd.recordare.musicxml": {
- "source": "iana",
- "extensions": ["mxl"]
- },
- "application/vnd.recordare.musicxml+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["musicxml"]
- },
- "application/vnd.renlearn.rlprint": {
- "source": "iana"
- },
- "application/vnd.resilient.logic": {
- "source": "iana"
- },
- "application/vnd.restful+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.rig.cryptonote": {
- "source": "iana",
- "extensions": ["cryptonote"]
- },
- "application/vnd.rim.cod": {
- "source": "apache",
- "extensions": ["cod"]
- },
- "application/vnd.rn-realmedia": {
- "source": "apache",
- "extensions": ["rm"]
- },
- "application/vnd.rn-realmedia-vbr": {
- "source": "apache",
- "extensions": ["rmvb"]
- },
- "application/vnd.route66.link66+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["link66"]
- },
- "application/vnd.rs-274x": {
- "source": "iana"
- },
- "application/vnd.ruckus.download": {
- "source": "iana"
- },
- "application/vnd.s3sms": {
- "source": "iana"
- },
- "application/vnd.sailingtracker.track": {
- "source": "iana",
- "extensions": ["st"]
- },
- "application/vnd.sar": {
- "source": "iana"
- },
- "application/vnd.sbm.cid": {
- "source": "iana"
- },
- "application/vnd.sbm.mid2": {
- "source": "iana"
- },
- "application/vnd.scribus": {
- "source": "iana"
- },
- "application/vnd.sealed.3df": {
- "source": "iana"
- },
- "application/vnd.sealed.csf": {
- "source": "iana"
- },
- "application/vnd.sealed.doc": {
- "source": "iana"
- },
- "application/vnd.sealed.eml": {
- "source": "iana"
- },
- "application/vnd.sealed.mht": {
- "source": "iana"
- },
- "application/vnd.sealed.net": {
- "source": "iana"
- },
- "application/vnd.sealed.ppt": {
- "source": "iana"
- },
- "application/vnd.sealed.tiff": {
- "source": "iana"
- },
- "application/vnd.sealed.xls": {
- "source": "iana"
- },
- "application/vnd.sealedmedia.softseal.html": {
- "source": "iana"
- },
- "application/vnd.sealedmedia.softseal.pdf": {
- "source": "iana"
- },
- "application/vnd.seemail": {
- "source": "iana",
- "extensions": ["see"]
- },
- "application/vnd.seis+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.sema": {
- "source": "iana",
- "extensions": ["sema"]
- },
- "application/vnd.semd": {
- "source": "iana",
- "extensions": ["semd"]
- },
- "application/vnd.semf": {
- "source": "iana",
- "extensions": ["semf"]
- },
- "application/vnd.shade-save-file": {
- "source": "iana"
- },
- "application/vnd.shana.informed.formdata": {
- "source": "iana",
- "extensions": ["ifm"]
- },
- "application/vnd.shana.informed.formtemplate": {
- "source": "iana",
- "extensions": ["itp"]
- },
- "application/vnd.shana.informed.interchange": {
- "source": "iana",
- "extensions": ["iif"]
- },
- "application/vnd.shana.informed.package": {
- "source": "iana",
- "extensions": ["ipk"]
- },
- "application/vnd.shootproof+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.shopkick+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.shp": {
- "source": "iana"
- },
- "application/vnd.shx": {
- "source": "iana"
- },
- "application/vnd.sigrok.session": {
- "source": "iana"
- },
- "application/vnd.simtech-mindmapper": {
- "source": "iana",
- "extensions": ["twd","twds"]
- },
- "application/vnd.siren+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.smaf": {
- "source": "iana",
- "extensions": ["mmf"]
- },
- "application/vnd.smart.notebook": {
- "source": "iana"
- },
- "application/vnd.smart.teacher": {
- "source": "iana",
- "extensions": ["teacher"]
- },
- "application/vnd.snesdev-page-table": {
- "source": "iana"
- },
- "application/vnd.software602.filler.form+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["fo"]
- },
- "application/vnd.software602.filler.form-xml-zip": {
- "source": "iana"
- },
- "application/vnd.solent.sdkm+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["sdkm","sdkd"]
- },
- "application/vnd.spotfire.dxp": {
- "source": "iana",
- "extensions": ["dxp"]
- },
- "application/vnd.spotfire.sfs": {
- "source": "iana",
- "extensions": ["sfs"]
- },
- "application/vnd.sqlite3": {
- "source": "iana"
- },
- "application/vnd.sss-cod": {
- "source": "iana"
- },
- "application/vnd.sss-dtf": {
- "source": "iana"
- },
- "application/vnd.sss-ntf": {
- "source": "iana"
- },
- "application/vnd.stardivision.calc": {
- "source": "apache",
- "extensions": ["sdc"]
- },
- "application/vnd.stardivision.draw": {
- "source": "apache",
- "extensions": ["sda"]
- },
- "application/vnd.stardivision.impress": {
- "source": "apache",
- "extensions": ["sdd"]
- },
- "application/vnd.stardivision.math": {
- "source": "apache",
- "extensions": ["smf"]
- },
- "application/vnd.stardivision.writer": {
- "source": "apache",
- "extensions": ["sdw","vor"]
- },
- "application/vnd.stardivision.writer-global": {
- "source": "apache",
- "extensions": ["sgl"]
- },
- "application/vnd.stepmania.package": {
- "source": "iana",
- "extensions": ["smzip"]
- },
- "application/vnd.stepmania.stepchart": {
- "source": "iana",
- "extensions": ["sm"]
- },
- "application/vnd.street-stream": {
- "source": "iana"
- },
- "application/vnd.sun.wadl+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["wadl"]
- },
- "application/vnd.sun.xml.calc": {
- "source": "apache",
- "extensions": ["sxc"]
- },
- "application/vnd.sun.xml.calc.template": {
- "source": "apache",
- "extensions": ["stc"]
- },
- "application/vnd.sun.xml.draw": {
- "source": "apache",
- "extensions": ["sxd"]
- },
- "application/vnd.sun.xml.draw.template": {
- "source": "apache",
- "extensions": ["std"]
- },
- "application/vnd.sun.xml.impress": {
- "source": "apache",
- "extensions": ["sxi"]
- },
- "application/vnd.sun.xml.impress.template": {
- "source": "apache",
- "extensions": ["sti"]
- },
- "application/vnd.sun.xml.math": {
- "source": "apache",
- "extensions": ["sxm"]
- },
- "application/vnd.sun.xml.writer": {
- "source": "apache",
- "extensions": ["sxw"]
- },
- "application/vnd.sun.xml.writer.global": {
- "source": "apache",
- "extensions": ["sxg"]
- },
- "application/vnd.sun.xml.writer.template": {
- "source": "apache",
- "extensions": ["stw"]
- },
- "application/vnd.sus-calendar": {
- "source": "iana",
- "extensions": ["sus","susp"]
- },
- "application/vnd.svd": {
- "source": "iana",
- "extensions": ["svd"]
- },
- "application/vnd.swiftview-ics": {
- "source": "iana"
- },
- "application/vnd.sycle+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.symbian.install": {
- "source": "apache",
- "extensions": ["sis","sisx"]
- },
- "application/vnd.syncml+xml": {
- "source": "iana",
- "charset": "UTF-8",
- "compressible": true,
- "extensions": ["xsm"]
- },
- "application/vnd.syncml.dm+wbxml": {
- "source": "iana",
- "charset": "UTF-8",
- "extensions": ["bdm"]
- },
- "application/vnd.syncml.dm+xml": {
- "source": "iana",
- "charset": "UTF-8",
- "compressible": true,
- "extensions": ["xdm"]
- },
- "application/vnd.syncml.dm.notification": {
- "source": "iana"
- },
- "application/vnd.syncml.dmddf+wbxml": {
- "source": "iana"
- },
- "application/vnd.syncml.dmddf+xml": {
- "source": "iana",
- "charset": "UTF-8",
- "compressible": true,
- "extensions": ["ddf"]
- },
- "application/vnd.syncml.dmtnds+wbxml": {
- "source": "iana"
- },
- "application/vnd.syncml.dmtnds+xml": {
- "source": "iana",
- "charset": "UTF-8",
- "compressible": true
- },
- "application/vnd.syncml.ds.notification": {
- "source": "iana"
- },
- "application/vnd.tableschema+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.tao.intent-module-archive": {
- "source": "iana",
- "extensions": ["tao"]
- },
- "application/vnd.tcpdump.pcap": {
- "source": "iana",
- "extensions": ["pcap","cap","dmp"]
- },
- "application/vnd.think-cell.ppttc+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.tmd.mediaflex.api+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.tml": {
- "source": "iana"
- },
- "application/vnd.tmobile-livetv": {
- "source": "iana",
- "extensions": ["tmo"]
- },
- "application/vnd.tri.onesource": {
- "source": "iana"
- },
- "application/vnd.trid.tpt": {
- "source": "iana",
- "extensions": ["tpt"]
- },
- "application/vnd.triscape.mxs": {
- "source": "iana",
- "extensions": ["mxs"]
- },
- "application/vnd.trueapp": {
- "source": "iana",
- "extensions": ["tra"]
- },
- "application/vnd.truedoc": {
- "source": "iana"
- },
- "application/vnd.ubisoft.webplayer": {
- "source": "iana"
- },
- "application/vnd.ufdl": {
- "source": "iana",
- "extensions": ["ufd","ufdl"]
- },
- "application/vnd.uiq.theme": {
- "source": "iana",
- "extensions": ["utz"]
- },
- "application/vnd.umajin": {
- "source": "iana",
- "extensions": ["umj"]
- },
- "application/vnd.unity": {
- "source": "iana",
- "extensions": ["unityweb"]
- },
- "application/vnd.uoml+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["uoml"]
- },
- "application/vnd.uplanet.alert": {
- "source": "iana"
- },
- "application/vnd.uplanet.alert-wbxml": {
- "source": "iana"
- },
- "application/vnd.uplanet.bearer-choice": {
- "source": "iana"
- },
- "application/vnd.uplanet.bearer-choice-wbxml": {
- "source": "iana"
- },
- "application/vnd.uplanet.cacheop": {
- "source": "iana"
- },
- "application/vnd.uplanet.cacheop-wbxml": {
- "source": "iana"
- },
- "application/vnd.uplanet.channel": {
- "source": "iana"
- },
- "application/vnd.uplanet.channel-wbxml": {
- "source": "iana"
- },
- "application/vnd.uplanet.list": {
- "source": "iana"
- },
- "application/vnd.uplanet.list-wbxml": {
- "source": "iana"
- },
- "application/vnd.uplanet.listcmd": {
- "source": "iana"
- },
- "application/vnd.uplanet.listcmd-wbxml": {
- "source": "iana"
- },
- "application/vnd.uplanet.signal": {
- "source": "iana"
- },
- "application/vnd.uri-map": {
- "source": "iana"
- },
- "application/vnd.valve.source.material": {
- "source": "iana"
- },
- "application/vnd.vcx": {
- "source": "iana",
- "extensions": ["vcx"]
- },
- "application/vnd.vd-study": {
- "source": "iana"
- },
- "application/vnd.vectorworks": {
- "source": "iana"
- },
- "application/vnd.vel+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.verimatrix.vcas": {
- "source": "iana"
- },
- "application/vnd.veritone.aion+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.veryant.thin": {
- "source": "iana"
- },
- "application/vnd.ves.encrypted": {
- "source": "iana"
- },
- "application/vnd.vidsoft.vidconference": {
- "source": "iana"
- },
- "application/vnd.visio": {
- "source": "iana",
- "extensions": ["vsd","vst","vss","vsw"]
- },
- "application/vnd.visionary": {
- "source": "iana",
- "extensions": ["vis"]
- },
- "application/vnd.vividence.scriptfile": {
- "source": "iana"
- },
- "application/vnd.vsf": {
- "source": "iana",
- "extensions": ["vsf"]
- },
- "application/vnd.wap.sic": {
- "source": "iana"
- },
- "application/vnd.wap.slc": {
- "source": "iana"
- },
- "application/vnd.wap.wbxml": {
- "source": "iana",
- "charset": "UTF-8",
- "extensions": ["wbxml"]
- },
- "application/vnd.wap.wmlc": {
- "source": "iana",
- "extensions": ["wmlc"]
- },
- "application/vnd.wap.wmlscriptc": {
- "source": "iana",
- "extensions": ["wmlsc"]
- },
- "application/vnd.webturbo": {
- "source": "iana",
- "extensions": ["wtb"]
- },
- "application/vnd.wfa.dpp": {
- "source": "iana"
- },
- "application/vnd.wfa.p2p": {
- "source": "iana"
- },
- "application/vnd.wfa.wsc": {
- "source": "iana"
- },
- "application/vnd.windows.devicepairing": {
- "source": "iana"
- },
- "application/vnd.wmc": {
- "source": "iana"
- },
- "application/vnd.wmf.bootstrap": {
- "source": "iana"
- },
- "application/vnd.wolfram.mathematica": {
- "source": "iana"
- },
- "application/vnd.wolfram.mathematica.package": {
- "source": "iana"
- },
- "application/vnd.wolfram.player": {
- "source": "iana",
- "extensions": ["nbp"]
- },
- "application/vnd.wordperfect": {
- "source": "iana",
- "extensions": ["wpd"]
- },
- "application/vnd.wqd": {
- "source": "iana",
- "extensions": ["wqd"]
- },
- "application/vnd.wrq-hp3000-labelled": {
- "source": "iana"
- },
- "application/vnd.wt.stf": {
- "source": "iana",
- "extensions": ["stf"]
- },
- "application/vnd.wv.csp+wbxml": {
- "source": "iana"
- },
- "application/vnd.wv.csp+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.wv.ssp+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.xacml+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.xara": {
- "source": "iana",
- "extensions": ["xar"]
- },
- "application/vnd.xfdl": {
- "source": "iana",
- "extensions": ["xfdl"]
- },
- "application/vnd.xfdl.webform": {
- "source": "iana"
- },
- "application/vnd.xmi+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/vnd.xmpie.cpkg": {
- "source": "iana"
- },
- "application/vnd.xmpie.dpkg": {
- "source": "iana"
- },
- "application/vnd.xmpie.plan": {
- "source": "iana"
- },
- "application/vnd.xmpie.ppkg": {
- "source": "iana"
- },
- "application/vnd.xmpie.xlim": {
- "source": "iana"
- },
- "application/vnd.yamaha.hv-dic": {
- "source": "iana",
- "extensions": ["hvd"]
- },
- "application/vnd.yamaha.hv-script": {
- "source": "iana",
- "extensions": ["hvs"]
- },
- "application/vnd.yamaha.hv-voice": {
- "source": "iana",
- "extensions": ["hvp"]
- },
- "application/vnd.yamaha.openscoreformat": {
- "source": "iana",
- "extensions": ["osf"]
- },
- "application/vnd.yamaha.openscoreformat.osfpvg+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["osfpvg"]
- },
- "application/vnd.yamaha.remote-setup": {
- "source": "iana"
- },
- "application/vnd.yamaha.smaf-audio": {
- "source": "iana",
- "extensions": ["saf"]
- },
- "application/vnd.yamaha.smaf-phrase": {
- "source": "iana",
- "extensions": ["spf"]
- },
- "application/vnd.yamaha.through-ngn": {
- "source": "iana"
- },
- "application/vnd.yamaha.tunnel-udpencap": {
- "source": "iana"
- },
- "application/vnd.yaoweme": {
- "source": "iana"
- },
- "application/vnd.yellowriver-custom-menu": {
- "source": "iana",
- "extensions": ["cmp"]
- },
- "application/vnd.youtube.yt": {
- "source": "iana"
- },
- "application/vnd.zul": {
- "source": "iana",
- "extensions": ["zir","zirz"]
- },
- "application/vnd.zzazz.deck+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["zaz"]
- },
- "application/voicexml+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["vxml"]
- },
- "application/voucher-cms+json": {
- "source": "iana",
- "compressible": true
- },
- "application/vq-rtcpxr": {
- "source": "iana"
- },
- "application/wasm": {
- "source": "iana",
- "compressible": true,
- "extensions": ["wasm"]
- },
- "application/watcherinfo+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/webpush-options+json": {
- "source": "iana",
- "compressible": true
- },
- "application/whoispp-query": {
- "source": "iana"
- },
- "application/whoispp-response": {
- "source": "iana"
- },
- "application/widget": {
- "source": "iana",
- "extensions": ["wgt"]
- },
- "application/winhlp": {
- "source": "apache",
- "extensions": ["hlp"]
- },
- "application/wita": {
- "source": "iana"
- },
- "application/wordperfect5.1": {
- "source": "iana"
- },
- "application/wsdl+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["wsdl"]
- },
- "application/wspolicy+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["wspolicy"]
- },
- "application/x-7z-compressed": {
- "source": "apache",
- "compressible": false,
- "extensions": ["7z"]
- },
- "application/x-abiword": {
- "source": "apache",
- "extensions": ["abw"]
- },
- "application/x-ace-compressed": {
- "source": "apache",
- "extensions": ["ace"]
- },
- "application/x-amf": {
- "source": "apache"
- },
- "application/x-apple-diskimage": {
- "source": "apache",
- "extensions": ["dmg"]
- },
- "application/x-arj": {
- "compressible": false,
- "extensions": ["arj"]
- },
- "application/x-authorware-bin": {
- "source": "apache",
- "extensions": ["aab","x32","u32","vox"]
- },
- "application/x-authorware-map": {
- "source": "apache",
- "extensions": ["aam"]
- },
- "application/x-authorware-seg": {
- "source": "apache",
- "extensions": ["aas"]
- },
- "application/x-bcpio": {
- "source": "apache",
- "extensions": ["bcpio"]
- },
- "application/x-bdoc": {
- "compressible": false,
- "extensions": ["bdoc"]
- },
- "application/x-bittorrent": {
- "source": "apache",
- "extensions": ["torrent"]
- },
- "application/x-blorb": {
- "source": "apache",
- "extensions": ["blb","blorb"]
- },
- "application/x-bzip": {
- "source": "apache",
- "compressible": false,
- "extensions": ["bz"]
- },
- "application/x-bzip2": {
- "source": "apache",
- "compressible": false,
- "extensions": ["bz2","boz"]
- },
- "application/x-cbr": {
- "source": "apache",
- "extensions": ["cbr","cba","cbt","cbz","cb7"]
- },
- "application/x-cdlink": {
- "source": "apache",
- "extensions": ["vcd"]
- },
- "application/x-cfs-compressed": {
- "source": "apache",
- "extensions": ["cfs"]
- },
- "application/x-chat": {
- "source": "apache",
- "extensions": ["chat"]
- },
- "application/x-chess-pgn": {
- "source": "apache",
- "extensions": ["pgn"]
- },
- "application/x-chrome-extension": {
- "extensions": ["crx"]
- },
- "application/x-cocoa": {
- "source": "nginx",
- "extensions": ["cco"]
- },
- "application/x-compress": {
- "source": "apache"
- },
- "application/x-conference": {
- "source": "apache",
- "extensions": ["nsc"]
- },
- "application/x-cpio": {
- "source": "apache",
- "extensions": ["cpio"]
- },
- "application/x-csh": {
- "source": "apache",
- "extensions": ["csh"]
- },
- "application/x-deb": {
- "compressible": false
- },
- "application/x-debian-package": {
- "source": "apache",
- "extensions": ["deb","udeb"]
- },
- "application/x-dgc-compressed": {
- "source": "apache",
- "extensions": ["dgc"]
- },
- "application/x-director": {
- "source": "apache",
- "extensions": ["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]
- },
- "application/x-doom": {
- "source": "apache",
- "extensions": ["wad"]
- },
- "application/x-dtbncx+xml": {
- "source": "apache",
- "compressible": true,
- "extensions": ["ncx"]
- },
- "application/x-dtbook+xml": {
- "source": "apache",
- "compressible": true,
- "extensions": ["dtb"]
- },
- "application/x-dtbresource+xml": {
- "source": "apache",
- "compressible": true,
- "extensions": ["res"]
- },
- "application/x-dvi": {
- "source": "apache",
- "compressible": false,
- "extensions": ["dvi"]
- },
- "application/x-envoy": {
- "source": "apache",
- "extensions": ["evy"]
- },
- "application/x-eva": {
- "source": "apache",
- "extensions": ["eva"]
- },
- "application/x-font-bdf": {
- "source": "apache",
- "extensions": ["bdf"]
- },
- "application/x-font-dos": {
- "source": "apache"
- },
- "application/x-font-framemaker": {
- "source": "apache"
- },
- "application/x-font-ghostscript": {
- "source": "apache",
- "extensions": ["gsf"]
- },
- "application/x-font-libgrx": {
- "source": "apache"
- },
- "application/x-font-linux-psf": {
- "source": "apache",
- "extensions": ["psf"]
- },
- "application/x-font-pcf": {
- "source": "apache",
- "extensions": ["pcf"]
- },
- "application/x-font-snf": {
- "source": "apache",
- "extensions": ["snf"]
- },
- "application/x-font-speedo": {
- "source": "apache"
- },
- "application/x-font-sunos-news": {
- "source": "apache"
- },
- "application/x-font-type1": {
- "source": "apache",
- "extensions": ["pfa","pfb","pfm","afm"]
- },
- "application/x-font-vfont": {
- "source": "apache"
- },
- "application/x-freearc": {
- "source": "apache",
- "extensions": ["arc"]
- },
- "application/x-futuresplash": {
- "source": "apache",
- "extensions": ["spl"]
- },
- "application/x-gca-compressed": {
- "source": "apache",
- "extensions": ["gca"]
- },
- "application/x-glulx": {
- "source": "apache",
- "extensions": ["ulx"]
- },
- "application/x-gnumeric": {
- "source": "apache",
- "extensions": ["gnumeric"]
- },
- "application/x-gramps-xml": {
- "source": "apache",
- "extensions": ["gramps"]
- },
- "application/x-gtar": {
- "source": "apache",
- "extensions": ["gtar"]
- },
- "application/x-gzip": {
- "source": "apache"
- },
- "application/x-hdf": {
- "source": "apache",
- "extensions": ["hdf"]
- },
- "application/x-httpd-php": {
- "compressible": true,
- "extensions": ["php"]
- },
- "application/x-install-instructions": {
- "source": "apache",
- "extensions": ["install"]
- },
- "application/x-iso9660-image": {
- "source": "apache",
- "extensions": ["iso"]
- },
- "application/x-java-archive-diff": {
- "source": "nginx",
- "extensions": ["jardiff"]
- },
- "application/x-java-jnlp-file": {
- "source": "apache",
- "compressible": false,
- "extensions": ["jnlp"]
- },
- "application/x-javascript": {
- "compressible": true
- },
- "application/x-keepass2": {
- "extensions": ["kdbx"]
- },
- "application/x-latex": {
- "source": "apache",
- "compressible": false,
- "extensions": ["latex"]
- },
- "application/x-lua-bytecode": {
- "extensions": ["luac"]
- },
- "application/x-lzh-compressed": {
- "source": "apache",
- "extensions": ["lzh","lha"]
- },
- "application/x-makeself": {
- "source": "nginx",
- "extensions": ["run"]
- },
- "application/x-mie": {
- "source": "apache",
- "extensions": ["mie"]
- },
- "application/x-mobipocket-ebook": {
- "source": "apache",
- "extensions": ["prc","mobi"]
- },
- "application/x-mpegurl": {
- "compressible": false
- },
- "application/x-ms-application": {
- "source": "apache",
- "extensions": ["application"]
- },
- "application/x-ms-shortcut": {
- "source": "apache",
- "extensions": ["lnk"]
- },
- "application/x-ms-wmd": {
- "source": "apache",
- "extensions": ["wmd"]
- },
- "application/x-ms-wmz": {
- "source": "apache",
- "extensions": ["wmz"]
- },
- "application/x-ms-xbap": {
- "source": "apache",
- "extensions": ["xbap"]
- },
- "application/x-msaccess": {
- "source": "apache",
- "extensions": ["mdb"]
- },
- "application/x-msbinder": {
- "source": "apache",
- "extensions": ["obd"]
- },
- "application/x-mscardfile": {
- "source": "apache",
- "extensions": ["crd"]
- },
- "application/x-msclip": {
- "source": "apache",
- "extensions": ["clp"]
- },
- "application/x-msdos-program": {
- "extensions": ["exe"]
- },
- "application/x-msdownload": {
- "source": "apache",
- "extensions": ["exe","dll","com","bat","msi"]
- },
- "application/x-msmediaview": {
- "source": "apache",
- "extensions": ["mvb","m13","m14"]
- },
- "application/x-msmetafile": {
- "source": "apache",
- "extensions": ["wmf","wmz","emf","emz"]
- },
- "application/x-msmoney": {
- "source": "apache",
- "extensions": ["mny"]
- },
- "application/x-mspublisher": {
- "source": "apache",
- "extensions": ["pub"]
- },
- "application/x-msschedule": {
- "source": "apache",
- "extensions": ["scd"]
- },
- "application/x-msterminal": {
- "source": "apache",
- "extensions": ["trm"]
- },
- "application/x-mswrite": {
- "source": "apache",
- "extensions": ["wri"]
- },
- "application/x-netcdf": {
- "source": "apache",
- "extensions": ["nc","cdf"]
- },
- "application/x-ns-proxy-autoconfig": {
- "compressible": true,
- "extensions": ["pac"]
- },
- "application/x-nzb": {
- "source": "apache",
- "extensions": ["nzb"]
- },
- "application/x-perl": {
- "source": "nginx",
- "extensions": ["pl","pm"]
- },
- "application/x-pilot": {
- "source": "nginx",
- "extensions": ["prc","pdb"]
- },
- "application/x-pkcs12": {
- "source": "apache",
- "compressible": false,
- "extensions": ["p12","pfx"]
- },
- "application/x-pkcs7-certificates": {
- "source": "apache",
- "extensions": ["p7b","spc"]
- },
- "application/x-pkcs7-certreqresp": {
- "source": "apache",
- "extensions": ["p7r"]
- },
- "application/x-pki-message": {
- "source": "iana"
- },
- "application/x-rar-compressed": {
- "source": "apache",
- "compressible": false,
- "extensions": ["rar"]
- },
- "application/x-redhat-package-manager": {
- "source": "nginx",
- "extensions": ["rpm"]
- },
- "application/x-research-info-systems": {
- "source": "apache",
- "extensions": ["ris"]
- },
- "application/x-sea": {
- "source": "nginx",
- "extensions": ["sea"]
- },
- "application/x-sh": {
- "source": "apache",
- "compressible": true,
- "extensions": ["sh"]
- },
- "application/x-shar": {
- "source": "apache",
- "extensions": ["shar"]
- },
- "application/x-shockwave-flash": {
- "source": "apache",
- "compressible": false,
- "extensions": ["swf"]
- },
- "application/x-silverlight-app": {
- "source": "apache",
- "extensions": ["xap"]
- },
- "application/x-sql": {
- "source": "apache",
- "extensions": ["sql"]
- },
- "application/x-stuffit": {
- "source": "apache",
- "compressible": false,
- "extensions": ["sit"]
- },
- "application/x-stuffitx": {
- "source": "apache",
- "extensions": ["sitx"]
- },
- "application/x-subrip": {
- "source": "apache",
- "extensions": ["srt"]
- },
- "application/x-sv4cpio": {
- "source": "apache",
- "extensions": ["sv4cpio"]
- },
- "application/x-sv4crc": {
- "source": "apache",
- "extensions": ["sv4crc"]
- },
- "application/x-t3vm-image": {
- "source": "apache",
- "extensions": ["t3"]
- },
- "application/x-tads": {
- "source": "apache",
- "extensions": ["gam"]
- },
- "application/x-tar": {
- "source": "apache",
- "compressible": true,
- "extensions": ["tar"]
- },
- "application/x-tcl": {
- "source": "apache",
- "extensions": ["tcl","tk"]
- },
- "application/x-tex": {
- "source": "apache",
- "extensions": ["tex"]
- },
- "application/x-tex-tfm": {
- "source": "apache",
- "extensions": ["tfm"]
- },
- "application/x-texinfo": {
- "source": "apache",
- "extensions": ["texinfo","texi"]
- },
- "application/x-tgif": {
- "source": "apache",
- "extensions": ["obj"]
- },
- "application/x-ustar": {
- "source": "apache",
- "extensions": ["ustar"]
- },
- "application/x-virtualbox-hdd": {
- "compressible": true,
- "extensions": ["hdd"]
- },
- "application/x-virtualbox-ova": {
- "compressible": true,
- "extensions": ["ova"]
- },
- "application/x-virtualbox-ovf": {
- "compressible": true,
- "extensions": ["ovf"]
- },
- "application/x-virtualbox-vbox": {
- "compressible": true,
- "extensions": ["vbox"]
- },
- "application/x-virtualbox-vbox-extpack": {
- "compressible": false,
- "extensions": ["vbox-extpack"]
- },
- "application/x-virtualbox-vdi": {
- "compressible": true,
- "extensions": ["vdi"]
- },
- "application/x-virtualbox-vhd": {
- "compressible": true,
- "extensions": ["vhd"]
- },
- "application/x-virtualbox-vmdk": {
- "compressible": true,
- "extensions": ["vmdk"]
- },
- "application/x-wais-source": {
- "source": "apache",
- "extensions": ["src"]
- },
- "application/x-web-app-manifest+json": {
- "compressible": true,
- "extensions": ["webapp"]
- },
- "application/x-www-form-urlencoded": {
- "source": "iana",
- "compressible": true
- },
- "application/x-x509-ca-cert": {
- "source": "iana",
- "extensions": ["der","crt","pem"]
- },
- "application/x-x509-ca-ra-cert": {
- "source": "iana"
- },
- "application/x-x509-next-ca-cert": {
- "source": "iana"
- },
- "application/x-xfig": {
- "source": "apache",
- "extensions": ["fig"]
- },
- "application/x-xliff+xml": {
- "source": "apache",
- "compressible": true,
- "extensions": ["xlf"]
- },
- "application/x-xpinstall": {
- "source": "apache",
- "compressible": false,
- "extensions": ["xpi"]
- },
- "application/x-xz": {
- "source": "apache",
- "extensions": ["xz"]
- },
- "application/x-zmachine": {
- "source": "apache",
- "extensions": ["z1","z2","z3","z4","z5","z6","z7","z8"]
- },
- "application/x400-bp": {
- "source": "iana"
- },
- "application/xacml+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/xaml+xml": {
- "source": "apache",
- "compressible": true,
- "extensions": ["xaml"]
- },
- "application/xcap-att+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["xav"]
- },
- "application/xcap-caps+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["xca"]
- },
- "application/xcap-diff+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["xdf"]
- },
- "application/xcap-el+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["xel"]
- },
- "application/xcap-error+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/xcap-ns+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["xns"]
- },
- "application/xcon-conference-info+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/xcon-conference-info-diff+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/xenc+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["xenc"]
- },
- "application/xhtml+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["xhtml","xht"]
- },
- "application/xhtml-voice+xml": {
- "source": "apache",
- "compressible": true
- },
- "application/xliff+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["xlf"]
- },
- "application/xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["xml","xsl","xsd","rng"]
- },
- "application/xml-dtd": {
- "source": "iana",
- "compressible": true,
- "extensions": ["dtd"]
- },
- "application/xml-external-parsed-entity": {
- "source": "iana"
- },
- "application/xml-patch+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/xmpp+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/xop+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["xop"]
- },
- "application/xproc+xml": {
- "source": "apache",
- "compressible": true,
- "extensions": ["xpl"]
- },
- "application/xslt+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["xsl","xslt"]
- },
- "application/xspf+xml": {
- "source": "apache",
- "compressible": true,
- "extensions": ["xspf"]
- },
- "application/xv+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["mxml","xhvml","xvml","xvm"]
- },
- "application/yang": {
- "source": "iana",
- "extensions": ["yang"]
- },
- "application/yang-data+json": {
- "source": "iana",
- "compressible": true
- },
- "application/yang-data+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/yang-patch+json": {
- "source": "iana",
- "compressible": true
- },
- "application/yang-patch+xml": {
- "source": "iana",
- "compressible": true
- },
- "application/yin+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["yin"]
- },
- "application/zip": {
- "source": "iana",
- "compressible": false,
- "extensions": ["zip"]
- },
- "application/zlib": {
- "source": "iana"
- },
- "application/zstd": {
- "source": "iana"
- },
- "audio/1d-interleaved-parityfec": {
- "source": "iana"
- },
- "audio/32kadpcm": {
- "source": "iana"
- },
- "audio/3gpp": {
- "source": "iana",
- "compressible": false,
- "extensions": ["3gpp"]
- },
- "audio/3gpp2": {
- "source": "iana"
- },
- "audio/aac": {
- "source": "iana"
- },
- "audio/ac3": {
- "source": "iana"
- },
- "audio/adpcm": {
- "source": "apache",
- "extensions": ["adp"]
- },
- "audio/amr": {
- "source": "iana",
- "extensions": ["amr"]
- },
- "audio/amr-wb": {
- "source": "iana"
- },
- "audio/amr-wb+": {
- "source": "iana"
- },
- "audio/aptx": {
- "source": "iana"
- },
- "audio/asc": {
- "source": "iana"
- },
- "audio/atrac-advanced-lossless": {
- "source": "iana"
- },
- "audio/atrac-x": {
- "source": "iana"
- },
- "audio/atrac3": {
- "source": "iana"
- },
- "audio/basic": {
- "source": "iana",
- "compressible": false,
- "extensions": ["au","snd"]
- },
- "audio/bv16": {
- "source": "iana"
- },
- "audio/bv32": {
- "source": "iana"
- },
- "audio/clearmode": {
- "source": "iana"
- },
- "audio/cn": {
- "source": "iana"
- },
- "audio/dat12": {
- "source": "iana"
- },
- "audio/dls": {
- "source": "iana"
- },
- "audio/dsr-es201108": {
- "source": "iana"
- },
- "audio/dsr-es202050": {
- "source": "iana"
- },
- "audio/dsr-es202211": {
- "source": "iana"
- },
- "audio/dsr-es202212": {
- "source": "iana"
- },
- "audio/dv": {
- "source": "iana"
- },
- "audio/dvi4": {
- "source": "iana"
- },
- "audio/eac3": {
- "source": "iana"
- },
- "audio/encaprtp": {
- "source": "iana"
- },
- "audio/evrc": {
- "source": "iana"
- },
- "audio/evrc-qcp": {
- "source": "iana"
- },
- "audio/evrc0": {
- "source": "iana"
- },
- "audio/evrc1": {
- "source": "iana"
- },
- "audio/evrcb": {
- "source": "iana"
- },
- "audio/evrcb0": {
- "source": "iana"
- },
- "audio/evrcb1": {
- "source": "iana"
- },
- "audio/evrcnw": {
- "source": "iana"
- },
- "audio/evrcnw0": {
- "source": "iana"
- },
- "audio/evrcnw1": {
- "source": "iana"
- },
- "audio/evrcwb": {
- "source": "iana"
- },
- "audio/evrcwb0": {
- "source": "iana"
- },
- "audio/evrcwb1": {
- "source": "iana"
- },
- "audio/evs": {
- "source": "iana"
- },
- "audio/flexfec": {
- "source": "iana"
- },
- "audio/fwdred": {
- "source": "iana"
- },
- "audio/g711-0": {
- "source": "iana"
- },
- "audio/g719": {
- "source": "iana"
- },
- "audio/g722": {
- "source": "iana"
- },
- "audio/g7221": {
- "source": "iana"
- },
- "audio/g723": {
- "source": "iana"
- },
- "audio/g726-16": {
- "source": "iana"
- },
- "audio/g726-24": {
- "source": "iana"
- },
- "audio/g726-32": {
- "source": "iana"
- },
- "audio/g726-40": {
- "source": "iana"
- },
- "audio/g728": {
- "source": "iana"
- },
- "audio/g729": {
- "source": "iana"
- },
- "audio/g7291": {
- "source": "iana"
- },
- "audio/g729d": {
- "source": "iana"
- },
- "audio/g729e": {
- "source": "iana"
- },
- "audio/gsm": {
- "source": "iana"
- },
- "audio/gsm-efr": {
- "source": "iana"
- },
- "audio/gsm-hr-08": {
- "source": "iana"
- },
- "audio/ilbc": {
- "source": "iana"
- },
- "audio/ip-mr_v2.5": {
- "source": "iana"
- },
- "audio/isac": {
- "source": "apache"
- },
- "audio/l16": {
- "source": "iana"
- },
- "audio/l20": {
- "source": "iana"
- },
- "audio/l24": {
- "source": "iana",
- "compressible": false
- },
- "audio/l8": {
- "source": "iana"
- },
- "audio/lpc": {
- "source": "iana"
- },
- "audio/melp": {
- "source": "iana"
- },
- "audio/melp1200": {
- "source": "iana"
- },
- "audio/melp2400": {
- "source": "iana"
- },
- "audio/melp600": {
- "source": "iana"
- },
- "audio/mhas": {
- "source": "iana"
- },
- "audio/midi": {
- "source": "apache",
- "extensions": ["mid","midi","kar","rmi"]
- },
- "audio/mobile-xmf": {
- "source": "iana",
- "extensions": ["mxmf"]
- },
- "audio/mp3": {
- "compressible": false,
- "extensions": ["mp3"]
- },
- "audio/mp4": {
- "source": "iana",
- "compressible": false,
- "extensions": ["m4a","mp4a"]
- },
- "audio/mp4a-latm": {
- "source": "iana"
- },
- "audio/mpa": {
- "source": "iana"
- },
- "audio/mpa-robust": {
- "source": "iana"
- },
- "audio/mpeg": {
- "source": "iana",
- "compressible": false,
- "extensions": ["mpga","mp2","mp2a","mp3","m2a","m3a"]
- },
- "audio/mpeg4-generic": {
- "source": "iana"
- },
- "audio/musepack": {
- "source": "apache"
- },
- "audio/ogg": {
- "source": "iana",
- "compressible": false,
- "extensions": ["oga","ogg","spx","opus"]
- },
- "audio/opus": {
- "source": "iana"
- },
- "audio/parityfec": {
- "source": "iana"
- },
- "audio/pcma": {
- "source": "iana"
- },
- "audio/pcma-wb": {
- "source": "iana"
- },
- "audio/pcmu": {
- "source": "iana"
- },
- "audio/pcmu-wb": {
- "source": "iana"
- },
- "audio/prs.sid": {
- "source": "iana"
- },
- "audio/qcelp": {
- "source": "iana"
- },
- "audio/raptorfec": {
- "source": "iana"
- },
- "audio/red": {
- "source": "iana"
- },
- "audio/rtp-enc-aescm128": {
- "source": "iana"
- },
- "audio/rtp-midi": {
- "source": "iana"
- },
- "audio/rtploopback": {
- "source": "iana"
- },
- "audio/rtx": {
- "source": "iana"
- },
- "audio/s3m": {
- "source": "apache",
- "extensions": ["s3m"]
- },
- "audio/scip": {
- "source": "iana"
- },
- "audio/silk": {
- "source": "apache",
- "extensions": ["sil"]
- },
- "audio/smv": {
- "source": "iana"
- },
- "audio/smv-qcp": {
- "source": "iana"
- },
- "audio/smv0": {
- "source": "iana"
- },
- "audio/sofa": {
- "source": "iana"
- },
- "audio/sp-midi": {
- "source": "iana"
- },
- "audio/speex": {
- "source": "iana"
- },
- "audio/t140c": {
- "source": "iana"
- },
- "audio/t38": {
- "source": "iana"
- },
- "audio/telephone-event": {
- "source": "iana"
- },
- "audio/tetra_acelp": {
- "source": "iana"
- },
- "audio/tetra_acelp_bb": {
- "source": "iana"
- },
- "audio/tone": {
- "source": "iana"
- },
- "audio/tsvcis": {
- "source": "iana"
- },
- "audio/uemclip": {
- "source": "iana"
- },
- "audio/ulpfec": {
- "source": "iana"
- },
- "audio/usac": {
- "source": "iana"
- },
- "audio/vdvi": {
- "source": "iana"
- },
- "audio/vmr-wb": {
- "source": "iana"
- },
- "audio/vnd.3gpp.iufp": {
- "source": "iana"
- },
- "audio/vnd.4sb": {
- "source": "iana"
- },
- "audio/vnd.audiokoz": {
- "source": "iana"
- },
- "audio/vnd.celp": {
- "source": "iana"
- },
- "audio/vnd.cisco.nse": {
- "source": "iana"
- },
- "audio/vnd.cmles.radio-events": {
- "source": "iana"
- },
- "audio/vnd.cns.anp1": {
- "source": "iana"
- },
- "audio/vnd.cns.inf1": {
- "source": "iana"
- },
- "audio/vnd.dece.audio": {
- "source": "iana",
- "extensions": ["uva","uvva"]
- },
- "audio/vnd.digital-winds": {
- "source": "iana",
- "extensions": ["eol"]
- },
- "audio/vnd.dlna.adts": {
- "source": "iana"
- },
- "audio/vnd.dolby.heaac.1": {
- "source": "iana"
- },
- "audio/vnd.dolby.heaac.2": {
- "source": "iana"
- },
- "audio/vnd.dolby.mlp": {
- "source": "iana"
- },
- "audio/vnd.dolby.mps": {
- "source": "iana"
- },
- "audio/vnd.dolby.pl2": {
- "source": "iana"
- },
- "audio/vnd.dolby.pl2x": {
- "source": "iana"
- },
- "audio/vnd.dolby.pl2z": {
- "source": "iana"
- },
- "audio/vnd.dolby.pulse.1": {
- "source": "iana"
- },
- "audio/vnd.dra": {
- "source": "iana",
- "extensions": ["dra"]
- },
- "audio/vnd.dts": {
- "source": "iana",
- "extensions": ["dts"]
- },
- "audio/vnd.dts.hd": {
- "source": "iana",
- "extensions": ["dtshd"]
- },
- "audio/vnd.dts.uhd": {
- "source": "iana"
- },
- "audio/vnd.dvb.file": {
- "source": "iana"
- },
- "audio/vnd.everad.plj": {
- "source": "iana"
- },
- "audio/vnd.hns.audio": {
- "source": "iana"
- },
- "audio/vnd.lucent.voice": {
- "source": "iana",
- "extensions": ["lvp"]
- },
- "audio/vnd.ms-playready.media.pya": {
- "source": "iana",
- "extensions": ["pya"]
- },
- "audio/vnd.nokia.mobile-xmf": {
- "source": "iana"
- },
- "audio/vnd.nortel.vbk": {
- "source": "iana"
- },
- "audio/vnd.nuera.ecelp4800": {
- "source": "iana",
- "extensions": ["ecelp4800"]
- },
- "audio/vnd.nuera.ecelp7470": {
- "source": "iana",
- "extensions": ["ecelp7470"]
- },
- "audio/vnd.nuera.ecelp9600": {
- "source": "iana",
- "extensions": ["ecelp9600"]
- },
- "audio/vnd.octel.sbc": {
- "source": "iana"
- },
- "audio/vnd.presonus.multitrack": {
- "source": "iana"
- },
- "audio/vnd.qcelp": {
- "source": "iana"
- },
- "audio/vnd.rhetorex.32kadpcm": {
- "source": "iana"
- },
- "audio/vnd.rip": {
- "source": "iana",
- "extensions": ["rip"]
- },
- "audio/vnd.rn-realaudio": {
- "compressible": false
- },
- "audio/vnd.sealedmedia.softseal.mpeg": {
- "source": "iana"
- },
- "audio/vnd.vmx.cvsd": {
- "source": "iana"
- },
- "audio/vnd.wave": {
- "compressible": false
- },
- "audio/vorbis": {
- "source": "iana",
- "compressible": false
- },
- "audio/vorbis-config": {
- "source": "iana"
- },
- "audio/wav": {
- "compressible": false,
- "extensions": ["wav"]
- },
- "audio/wave": {
- "compressible": false,
- "extensions": ["wav"]
- },
- "audio/webm": {
- "source": "apache",
- "compressible": false,
- "extensions": ["weba"]
- },
- "audio/x-aac": {
- "source": "apache",
- "compressible": false,
- "extensions": ["aac"]
- },
- "audio/x-aiff": {
- "source": "apache",
- "extensions": ["aif","aiff","aifc"]
- },
- "audio/x-caf": {
- "source": "apache",
- "compressible": false,
- "extensions": ["caf"]
- },
- "audio/x-flac": {
- "source": "apache",
- "extensions": ["flac"]
- },
- "audio/x-m4a": {
- "source": "nginx",
- "extensions": ["m4a"]
- },
- "audio/x-matroska": {
- "source": "apache",
- "extensions": ["mka"]
- },
- "audio/x-mpegurl": {
- "source": "apache",
- "extensions": ["m3u"]
- },
- "audio/x-ms-wax": {
- "source": "apache",
- "extensions": ["wax"]
- },
- "audio/x-ms-wma": {
- "source": "apache",
- "extensions": ["wma"]
- },
- "audio/x-pn-realaudio": {
- "source": "apache",
- "extensions": ["ram","ra"]
- },
- "audio/x-pn-realaudio-plugin": {
- "source": "apache",
- "extensions": ["rmp"]
- },
- "audio/x-realaudio": {
- "source": "nginx",
- "extensions": ["ra"]
- },
- "audio/x-tta": {
- "source": "apache"
- },
- "audio/x-wav": {
- "source": "apache",
- "extensions": ["wav"]
- },
- "audio/xm": {
- "source": "apache",
- "extensions": ["xm"]
- },
- "chemical/x-cdx": {
- "source": "apache",
- "extensions": ["cdx"]
- },
- "chemical/x-cif": {
- "source": "apache",
- "extensions": ["cif"]
- },
- "chemical/x-cmdf": {
- "source": "apache",
- "extensions": ["cmdf"]
- },
- "chemical/x-cml": {
- "source": "apache",
- "extensions": ["cml"]
- },
- "chemical/x-csml": {
- "source": "apache",
- "extensions": ["csml"]
- },
- "chemical/x-pdb": {
- "source": "apache"
- },
- "chemical/x-xyz": {
- "source": "apache",
- "extensions": ["xyz"]
- },
- "font/collection": {
- "source": "iana",
- "extensions": ["ttc"]
- },
- "font/otf": {
- "source": "iana",
- "compressible": true,
- "extensions": ["otf"]
- },
- "font/sfnt": {
- "source": "iana"
- },
- "font/ttf": {
- "source": "iana",
- "compressible": true,
- "extensions": ["ttf"]
- },
- "font/woff": {
- "source": "iana",
- "extensions": ["woff"]
- },
- "font/woff2": {
- "source": "iana",
- "extensions": ["woff2"]
- },
- "image/aces": {
- "source": "iana",
- "extensions": ["exr"]
- },
- "image/apng": {
- "compressible": false,
- "extensions": ["apng"]
- },
- "image/avci": {
- "source": "iana"
- },
- "image/avcs": {
- "source": "iana"
- },
- "image/avif": {
- "source": "iana",
- "compressible": false,
- "extensions": ["avif"]
- },
- "image/bmp": {
- "source": "iana",
- "compressible": true,
- "extensions": ["bmp"]
- },
- "image/cgm": {
- "source": "iana",
- "extensions": ["cgm"]
- },
- "image/dicom-rle": {
- "source": "iana",
- "extensions": ["drle"]
- },
- "image/emf": {
- "source": "iana",
- "extensions": ["emf"]
- },
- "image/fits": {
- "source": "iana",
- "extensions": ["fits"]
- },
- "image/g3fax": {
- "source": "iana",
- "extensions": ["g3"]
- },
- "image/gif": {
- "source": "iana",
- "compressible": false,
- "extensions": ["gif"]
- },
- "image/heic": {
- "source": "iana",
- "extensions": ["heic"]
- },
- "image/heic-sequence": {
- "source": "iana",
- "extensions": ["heics"]
- },
- "image/heif": {
- "source": "iana",
- "extensions": ["heif"]
- },
- "image/heif-sequence": {
- "source": "iana",
- "extensions": ["heifs"]
- },
- "image/hej2k": {
- "source": "iana",
- "extensions": ["hej2"]
- },
- "image/hsj2": {
- "source": "iana",
- "extensions": ["hsj2"]
- },
- "image/ief": {
- "source": "iana",
- "extensions": ["ief"]
- },
- "image/jls": {
- "source": "iana",
- "extensions": ["jls"]
- },
- "image/jp2": {
- "source": "iana",
- "compressible": false,
- "extensions": ["jp2","jpg2"]
- },
- "image/jpeg": {
- "source": "iana",
- "compressible": false,
- "extensions": ["jpeg","jpg","jpe"]
- },
- "image/jph": {
- "source": "iana",
- "extensions": ["jph"]
- },
- "image/jphc": {
- "source": "iana",
- "extensions": ["jhc"]
- },
- "image/jpm": {
- "source": "iana",
- "compressible": false,
- "extensions": ["jpm"]
- },
- "image/jpx": {
- "source": "iana",
- "compressible": false,
- "extensions": ["jpx","jpf"]
- },
- "image/jxr": {
- "source": "iana",
- "extensions": ["jxr"]
- },
- "image/jxra": {
- "source": "iana",
- "extensions": ["jxra"]
- },
- "image/jxrs": {
- "source": "iana",
- "extensions": ["jxrs"]
- },
- "image/jxs": {
- "source": "iana",
- "extensions": ["jxs"]
- },
- "image/jxsc": {
- "source": "iana",
- "extensions": ["jxsc"]
- },
- "image/jxsi": {
- "source": "iana",
- "extensions": ["jxsi"]
- },
- "image/jxss": {
- "source": "iana",
- "extensions": ["jxss"]
- },
- "image/ktx": {
- "source": "iana",
- "extensions": ["ktx"]
- },
- "image/ktx2": {
- "source": "iana",
- "extensions": ["ktx2"]
- },
- "image/naplps": {
- "source": "iana"
- },
- "image/pjpeg": {
- "compressible": false
- },
- "image/png": {
- "source": "iana",
- "compressible": false,
- "extensions": ["png"]
- },
- "image/prs.btif": {
- "source": "iana",
- "extensions": ["btif"]
- },
- "image/prs.pti": {
- "source": "iana",
- "extensions": ["pti"]
- },
- "image/pwg-raster": {
- "source": "iana"
- },
- "image/sgi": {
- "source": "apache",
- "extensions": ["sgi"]
- },
- "image/svg+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["svg","svgz"]
- },
- "image/t38": {
- "source": "iana",
- "extensions": ["t38"]
- },
- "image/tiff": {
- "source": "iana",
- "compressible": false,
- "extensions": ["tif","tiff"]
- },
- "image/tiff-fx": {
- "source": "iana",
- "extensions": ["tfx"]
- },
- "image/vnd.adobe.photoshop": {
- "source": "iana",
- "compressible": true,
- "extensions": ["psd"]
- },
- "image/vnd.airzip.accelerator.azv": {
- "source": "iana",
- "extensions": ["azv"]
- },
- "image/vnd.cns.inf2": {
- "source": "iana"
- },
- "image/vnd.dece.graphic": {
- "source": "iana",
- "extensions": ["uvi","uvvi","uvg","uvvg"]
- },
- "image/vnd.djvu": {
- "source": "iana",
- "extensions": ["djvu","djv"]
- },
- "image/vnd.dvb.subtitle": {
- "source": "iana",
- "extensions": ["sub"]
- },
- "image/vnd.dwg": {
- "source": "iana",
- "extensions": ["dwg"]
- },
- "image/vnd.dxf": {
- "source": "iana",
- "extensions": ["dxf"]
- },
- "image/vnd.fastbidsheet": {
- "source": "iana",
- "extensions": ["fbs"]
- },
- "image/vnd.fpx": {
- "source": "iana",
- "extensions": ["fpx"]
- },
- "image/vnd.fst": {
- "source": "iana",
- "extensions": ["fst"]
- },
- "image/vnd.fujixerox.edmics-mmr": {
- "source": "iana",
- "extensions": ["mmr"]
- },
- "image/vnd.fujixerox.edmics-rlc": {
- "source": "iana",
- "extensions": ["rlc"]
- },
- "image/vnd.globalgraphics.pgb": {
- "source": "iana"
- },
- "image/vnd.microsoft.icon": {
- "source": "iana",
- "extensions": ["ico"]
- },
- "image/vnd.mix": {
- "source": "iana"
- },
- "image/vnd.mozilla.apng": {
- "source": "iana"
- },
- "image/vnd.ms-dds": {
- "extensions": ["dds"]
- },
- "image/vnd.ms-modi": {
- "source": "iana",
- "extensions": ["mdi"]
- },
- "image/vnd.ms-photo": {
- "source": "apache",
- "extensions": ["wdp"]
- },
- "image/vnd.net-fpx": {
- "source": "iana",
- "extensions": ["npx"]
- },
- "image/vnd.pco.b16": {
- "source": "iana",
- "extensions": ["b16"]
- },
- "image/vnd.radiance": {
- "source": "iana"
- },
- "image/vnd.sealed.png": {
- "source": "iana"
- },
- "image/vnd.sealedmedia.softseal.gif": {
- "source": "iana"
- },
- "image/vnd.sealedmedia.softseal.jpg": {
- "source": "iana"
- },
- "image/vnd.svf": {
- "source": "iana"
- },
- "image/vnd.tencent.tap": {
- "source": "iana",
- "extensions": ["tap"]
- },
- "image/vnd.valve.source.texture": {
- "source": "iana",
- "extensions": ["vtf"]
- },
- "image/vnd.wap.wbmp": {
- "source": "iana",
- "extensions": ["wbmp"]
- },
- "image/vnd.xiff": {
- "source": "iana",
- "extensions": ["xif"]
- },
- "image/vnd.zbrush.pcx": {
- "source": "iana",
- "extensions": ["pcx"]
- },
- "image/webp": {
- "source": "apache",
- "extensions": ["webp"]
- },
- "image/wmf": {
- "source": "iana",
- "extensions": ["wmf"]
- },
- "image/x-3ds": {
- "source": "apache",
- "extensions": ["3ds"]
- },
- "image/x-cmu-raster": {
- "source": "apache",
- "extensions": ["ras"]
- },
- "image/x-cmx": {
- "source": "apache",
- "extensions": ["cmx"]
- },
- "image/x-freehand": {
- "source": "apache",
- "extensions": ["fh","fhc","fh4","fh5","fh7"]
- },
- "image/x-icon": {
- "source": "apache",
- "compressible": true,
- "extensions": ["ico"]
- },
- "image/x-jng": {
- "source": "nginx",
- "extensions": ["jng"]
- },
- "image/x-mrsid-image": {
- "source": "apache",
- "extensions": ["sid"]
- },
- "image/x-ms-bmp": {
- "source": "nginx",
- "compressible": true,
- "extensions": ["bmp"]
- },
- "image/x-pcx": {
- "source": "apache",
- "extensions": ["pcx"]
- },
- "image/x-pict": {
- "source": "apache",
- "extensions": ["pic","pct"]
- },
- "image/x-portable-anymap": {
- "source": "apache",
- "extensions": ["pnm"]
- },
- "image/x-portable-bitmap": {
- "source": "apache",
- "extensions": ["pbm"]
- },
- "image/x-portable-graymap": {
- "source": "apache",
- "extensions": ["pgm"]
- },
- "image/x-portable-pixmap": {
- "source": "apache",
- "extensions": ["ppm"]
- },
- "image/x-rgb": {
- "source": "apache",
- "extensions": ["rgb"]
- },
- "image/x-tga": {
- "source": "apache",
- "extensions": ["tga"]
- },
- "image/x-xbitmap": {
- "source": "apache",
- "extensions": ["xbm"]
- },
- "image/x-xcf": {
- "compressible": false
- },
- "image/x-xpixmap": {
- "source": "apache",
- "extensions": ["xpm"]
- },
- "image/x-xwindowdump": {
- "source": "apache",
- "extensions": ["xwd"]
- },
- "message/cpim": {
- "source": "iana"
- },
- "message/delivery-status": {
- "source": "iana"
- },
- "message/disposition-notification": {
- "source": "iana",
- "extensions": [
- "disposition-notification"
- ]
- },
- "message/external-body": {
- "source": "iana"
- },
- "message/feedback-report": {
- "source": "iana"
- },
- "message/global": {
- "source": "iana",
- "extensions": ["u8msg"]
- },
- "message/global-delivery-status": {
- "source": "iana",
- "extensions": ["u8dsn"]
- },
- "message/global-disposition-notification": {
- "source": "iana",
- "extensions": ["u8mdn"]
- },
- "message/global-headers": {
- "source": "iana",
- "extensions": ["u8hdr"]
- },
- "message/http": {
- "source": "iana",
- "compressible": false
- },
- "message/imdn+xml": {
- "source": "iana",
- "compressible": true
- },
- "message/news": {
- "source": "iana"
- },
- "message/partial": {
- "source": "iana",
- "compressible": false
- },
- "message/rfc822": {
- "source": "iana",
- "compressible": true,
- "extensions": ["eml","mime"]
- },
- "message/s-http": {
- "source": "iana"
- },
- "message/sip": {
- "source": "iana"
- },
- "message/sipfrag": {
- "source": "iana"
- },
- "message/tracking-status": {
- "source": "iana"
- },
- "message/vnd.si.simp": {
- "source": "iana"
- },
- "message/vnd.wfa.wsc": {
- "source": "iana",
- "extensions": ["wsc"]
- },
- "model/3mf": {
- "source": "iana",
- "extensions": ["3mf"]
- },
- "model/e57": {
- "source": "iana"
- },
- "model/gltf+json": {
- "source": "iana",
- "compressible": true,
- "extensions": ["gltf"]
- },
- "model/gltf-binary": {
- "source": "iana",
- "compressible": true,
- "extensions": ["glb"]
- },
- "model/iges": {
- "source": "iana",
- "compressible": false,
- "extensions": ["igs","iges"]
- },
- "model/mesh": {
- "source": "iana",
- "compressible": false,
- "extensions": ["msh","mesh","silo"]
- },
- "model/mtl": {
- "source": "iana",
- "extensions": ["mtl"]
- },
- "model/obj": {
- "source": "iana",
- "extensions": ["obj"]
- },
- "model/step+zip": {
- "source": "iana",
- "compressible": false,
- "extensions": ["stpz"]
- },
- "model/step-xml+zip": {
- "source": "iana",
- "compressible": false,
- "extensions": ["stpxz"]
- },
- "model/stl": {
- "source": "iana",
- "extensions": ["stl"]
- },
- "model/vnd.collada+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["dae"]
- },
- "model/vnd.dwf": {
- "source": "iana",
- "extensions": ["dwf"]
- },
- "model/vnd.flatland.3dml": {
- "source": "iana"
- },
- "model/vnd.gdl": {
- "source": "iana",
- "extensions": ["gdl"]
- },
- "model/vnd.gs-gdl": {
- "source": "apache"
- },
- "model/vnd.gs.gdl": {
- "source": "iana"
- },
- "model/vnd.gtw": {
- "source": "iana",
- "extensions": ["gtw"]
- },
- "model/vnd.moml+xml": {
- "source": "iana",
- "compressible": true
- },
- "model/vnd.mts": {
- "source": "iana",
- "extensions": ["mts"]
- },
- "model/vnd.opengex": {
- "source": "iana",
- "extensions": ["ogex"]
- },
- "model/vnd.parasolid.transmit.binary": {
- "source": "iana",
- "extensions": ["x_b"]
- },
- "model/vnd.parasolid.transmit.text": {
- "source": "iana",
- "extensions": ["x_t"]
- },
- "model/vnd.pytha.pyox": {
- "source": "iana"
- },
- "model/vnd.rosette.annotated-data-model": {
- "source": "iana"
- },
- "model/vnd.sap.vds": {
- "source": "iana",
- "extensions": ["vds"]
- },
- "model/vnd.usdz+zip": {
- "source": "iana",
- "compressible": false,
- "extensions": ["usdz"]
- },
- "model/vnd.valve.source.compiled-map": {
- "source": "iana",
- "extensions": ["bsp"]
- },
- "model/vnd.vtu": {
- "source": "iana",
- "extensions": ["vtu"]
- },
- "model/vrml": {
- "source": "iana",
- "compressible": false,
- "extensions": ["wrl","vrml"]
- },
- "model/x3d+binary": {
- "source": "apache",
- "compressible": false,
- "extensions": ["x3db","x3dbz"]
- },
- "model/x3d+fastinfoset": {
- "source": "iana",
- "extensions": ["x3db"]
- },
- "model/x3d+vrml": {
- "source": "apache",
- "compressible": false,
- "extensions": ["x3dv","x3dvz"]
- },
- "model/x3d+xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["x3d","x3dz"]
- },
- "model/x3d-vrml": {
- "source": "iana",
- "extensions": ["x3dv"]
- },
- "multipart/alternative": {
- "source": "iana",
- "compressible": false
- },
- "multipart/appledouble": {
- "source": "iana"
- },
- "multipart/byteranges": {
- "source": "iana"
- },
- "multipart/digest": {
- "source": "iana"
- },
- "multipart/encrypted": {
- "source": "iana",
- "compressible": false
- },
- "multipart/form-data": {
- "source": "iana",
- "compressible": false
- },
- "multipart/header-set": {
- "source": "iana"
- },
- "multipart/mixed": {
- "source": "iana"
- },
- "multipart/multilingual": {
- "source": "iana"
- },
- "multipart/parallel": {
- "source": "iana"
- },
- "multipart/related": {
- "source": "iana",
- "compressible": false
- },
- "multipart/report": {
- "source": "iana"
- },
- "multipart/signed": {
- "source": "iana",
- "compressible": false
- },
- "multipart/vnd.bint.med-plus": {
- "source": "iana"
- },
- "multipart/voice-message": {
- "source": "iana"
- },
- "multipart/x-mixed-replace": {
- "source": "iana"
- },
- "text/1d-interleaved-parityfec": {
- "source": "iana"
- },
- "text/cache-manifest": {
- "source": "iana",
- "compressible": true,
- "extensions": ["appcache","manifest"]
- },
- "text/calendar": {
- "source": "iana",
- "extensions": ["ics","ifb"]
- },
- "text/calender": {
- "compressible": true
- },
- "text/cmd": {
- "compressible": true
- },
- "text/coffeescript": {
- "extensions": ["coffee","litcoffee"]
- },
- "text/cql": {
- "source": "iana"
- },
- "text/cql-expression": {
- "source": "iana"
- },
- "text/cql-identifier": {
- "source": "iana"
- },
- "text/css": {
- "source": "iana",
- "charset": "UTF-8",
- "compressible": true,
- "extensions": ["css"]
- },
- "text/csv": {
- "source": "iana",
- "compressible": true,
- "extensions": ["csv"]
- },
- "text/csv-schema": {
- "source": "iana"
- },
- "text/directory": {
- "source": "iana"
- },
- "text/dns": {
- "source": "iana"
- },
- "text/ecmascript": {
- "source": "iana"
- },
- "text/encaprtp": {
- "source": "iana"
- },
- "text/enriched": {
- "source": "iana"
- },
- "text/fhirpath": {
- "source": "iana"
- },
- "text/flexfec": {
- "source": "iana"
- },
- "text/fwdred": {
- "source": "iana"
- },
- "text/gff3": {
- "source": "iana"
- },
- "text/grammar-ref-list": {
- "source": "iana"
- },
- "text/html": {
- "source": "iana",
- "compressible": true,
- "extensions": ["html","htm","shtml"]
- },
- "text/jade": {
- "extensions": ["jade"]
- },
- "text/javascript": {
- "source": "iana",
- "compressible": true
- },
- "text/jcr-cnd": {
- "source": "iana"
- },
- "text/jsx": {
- "compressible": true,
- "extensions": ["jsx"]
- },
- "text/less": {
- "compressible": true,
- "extensions": ["less"]
- },
- "text/markdown": {
- "source": "iana",
- "compressible": true,
- "extensions": ["markdown","md"]
- },
- "text/mathml": {
- "source": "nginx",
- "extensions": ["mml"]
- },
- "text/mdx": {
- "compressible": true,
- "extensions": ["mdx"]
- },
- "text/mizar": {
- "source": "iana"
- },
- "text/n3": {
- "source": "iana",
- "charset": "UTF-8",
- "compressible": true,
- "extensions": ["n3"]
- },
- "text/parameters": {
- "source": "iana",
- "charset": "UTF-8"
- },
- "text/parityfec": {
- "source": "iana"
- },
- "text/plain": {
- "source": "iana",
- "compressible": true,
- "extensions": ["txt","text","conf","def","list","log","in","ini"]
- },
- "text/provenance-notation": {
- "source": "iana",
- "charset": "UTF-8"
- },
- "text/prs.fallenstein.rst": {
- "source": "iana"
- },
- "text/prs.lines.tag": {
- "source": "iana",
- "extensions": ["dsc"]
- },
- "text/prs.prop.logic": {
- "source": "iana"
- },
- "text/raptorfec": {
- "source": "iana"
- },
- "text/red": {
- "source": "iana"
- },
- "text/rfc822-headers": {
- "source": "iana"
- },
- "text/richtext": {
- "source": "iana",
- "compressible": true,
- "extensions": ["rtx"]
- },
- "text/rtf": {
- "source": "iana",
- "compressible": true,
- "extensions": ["rtf"]
- },
- "text/rtp-enc-aescm128": {
- "source": "iana"
- },
- "text/rtploopback": {
- "source": "iana"
- },
- "text/rtx": {
- "source": "iana"
- },
- "text/sgml": {
- "source": "iana",
- "extensions": ["sgml","sgm"]
- },
- "text/shaclc": {
- "source": "iana"
- },
- "text/shex": {
- "source": "iana",
- "extensions": ["shex"]
- },
- "text/slim": {
- "extensions": ["slim","slm"]
- },
- "text/spdx": {
- "source": "iana",
- "extensions": ["spdx"]
- },
- "text/strings": {
- "source": "iana"
- },
- "text/stylus": {
- "extensions": ["stylus","styl"]
- },
- "text/t140": {
- "source": "iana"
- },
- "text/tab-separated-values": {
- "source": "iana",
- "compressible": true,
- "extensions": ["tsv"]
- },
- "text/troff": {
- "source": "iana",
- "extensions": ["t","tr","roff","man","me","ms"]
- },
- "text/turtle": {
- "source": "iana",
- "charset": "UTF-8",
- "extensions": ["ttl"]
- },
- "text/ulpfec": {
- "source": "iana"
- },
- "text/uri-list": {
- "source": "iana",
- "compressible": true,
- "extensions": ["uri","uris","urls"]
- },
- "text/vcard": {
- "source": "iana",
- "compressible": true,
- "extensions": ["vcard"]
- },
- "text/vnd.a": {
- "source": "iana"
- },
- "text/vnd.abc": {
- "source": "iana"
- },
- "text/vnd.ascii-art": {
- "source": "iana"
- },
- "text/vnd.curl": {
- "source": "iana",
- "extensions": ["curl"]
- },
- "text/vnd.curl.dcurl": {
- "source": "apache",
- "extensions": ["dcurl"]
- },
- "text/vnd.curl.mcurl": {
- "source": "apache",
- "extensions": ["mcurl"]
- },
- "text/vnd.curl.scurl": {
- "source": "apache",
- "extensions": ["scurl"]
- },
- "text/vnd.debian.copyright": {
- "source": "iana",
- "charset": "UTF-8"
- },
- "text/vnd.dmclientscript": {
- "source": "iana"
- },
- "text/vnd.dvb.subtitle": {
- "source": "iana",
- "extensions": ["sub"]
- },
- "text/vnd.esmertec.theme-descriptor": {
- "source": "iana",
- "charset": "UTF-8"
- },
- "text/vnd.ficlab.flt": {
- "source": "iana"
- },
- "text/vnd.fly": {
- "source": "iana",
- "extensions": ["fly"]
- },
- "text/vnd.fmi.flexstor": {
- "source": "iana",
- "extensions": ["flx"]
- },
- "text/vnd.gml": {
- "source": "iana"
- },
- "text/vnd.graphviz": {
- "source": "iana",
- "extensions": ["gv"]
- },
- "text/vnd.hans": {
- "source": "iana"
- },
- "text/vnd.hgl": {
- "source": "iana"
- },
- "text/vnd.in3d.3dml": {
- "source": "iana",
- "extensions": ["3dml"]
- },
- "text/vnd.in3d.spot": {
- "source": "iana",
- "extensions": ["spot"]
- },
- "text/vnd.iptc.newsml": {
- "source": "iana"
- },
- "text/vnd.iptc.nitf": {
- "source": "iana"
- },
- "text/vnd.latex-z": {
- "source": "iana"
- },
- "text/vnd.motorola.reflex": {
- "source": "iana"
- },
- "text/vnd.ms-mediapackage": {
- "source": "iana"
- },
- "text/vnd.net2phone.commcenter.command": {
- "source": "iana"
- },
- "text/vnd.radisys.msml-basic-layout": {
- "source": "iana"
- },
- "text/vnd.senx.warpscript": {
- "source": "iana"
- },
- "text/vnd.si.uricatalogue": {
- "source": "iana"
- },
- "text/vnd.sosi": {
- "source": "iana"
- },
- "text/vnd.sun.j2me.app-descriptor": {
- "source": "iana",
- "charset": "UTF-8",
- "extensions": ["jad"]
- },
- "text/vnd.trolltech.linguist": {
- "source": "iana",
- "charset": "UTF-8"
- },
- "text/vnd.wap.si": {
- "source": "iana"
- },
- "text/vnd.wap.sl": {
- "source": "iana"
- },
- "text/vnd.wap.wml": {
- "source": "iana",
- "extensions": ["wml"]
- },
- "text/vnd.wap.wmlscript": {
- "source": "iana",
- "extensions": ["wmls"]
- },
- "text/vtt": {
- "source": "iana",
- "charset": "UTF-8",
- "compressible": true,
- "extensions": ["vtt"]
- },
- "text/x-asm": {
- "source": "apache",
- "extensions": ["s","asm"]
- },
- "text/x-c": {
- "source": "apache",
- "extensions": ["c","cc","cxx","cpp","h","hh","dic"]
- },
- "text/x-component": {
- "source": "nginx",
- "extensions": ["htc"]
- },
- "text/x-fortran": {
- "source": "apache",
- "extensions": ["f","for","f77","f90"]
- },
- "text/x-gwt-rpc": {
- "compressible": true
- },
- "text/x-handlebars-template": {
- "extensions": ["hbs"]
- },
- "text/x-java-source": {
- "source": "apache",
- "extensions": ["java"]
- },
- "text/x-jquery-tmpl": {
- "compressible": true
- },
- "text/x-lua": {
- "extensions": ["lua"]
- },
- "text/x-markdown": {
- "compressible": true,
- "extensions": ["mkd"]
- },
- "text/x-nfo": {
- "source": "apache",
- "extensions": ["nfo"]
- },
- "text/x-opml": {
- "source": "apache",
- "extensions": ["opml"]
- },
- "text/x-org": {
- "compressible": true,
- "extensions": ["org"]
- },
- "text/x-pascal": {
- "source": "apache",
- "extensions": ["p","pas"]
- },
- "text/x-processing": {
- "compressible": true,
- "extensions": ["pde"]
- },
- "text/x-sass": {
- "extensions": ["sass"]
- },
- "text/x-scss": {
- "extensions": ["scss"]
- },
- "text/x-setext": {
- "source": "apache",
- "extensions": ["etx"]
- },
- "text/x-sfv": {
- "source": "apache",
- "extensions": ["sfv"]
- },
- "text/x-suse-ymp": {
- "compressible": true,
- "extensions": ["ymp"]
- },
- "text/x-uuencode": {
- "source": "apache",
- "extensions": ["uu"]
- },
- "text/x-vcalendar": {
- "source": "apache",
- "extensions": ["vcs"]
- },
- "text/x-vcard": {
- "source": "apache",
- "extensions": ["vcf"]
- },
- "text/xml": {
- "source": "iana",
- "compressible": true,
- "extensions": ["xml"]
- },
- "text/xml-external-parsed-entity": {
- "source": "iana"
- },
- "text/yaml": {
- "compressible": true,
- "extensions": ["yaml","yml"]
- },
- "video/1d-interleaved-parityfec": {
- "source": "iana"
- },
- "video/3gpp": {
- "source": "iana",
- "extensions": ["3gp","3gpp"]
- },
- "video/3gpp-tt": {
- "source": "iana"
- },
- "video/3gpp2": {
- "source": "iana",
- "extensions": ["3g2"]
- },
- "video/av1": {
- "source": "iana"
- },
- "video/bmpeg": {
- "source": "iana"
- },
- "video/bt656": {
- "source": "iana"
- },
- "video/celb": {
- "source": "iana"
- },
- "video/dv": {
- "source": "iana"
- },
- "video/encaprtp": {
- "source": "iana"
- },
- "video/ffv1": {
- "source": "iana"
- },
- "video/flexfec": {
- "source": "iana"
- },
- "video/h261": {
- "source": "iana",
- "extensions": ["h261"]
- },
- "video/h263": {
- "source": "iana",
- "extensions": ["h263"]
- },
- "video/h263-1998": {
- "source": "iana"
- },
- "video/h263-2000": {
- "source": "iana"
- },
- "video/h264": {
- "source": "iana",
- "extensions": ["h264"]
- },
- "video/h264-rcdo": {
- "source": "iana"
- },
- "video/h264-svc": {
- "source": "iana"
- },
- "video/h265": {
- "source": "iana"
- },
- "video/iso.segment": {
- "source": "iana",
- "extensions": ["m4s"]
- },
- "video/jpeg": {
- "source": "iana",
- "extensions": ["jpgv"]
- },
- "video/jpeg2000": {
- "source": "iana"
- },
- "video/jpm": {
- "source": "apache",
- "extensions": ["jpm","jpgm"]
- },
- "video/mj2": {
- "source": "iana",
- "extensions": ["mj2","mjp2"]
- },
- "video/mp1s": {
- "source": "iana"
- },
- "video/mp2p": {
- "source": "iana"
- },
- "video/mp2t": {
- "source": "iana",
- "extensions": ["ts"]
- },
- "video/mp4": {
- "source": "iana",
- "compressible": false,
- "extensions": ["mp4","mp4v","mpg4"]
- },
- "video/mp4v-es": {
- "source": "iana"
- },
- "video/mpeg": {
- "source": "iana",
- "compressible": false,
- "extensions": ["mpeg","mpg","mpe","m1v","m2v"]
- },
- "video/mpeg4-generic": {
- "source": "iana"
- },
- "video/mpv": {
- "source": "iana"
- },
- "video/nv": {
- "source": "iana"
- },
- "video/ogg": {
- "source": "iana",
- "compressible": false,
- "extensions": ["ogv"]
- },
- "video/parityfec": {
- "source": "iana"
- },
- "video/pointer": {
- "source": "iana"
- },
- "video/quicktime": {
- "source": "iana",
- "compressible": false,
- "extensions": ["qt","mov"]
- },
- "video/raptorfec": {
- "source": "iana"
- },
- "video/raw": {
- "source": "iana"
- },
- "video/rtp-enc-aescm128": {
- "source": "iana"
- },
- "video/rtploopback": {
- "source": "iana"
- },
- "video/rtx": {
- "source": "iana"
- },
- "video/scip": {
- "source": "iana"
- },
- "video/smpte291": {
- "source": "iana"
- },
- "video/smpte292m": {
- "source": "iana"
- },
- "video/ulpfec": {
- "source": "iana"
- },
- "video/vc1": {
- "source": "iana"
- },
- "video/vc2": {
- "source": "iana"
- },
- "video/vnd.cctv": {
- "source": "iana"
- },
- "video/vnd.dece.hd": {
- "source": "iana",
- "extensions": ["uvh","uvvh"]
- },
- "video/vnd.dece.mobile": {
- "source": "iana",
- "extensions": ["uvm","uvvm"]
- },
- "video/vnd.dece.mp4": {
- "source": "iana"
- },
- "video/vnd.dece.pd": {
- "source": "iana",
- "extensions": ["uvp","uvvp"]
- },
- "video/vnd.dece.sd": {
- "source": "iana",
- "extensions": ["uvs","uvvs"]
- },
- "video/vnd.dece.video": {
- "source": "iana",
- "extensions": ["uvv","uvvv"]
- },
- "video/vnd.directv.mpeg": {
- "source": "iana"
- },
- "video/vnd.directv.mpeg-tts": {
- "source": "iana"
- },
- "video/vnd.dlna.mpeg-tts": {
- "source": "iana"
- },
- "video/vnd.dvb.file": {
- "source": "iana",
- "extensions": ["dvb"]
- },
- "video/vnd.fvt": {
- "source": "iana",
- "extensions": ["fvt"]
- },
- "video/vnd.hns.video": {
- "source": "iana"
- },
- "video/vnd.iptvforum.1dparityfec-1010": {
- "source": "iana"
- },
- "video/vnd.iptvforum.1dparityfec-2005": {
- "source": "iana"
- },
- "video/vnd.iptvforum.2dparityfec-1010": {
- "source": "iana"
- },
- "video/vnd.iptvforum.2dparityfec-2005": {
- "source": "iana"
- },
- "video/vnd.iptvforum.ttsavc": {
- "source": "iana"
- },
- "video/vnd.iptvforum.ttsmpeg2": {
- "source": "iana"
- },
- "video/vnd.motorola.video": {
- "source": "iana"
- },
- "video/vnd.motorola.videop": {
- "source": "iana"
- },
- "video/vnd.mpegurl": {
- "source": "iana",
- "extensions": ["mxu","m4u"]
- },
- "video/vnd.ms-playready.media.pyv": {
- "source": "iana",
- "extensions": ["pyv"]
- },
- "video/vnd.nokia.interleaved-multimedia": {
- "source": "iana"
- },
- "video/vnd.nokia.mp4vr": {
- "source": "iana"
- },
- "video/vnd.nokia.videovoip": {
- "source": "iana"
- },
- "video/vnd.objectvideo": {
- "source": "iana"
- },
- "video/vnd.radgamettools.bink": {
- "source": "iana"
- },
- "video/vnd.radgamettools.smacker": {
- "source": "iana"
- },
- "video/vnd.sealed.mpeg1": {
- "source": "iana"
- },
- "video/vnd.sealed.mpeg4": {
- "source": "iana"
- },
- "video/vnd.sealed.swf": {
- "source": "iana"
- },
- "video/vnd.sealedmedia.softseal.mov": {
- "source": "iana"
- },
- "video/vnd.uvvu.mp4": {
- "source": "iana",
- "extensions": ["uvu","uvvu"]
- },
- "video/vnd.vivo": {
- "source": "iana",
- "extensions": ["viv"]
- },
- "video/vnd.youtube.yt": {
- "source": "iana"
- },
- "video/vp8": {
- "source": "iana"
- },
- "video/vp9": {
- "source": "iana"
- },
- "video/webm": {
- "source": "apache",
- "compressible": false,
- "extensions": ["webm"]
- },
- "video/x-f4v": {
- "source": "apache",
- "extensions": ["f4v"]
- },
- "video/x-fli": {
- "source": "apache",
- "extensions": ["fli"]
- },
- "video/x-flv": {
- "source": "apache",
- "compressible": false,
- "extensions": ["flv"]
- },
- "video/x-m4v": {
- "source": "apache",
- "extensions": ["m4v"]
- },
- "video/x-matroska": {
- "source": "apache",
- "compressible": false,
- "extensions": ["mkv","mk3d","mks"]
- },
- "video/x-mng": {
- "source": "apache",
- "extensions": ["mng"]
- },
- "video/x-ms-asf": {
- "source": "apache",
- "extensions": ["asf","asx"]
- },
- "video/x-ms-vob": {
- "source": "apache",
- "extensions": ["vob"]
- },
- "video/x-ms-wm": {
- "source": "apache",
- "extensions": ["wm"]
- },
- "video/x-ms-wmv": {
- "source": "apache",
- "compressible": false,
- "extensions": ["wmv"]
- },
- "video/x-ms-wmx": {
- "source": "apache",
- "extensions": ["wmx"]
- },
- "video/x-ms-wvx": {
- "source": "apache",
- "extensions": ["wvx"]
- },
- "video/x-msvideo": {
- "source": "apache",
- "extensions": ["avi"]
- },
- "video/x-sgi-movie": {
- "source": "apache",
- "extensions": ["movie"]
- },
- "video/x-smv": {
- "source": "apache",
- "extensions": ["smv"]
- },
- "x-conference/x-cooltalk": {
- "source": "apache",
- "extensions": ["ice"]
- },
- "x-shader/x-fragment": {
- "compressible": true
- },
- "x-shader/x-vertex": {
- "compressible": true
- }
-}
diff --git a/deps/npm/node_modules/mime-db/index.js b/deps/npm/node_modules/mime-db/index.js
deleted file mode 100644
index 551031f690b..00000000000
--- a/deps/npm/node_modules/mime-db/index.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*!
- * mime-db
- * Copyright(c) 2014 Jonathan Ong
- * MIT Licensed
- */
-
-/**
- * Module exports.
- */
-
-module.exports = require('./db.json')
diff --git a/deps/npm/node_modules/mime-db/package.json b/deps/npm/node_modules/mime-db/package.json
deleted file mode 100644
index e546efa728f..00000000000
--- a/deps/npm/node_modules/mime-db/package.json
+++ /dev/null
@@ -1,59 +0,0 @@
-{
- "name": "mime-db",
- "description": "Media Type Database",
- "version": "1.49.0",
- "contributors": [
- "Douglas Christopher Wilson <doug@somethingdoug.com>",
- "Jonathan Ong <me@jongleberry.com> (http://jongleberry.com)",
- "Robert Kieffer <robert@broofa.com> (http://github.com/broofa)"
- ],
- "license": "MIT",
- "keywords": [
- "mime",
- "db",
- "type",
- "types",
- "database",
- "charset",
- "charsets"
- ],
- "repository": "jshttp/mime-db",
- "devDependencies": {
- "bluebird": "3.7.2",
- "co": "4.6.0",
- "cogent": "1.0.1",
- "csv-parse": "4.16.0",
- "eslint": "7.31.0",
- "eslint-config-standard": "15.0.1",
- "eslint-plugin-import": "2.23.4",
- "eslint-plugin-markdown": "2.2.0",
- "eslint-plugin-node": "11.1.0",
- "eslint-plugin-promise": "5.1.0",
- "eslint-plugin-standard": "4.1.0",
- "gnode": "0.1.2",
- "mocha": "9.0.3",
- "nyc": "15.1.0",
- "raw-body": "2.4.1",
- "stream-to-array": "2.3.0"
- },
- "files": [
- "HISTORY.md",
- "LICENSE",
- "README.md",
- "db.json",
- "index.js"
- ],
- "engines": {
- "node": ">= 0.6"
- },
- "scripts": {
- "build": "node scripts/build",
- "fetch": "node scripts/fetch-apache && gnode scripts/fetch-iana && node scripts/fetch-nginx",
- "lint": "eslint .",
- "test": "mocha --reporter spec --bail --check-leaks test/",
- "test-ci": "nyc --reporter=lcov --reporter=text npm test",
- "test-cov": "nyc --reporter=html --reporter=text npm test",
- "update": "npm run fetch && npm run build",
- "version": "node scripts/version-history.js && git add HISTORY.md"
- }
-}
diff --git a/deps/npm/node_modules/mime-types/HISTORY.md b/deps/npm/node_modules/mime-types/HISTORY.md
deleted file mode 100644
index 977ffbb15d8..00000000000
--- a/deps/npm/node_modules/mime-types/HISTORY.md
+++ /dev/null
@@ -1,378 +0,0 @@
-2.1.32 / 2021-07-27
-===================
-
- * deps: mime-db@1.49.0
- - Add extension `.trig` to `application/trig`
- - Add new upstream MIME types
-
-2.1.31 / 2021-06-01
-===================
-
- * deps: mime-db@1.48.0
- - Add extension `.mvt` to `application/vnd.mapbox-vector-tile`
- - Add new upstream MIME types
- - Mark `text/yaml` as compressible
-
-2.1.30 / 2021-04-02
-===================
-
- * deps: mime-db@1.47.0
- - Add extension `.amr` to `audio/amr`
- - Remove ambigious extensions from IANA for `application/*+xml` types
- - Update primary extension to `.es` for `application/ecmascript`
-
-2.1.29 / 2021-02-17
-===================
-
- * deps: mime-db@1.46.0
- - Add extension `.amr` to `audio/amr`
- - Add extension `.m4s` to `video/iso.segment`
- - Add extension `.opus` to `audio/ogg`
- - Add new upstream MIME types
-
-2.1.28 / 2021-01-01
-===================
-
- * deps: mime-db@1.45.0
- - Add `application/ubjson` with extension `.ubj`
- - Add `image/avif` with extension `.avif`
- - Add `image/ktx2` with extension `.ktx2`
- - Add extension `.dbf` to `application/vnd.dbf`
- - Add extension `.rar` to `application/vnd.rar`
- - Add extension `.td` to `application/urc-targetdesc+xml`
- - Add new upstream MIME types
- - Fix extension of `application/vnd.apple.keynote` to be `.key`
-
-2.1.27 / 2020-04-23
-===================
-
- * deps: mime-db@1.44.0
- - Add charsets from IANA
- - Add extension `.cjs` to `application/node`
- - Add new upstream MIME types
-
-2.1.26 / 2020-01-05
-===================
-
- * deps: mime-db@1.43.0
- - Add `application/x-keepass2` with extension `.kdbx`
- - Add extension `.mxmf` to `audio/mobile-xmf`
- - Add extensions from IANA for `application/*+xml` types
- - Add new upstream MIME types
-
-2.1.25 / 2019-11-12
-===================
-
- * deps: mime-db@1.42.0
- - Add new upstream MIME types
- - Add `application/toml` with extension `.toml`
- - Add `image/vnd.ms-dds` with extension `.dds`
-
-2.1.24 / 2019-04-20
-===================
-
- * deps: mime-db@1.40.0
- - Add extensions from IANA for `model/*` types
- - Add `text/mdx` with extension `.mdx`
-
-2.1.23 / 2019-04-17
-===================
-
- * deps: mime-db@~1.39.0
- - Add extensions `.siv` and `.sieve` to `application/sieve`
- - Add new upstream MIME types
-
-2.1.22 / 2019-02-14
-===================
-
- * deps: mime-db@~1.38.0
- - Add extension `.nq` to `application/n-quads`
- - Add extension `.nt` to `application/n-triples`
- - Add new upstream MIME types
- - Mark `text/less` as compressible
-
-2.1.21 / 2018-10-19
-===================
-
- * deps: mime-db@~1.37.0
- - Add extensions to HEIC image types
- - Add new upstream MIME types
-
-2.1.20 / 2018-08-26
-===================
-
- * deps: mime-db@~1.36.0
- - Add Apple file extensions from IANA
- - Add extensions from IANA for `image/*` types
- - Add new upstream MIME types
-
-2.1.19 / 2018-07-17
-===================
-
- * deps: mime-db@~1.35.0
- - Add extension `.csl` to `application/vnd.citationstyles.style+xml`
- - Add extension `.es` to `application/ecmascript`
- - Add extension `.owl` to `application/rdf+xml`
- - Add new upstream MIME types
- - Add UTF-8 as default charset for `text/turtle`
-
-2.1.18 / 2018-02-16
-===================
-
- * deps: mime-db@~1.33.0
- - Add `application/raml+yaml` with extension `.raml`
- - Add `application/wasm` with extension `.wasm`
- - Add `text/shex` with extension `.shex`
- - Add extensions for JPEG-2000 images
- - Add extensions from IANA for `message/*` types
- - Add new upstream MIME types
- - Update font MIME types
- - Update `text/hjson` to registered `application/hjson`
-
-2.1.17 / 2017-09-01
-===================
-
- * deps: mime-db@~1.30.0
- - Add `application/vnd.ms-outlook`
- - Add `application/x-arj`
- - Add extension `.mjs` to `application/javascript`
- - Add glTF types and extensions
- - Add new upstream MIME types
- - Add `text/x-org`
- - Add VirtualBox MIME types
- - Fix `source` records for `video/*` types that are IANA
- - Update `font/opentype` to registered `font/otf`
-
-2.1.16 / 2017-07-24
-===================
-
- * deps: mime-db@~1.29.0
- - Add `application/fido.trusted-apps+json`
- - Add extension `.wadl` to `application/vnd.sun.wadl+xml`
- - Add extension `.gz` to `application/gzip`
- - Add new upstream MIME types
- - Update extensions `.md` and `.markdown` to be `text/markdown`
-
-2.1.15 / 2017-03-23
-===================
-
- * deps: mime-db@~1.27.0
- - Add new mime types
- - Add `image/apng`
-
-2.1.14 / 2017-01-14
-===================
-
- * deps: mime-db@~1.26.0
- - Add new mime types
-
-2.1.13 / 2016-11-18
-===================
-
- * deps: mime-db@~1.25.0
- - Add new mime types
-
-2.1.12 / 2016-09-18
-===================
-
- * deps: mime-db@~1.24.0
- - Add new mime types
- - Add `audio/mp3`
-
-2.1.11 / 2016-05-01
-===================
-
- * deps: mime-db@~1.23.0
- - Add new mime types
-
-2.1.10 / 2016-02-15
-===================
-
- * deps: mime-db@~1.22.0
- - Add new mime types
- - Fix extension of `application/dash+xml`
- - Update primary extension for `audio/mp4`
-
-2.1.9 / 2016-01-06
-==================
-
- * deps: mime-db@~1.21.0
- - Add new mime types
-
-2.1.8 / 2015-11-30
-==================
-
- * deps: mime-db@~1.20.0
- - Add new mime types
-
-2.1.7 / 2015-09-20
-==================
-
- * deps: mime-db@~1.19.0
- - Add new mime types
-
-2.1.6 / 2015-09-03
-==================
-
- * deps: mime-db@~1.18.0
- - Add new mime types
-
-2.1.5 / 2015-08-20
-==================
-
- * deps: mime-db@~1.17.0
- - Add new mime types
-
-2.1.4 / 2015-07-30
-==================
-
- * deps: mime-db@~1.16.0
- - Add new mime types
-
-2.1.3 / 2015-07-13
-==================
-
- * deps: mime-db@~1.15.0
- - Add new mime types
-
-2.1.2 / 2015-06-25
-==================
-
- * deps: mime-db@~1.14.0
- - Add new mime types
-
-2.1.1 / 2015-06-08
-==================
-
- * perf: fix deopt during mapping
-
-2.1.0 / 2015-06-07
-==================
-
- * Fix incorrectly treating extension-less file name as extension
- - i.e. `'path/to/json'` will no longer return `application/json`
- * Fix `.charset(type)` to accept parameters
- * Fix `.charset(type)` to match case-insensitive
- * Improve generation of extension to MIME mapping
- * Refactor internals for readability and no argument reassignment
- * Prefer `application/*` MIME types from the same source
- * Prefer any type over `application/octet-stream`
- * deps: mime-db@~1.13.0
- - Add nginx as a source
- - Add new mime types
-
-2.0.14 / 2015-06-06
-===================
-
- * deps: mime-db@~1.12.0
- - Add new mime types
-
-2.0.13 / 2015-05-31
-===================
-
- * deps: mime-db@~1.11.0
- - Add new mime types
-
-2.0.12 / 2015-05-19
-===================
-
- * deps: mime-db@~1.10.0
- - Add new mime types
-
-2.0.11 / 2015-05-05
-===================
-
- * deps: mime-db@~1.9.1
- - Add new mime types
-
-2.0.10 / 2015-03-13
-===================
-
- * deps: mime-db@~1.8.0
- - Add new mime types
-
-2.0.9 / 2015-02-09
-==================
-
- * deps: mime-db@~1.7.0
- - Add new mime types
- - Community extensions ownership transferred from `node-mime`
-
-2.0.8 / 2015-01-29
-==================
-
- * deps: mime-db@~1.6.0
- - Add new mime types
-
-2.0.7 / 2014-12-30
-==================
-
- * deps: mime-db@~1.5.0
- - Add new mime types
- - Fix various invalid MIME type entries
-
-2.0.6 / 2014-12-30
-==================
-
- * deps: mime-db@~1.4.0
- - Add new mime types
- - Fix various invalid MIME type entries
- - Remove example template MIME types
-
-2.0.5 / 2014-12-29
-==================
-
- * deps: mime-db@~1.3.1
- - Fix missing extensions
-
-2.0.4 / 2014-12-10
-==================
-
- * deps: mime-db@~1.3.0
- - Add new mime types
-
-2.0.3 / 2014-11-09
-==================
-
- * deps: mime-db@~1.2.0
- - Add new mime types
-
-2.0.2 / 2014-09-28
-==================
-
- * deps: mime-db@~1.1.0
- - Add new mime types
- - Add additional compressible
- - Update charsets
-
-2.0.1 / 2014-09-07
-==================
-
- * Support Node.js 0.6
-
-2.0.0 / 2014-09-02
-==================
-
- * Use `mime-db`
- * Remove `.define()`
-
-1.0.2 / 2014-08-04
-==================
-
- * Set charset=utf-8 for `text/javascript`
-
-1.0.1 / 2014-06-24
-==================
-
- * Add `text/jsx` type
-
-1.0.0 / 2014-05-12
-==================
-
- * Return `false` for unknown types
- * Set charset=utf-8 for `application/json`
-
-0.1.0 / 2014-05-02
-==================
-
- * Initial release
diff --git a/deps/npm/node_modules/mime-types/LICENSE b/deps/npm/node_modules/mime-types/LICENSE
deleted file mode 100644
index 06166077be4..00000000000
--- a/deps/npm/node_modules/mime-types/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2014 Jonathan Ong <me@jongleberry.com>
-Copyright (c) 2015 Douglas Christopher Wilson <doug@somethingdoug.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/deps/npm/node_modules/mime-types/index.js b/deps/npm/node_modules/mime-types/index.js
deleted file mode 100644
index b9f34d59910..00000000000
--- a/deps/npm/node_modules/mime-types/index.js
+++ /dev/null
@@ -1,188 +0,0 @@
-/*!
- * mime-types
- * Copyright(c) 2014 Jonathan Ong
- * Copyright(c) 2015 Douglas Christopher Wilson
- * MIT Licensed
- */
-
-'use strict'
-
-/**
- * Module dependencies.
- * @private
- */
-
-var db = require('mime-db')
-var extname = require('path').extname
-
-/**
- * Module variables.
- * @private
- */
-
-var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/
-var TEXT_TYPE_REGEXP = /^text\//i
-
-/**
- * Module exports.
- * @public
- */
-
-exports.charset = charset
-exports.charsets = { lookup: charset }
-exports.contentType = contentType
-exports.extension = extension
-exports.extensions = Object.create(null)
-exports.lookup = lookup
-exports.types = Object.create(null)
-
-// Populate the extensions/types maps
-populateMaps(exports.extensions, exports.types)
-
-/**
- * Get the default charset for a MIME type.
- *
- * @param {string} type
- * @return {boolean|string}
- */
-
-function charset (type) {
- if (!type || typeof type !== 'string') {
- return false
- }
-
- // TODO: use media-typer
- var match = EXTRACT_TYPE_REGEXP.exec(type)
- var mime = match && db[match[1].toLowerCase()]
-
- if (mime && mime.charset) {
- return mime.charset
- }
-
- // default text/* to utf-8
- if (match && TEXT_TYPE_REGEXP.test(match[1])) {
- return 'UTF-8'
- }
-
- return false
-}
-
-/**
- * Create a full Content-Type header given a MIME type or extension.
- *
- * @param {string} str
- * @return {boolean|string}
- */
-
-function contentType (str) {
- // TODO: should this even be in this module?
- if (!str || typeof str !== 'string') {
- return false
- }
-
- var mime = str.indexOf('/') === -1
- ? exports.lookup(str)
- : str
-
- if (!mime) {
- return false
- }
-
- // TODO: use content-type or other module
- if (mime.indexOf('charset') === -1) {
- var charset = exports.charset(mime)
- if (charset) mime += '; charset=' + charset.toLowerCase()
- }
-
- return mime
-}
-
-/**
- * Get the default extension for a MIME type.
- *
- * @param {string} type
- * @return {boolean|string}
- */
-
-function extension (type) {
- if (!type || typeof type !== 'string') {
- return false
- }
-
- // TODO: use media-typer
- var match = EXTRACT_TYPE_REGEXP.exec(type)
-
- // get extensions
- var exts = match && exports.extensions[match[1].toLowerCase()]
-
- if (!exts || !exts.length) {
- return false
- }
-
- return exts[0]
-}
-
-/**
- * Lookup the MIME type for a file path/extension.
- *
- * @param {string} path
- * @return {boolean|string}
- */
-
-function lookup (path) {
- if (!path || typeof path !== 'string') {
- return false
- }
-
- // get the extension ("ext" or ".ext" or full path)
- var extension = extname('x.' + path)
- .toLowerCase()
- .substr(1)
-
- if (!extension) {
- return false
- }
-
- return exports.types[extension] || false
-}
-
-/**
- * Populate the extensions and types maps.
- * @private
- */
-
-function populateMaps (extensions, types) {
- // source preference (least -> most)
- var preference = ['nginx', 'apache', undefined, 'iana']
-
- Object.keys(db).forEach(function forEachMimeType (type) {
- var mime = db[type]
- var exts = mime.extensions
-
- if (!exts || !exts.length) {
- return
- }
-
- // mime -> extensions
- extensions[type] = exts
-
- // extension -> mime
- for (var i = 0; i < exts.length; i++) {
- var extension = exts[i]
-
- if (types[extension]) {
- var from = preference.indexOf(db[types[extension]].source)
- var to = preference.indexOf(mime.source)
-
- if (types[extension] !== 'application/octet-stream' &&
- (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) {
- // skip the remapping
- continue
- }
- }
-
- // set the extension -> mime
- types[extension] = type
- }
- })
-}
diff --git a/deps/npm/node_modules/mime-types/package.json b/deps/npm/node_modules/mime-types/package.json
deleted file mode 100644
index 7567acd5508..00000000000
--- a/deps/npm/node_modules/mime-types/package.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "name": "mime-types",
- "description": "The ultimate javascript content-type utility.",
- "version": "2.1.32",
- "contributors": [
- "Douglas Christopher Wilson <doug@somethingdoug.com>",
- "Jeremiah Senkpiel <fishrock123@rocketmail.com> (https://searchbeam.jit.su)",
- "Jonathan Ong <me@jongleberry.com> (http://jongleberry.com)"
- ],
- "license": "MIT",
- "keywords": [
- "mime",
- "types"
- ],
- "repository": "jshttp/mime-types",
- "dependencies": {
- "mime-db": "1.49.0"
- },
- "devDependencies": {
- "eslint": "7.31.0",
- "eslint-config-standard": "14.1.1",
- "eslint-plugin-import": "2.23.4",
- "eslint-plugin-markdown": "2.2.0",
- "eslint-plugin-node": "11.1.0",
- "eslint-plugin-promise": "5.1.0",
- "eslint-plugin-standard": "4.1.0",
- "mocha": "9.0.3",
- "nyc": "15.1.0"
- },
- "files": [
- "HISTORY.md",
- "LICENSE",
- "index.js"
- ],
- "engines": {
- "node": ">= 0.6"
- },
- "scripts": {
- "lint": "eslint .",
- "test": "mocha --reporter spec test/test.js",
- "test-ci": "nyc --reporter=lcov --reporter=text npm test",
- "test-cov": "nyc --reporter=html --reporter=text npm test"
- }
-}
diff --git a/deps/npm/node_modules/node-gyp/.github/ISSUE_TEMPLATE.md b/deps/npm/node_modules/node-gyp/.github/ISSUE_TEMPLATE.md
index 485e26ecae8..c6b213d7be3 100644
--- a/deps/npm/node_modules/node-gyp/.github/ISSUE_TEMPLATE.md
+++ b/deps/npm/node_modules/node-gyp/.github/ISSUE_TEMPLATE.md
@@ -13,6 +13,10 @@ provide the basic information we require.
-->
+Please look thru your error log for the string `gyp info using node-gyp@` and if the version number is less than the [current release of node-gyp](https://github.com/nodejs/node-gyp/releases) then __please upgrade__ using the instructions at https://github.com/nodejs/node-gyp/blob/master/docs/Updating-npm-bundled-node-gyp.md and try your command again.
+
+Requests for help with [`node-sass` are very common](https://github.com/nodejs/node-gyp/issues?q=label%3A%22Node+Sass+--%3E+Dart+Sass%22). Please be aware that this package is deprecated, you should seek alternatives and avoid opening new issues about it here.
+
* **Node Version**: <!-- `node -v` and `npm -v` -->
* **Platform**: <!-- `uname -a` (UNIX), or `systeminfo | findstr /B /C:"OS Name" /C:"OS Version" /C:"System Type"` (Windows) -->
* **Compiler**: <!-- `cc -v` (UNIX) or `msbuild /version & cl` (Windows) -->
@@ -46,4 +50,3 @@ Usage: npm <command>
</details>
<!-- Any further details -->
-
diff --git a/deps/npm/node_modules/node-gyp/.github/PULL_REQUEST_TEMPLATE.md b/deps/npm/node_modules/node-gyp/.github/PULL_REQUEST_TEMPLATE.md
index 10156d89af1..bcc4bb1a048 100644
--- a/deps/npm/node_modules/node-gyp/.github/PULL_REQUEST_TEMPLATE.md
+++ b/deps/npm/node_modules/node-gyp/.github/PULL_REQUEST_TEMPLATE.md
@@ -10,7 +10,7 @@ Contributor guide: https://github.com/nodejs/node/blob/master/CONTRIBUTING.md
- [ ] `npm install && npm test` passes
- [ ] tests are included <!-- Bug fixes and new features should include tests -->
- [ ] documentation is changed or added
-- [ ] commit message follows [commit guidelines](https://github.com/nodejs/node/blob/master/doc/guides/contributing/pull-requests.md#commit-message-guidelines)
+- [ ] commit message follows [commit guidelines](https://github.com/googleapis/release-please#how-should-i-write-my-commits)
##### Description of change
<!-- Provide a description of the change -->
diff --git a/deps/npm/node_modules/node-gyp/.github/workflows/release-please.yml b/deps/npm/node_modules/node-gyp/.github/workflows/release-please.yml
new file mode 100644
index 00000000000..7d3cf9dd450
--- /dev/null
+++ b/deps/npm/node_modules/node-gyp/.github/workflows/release-please.yml
@@ -0,0 +1,56 @@
+name: release-please
+
+on:
+ push:
+ branches:
+ - master
+
+jobs:
+ release-please:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: google-github-actions/release-please-action@v2
+ id: release
+ with:
+ package-name: node-gyp
+ release-type: node
+ changelog-types: >
+ [{"type":"feat","section":"Features","hidden":false},
+ {"type":"fix","section":"Bug Fixes","hidden":false},
+ {"type":"bin","section":"Core","hidden":false},
+ {"type":"gyp","section":"Core","hidden":false},
+ {"type":"lib","section":"Core","hidden":false},
+ {"type":"src","section":"Core","hidden":false},
+ {"type":"test","section":"Tests","hidden":false},
+ {"type":"build","section":"Core","hidden":false},
+ {"type":"clean","section":"Core","hidden":false},
+ {"type":"configure","section":"Core","hidden":false},
+ {"type":"install","section":"Core","hidden":false},
+ {"type":"list","section":"Core","hidden":false},
+ {"type":"rebuild","section":"Core","hidden":false},
+ {"type":"remove","section":"Core","hidden":false},
+ {"type":"deps","section":"Core","hidden":false},
+ {"type":"python","section":"Core","hidden":false},
+ {"type":"lin","section":"Core","hidden":false},
+ {"type":"linux","section":"Core","hidden":false},
+ {"type":"mac","section":"Core","hidden":false},
+ {"type":"macos","section":"Core","hidden":false},
+ {"type":"win","section":"Core","hidden":false},
+ {"type":"windows","section":"Core","hidden":false},
+ {"type":"zos","section":"Core","hidden":false},
+ {"type":"doc","section":"Doc","hidden":false},
+ {"type":"docs","section":"Doc","hidden":false},
+ {"type":"readme","section":"Doc","hidden":false},
+ {"type":"chore","section":"Miscellaneous","hidden":false},
+ {"type":"refactor","section":"Miscellaneous","hidden":false},
+ {"type":"ci","section":"Miscellaneous","hidden":false},
+ {"type":"meta","section":"Miscellaneous","hidden":false}]
+
+ # Standard Conventional Commits: `feat` and `fix`
+ # node-gyp subdirectories: `bin`, `gyp`, `lib`, `src`, `test`
+ # node-gyp subcommands: `build`, `clean`, `configure`, `install`, `list`, `rebuild`, `remove`
+ # Core abstract category: `deps`
+ # Languages/platforms: `python`, `lin`, `linux`, `mac`, `macos`, `win`, `window`, `zos`
+ # Documentation: `doc`, `docs`, `readme`
+ # Standard Conventional Commits: `chore` (under "Miscellaneous")
+ # Miscellaneous abstract categories: `refactor`, `ci`, `meta`
diff --git a/deps/npm/node_modules/node-gyp/.github/workflows/tests.yml b/deps/npm/node_modules/node-gyp/.github/workflows/tests.yml
index 651b1a9f49c..7b122680238 100644
--- a/deps/npm/node_modules/node-gyp/.github/workflows/tests.yml
+++ b/deps/npm/node_modules/node-gyp/.github/workflows/tests.yml
@@ -1,14 +1,14 @@
-# TODO: Line 47, enable pytest --doctest-modules
+# TODO: Line 43, enable pytest --doctest-modules
name: Tests
on: [push, pull_request]
jobs:
Tests:
strategy:
- fail-fast: false
+ fail-fast: false
max-parallel: 15
matrix:
- node: [10.x, 12.x, 14.x]
+ node: [12.x, 14.x, 16.x]
python: [3.6, 3.8, 3.9]
os: [macos-latest, ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}
@@ -16,7 +16,7 @@ jobs:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node }}
- uses: actions/setup-node@v1
+ uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node }}
- name: Use Python ${{ matrix.python }}
@@ -31,21 +31,15 @@ jobs:
pip install flake8 pytest
- name: Set Windows environment
if: matrix.os == 'windows-latest'
- run:
- echo '::set-env name=GYP_MSVS_VERSION::2015'
- echo '::set-env name=GYP_MSVS_OVERRIDE_PATH::C:\\Dummy'
+ run: |
+ echo 'GYP_MSVS_VERSION=2015' >> $Env:GITHUB_ENV
+ echo 'GYP_MSVS_OVERRIDE_PATH=C:\\Dummy' >> $Env:GITHUB_ENV
- name: Lint Python
if: matrix.os == 'ubuntu-latest'
- run: |
- # stop the build if there are Python syntax errors or undefined names
- flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
- # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
- flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
+ run: flake8 . --ignore=E203,W503 --max-complexity=101 --max-line-length=88 --show-source --statistics
- name: Run Python tests
- run: |
- python -m pytest
+ run: python -m pytest
# - name: Run doctests with pytest
# run: python -m pytest --doctest-modules
- name: Run Node tests
- run: |
- npm test
+ run: npm test
diff --git a/deps/npm/node_modules/node-gyp/CHANGELOG.md b/deps/npm/node_modules/node-gyp/CHANGELOG.md
index 733a4b5dd6a..7d513542fdd 100644
--- a/deps/npm/node_modules/node-gyp/CHANGELOG.md
+++ b/deps/npm/node_modules/node-gyp/CHANGELOG.md
@@ -1,11 +1,173 @@
-v7.1.2 2020-10-17
-=================
+# Changelog
+
+## [8.2.0](https://www.github.com/nodejs/node-gyp/compare/v8.1.0...v8.2.0) (2021-08-23)
+
+
+### Features
+
+* **gyp:** update gyp to v0.9.6 ([#2481](https://www.github.com/nodejs/node-gyp/issues/2481)) ([ed9a9ed](https://www.github.com/nodejs/node-gyp/commit/ed9a9ed653a17c84afa3c327161992d0da7d0cea))
+
+
+### Bug Fixes
+
+* add error arg back into catch block for older Node.js users ([5cde818](https://www.github.com/nodejs/node-gyp/commit/5cde818aac715477e9e9747966bb6b4c4ed070a8))
+* change default gyp update message ([#2420](https://www.github.com/nodejs/node-gyp/issues/2420)) ([cfd12ff](https://www.github.com/nodejs/node-gyp/commit/cfd12ff3bb0eb4525173413ef6a94b3cd8398cad))
+* doc how to update node-gyp independently from npm ([c8c0af7](https://www.github.com/nodejs/node-gyp/commit/c8c0af72e78141a02b5da4cd4d704838333a90bd))
+* missing spaces ([f0882b1](https://www.github.com/nodejs/node-gyp/commit/f0882b1264b2fa701adbc81a3be0b3cba80e333d))
+
+
+### Core
+
+* deep-copy process.config during configure ([#2368](https://www.github.com/nodejs/node-gyp/issues/2368)) ([5f1a06c](https://www.github.com/nodejs/node-gyp/commit/5f1a06c50f3b0c3d292f64948f85a004cfcc5c87))
+
+
+### Miscellaneous
+
+* **deps:** bump tar from 6.1.0 to 6.1.2 ([#2474](https://www.github.com/nodejs/node-gyp/issues/2474)) ([ec15a3e](https://www.github.com/nodejs/node-gyp/commit/ec15a3e5012004172713c11eebcc9d852d32d380))
+* fix typos discovered by codespell ([#2442](https://www.github.com/nodejs/node-gyp/issues/2442)) ([2d0ce55](https://www.github.com/nodejs/node-gyp/commit/2d0ce5595e232a3fc7c562cdf39efb77e2312cc1))
+* GitHub Actions Test on node: [12.x, 14.x, 16.x] ([#2439](https://www.github.com/nodejs/node-gyp/issues/2439)) ([b7bccdb](https://www.github.com/nodejs/node-gyp/commit/b7bccdb527d93b0bb0ce99713f083ce2985fe85c))
+
+
+### Doc
+
+* correct link to "binding.gyp files out in the wild" ([#2483](https://www.github.com/nodejs/node-gyp/issues/2483)) ([660dd7b](https://www.github.com/nodejs/node-gyp/commit/660dd7b2a822c184be8027b300e68be67b366772))
+* **wiki:** Add a link to the node-midi binding.gyp file. ([b354711](https://www.github.com/nodejs/node-gyp/commit/b3547115f6e356358138310e857c7f1ec627a8a7))
+* **wiki:** add bcrypt ([e199cfa](https://www.github.com/nodejs/node-gyp/commit/e199cfa8fc6161492d2a6ade2190510d0ebf7c0f))
+* **wiki:** Add helpful information ([4eda827](https://www.github.com/nodejs/node-gyp/commit/4eda8275c03dae6d2f5c40f3c1dbe930d84b0f2b))
+* **wiki:** Add node-canvas ([13a9553](https://www.github.com/nodejs/node-gyp/commit/13a955317b39caf98fd1f412d8d3f41599e979fd))
+* **wiki:** Add node-openvg-canvas and node-openvg. ([61f709e](https://www.github.com/nodejs/node-gyp/commit/61f709ec4d9f256a6467e9ff84430a48eeb629d1))
+* **wiki:** add one more example ([77f3632](https://www.github.com/nodejs/node-gyp/commit/77f363272930d3d4d24fd3973be22e6237128fcc))
+* **wiki:** add topcube, node-osmium, and node-osrm ([1a75d2b](https://www.github.com/nodejs/node-gyp/commit/1a75d2bf2f562ba50846893a516e111cfbb50885))
+* **wiki:** Added details for properly fixing ([3d4d9d5](https://www.github.com/nodejs/node-gyp/commit/3d4d9d52d6b5b49de06bb0bb5b68e2686d2b7ebd))
+* **wiki:** Added Ghostscript4JS ([bf4bed1](https://www.github.com/nodejs/node-gyp/commit/bf4bed1b96a7d22fba6f97f4552ad09f32ac3737))
+* **wiki:** added levelup ([1575bce](https://www.github.com/nodejs/node-gyp/commit/1575bce3a53db628bfb023fd6f3258fdf98c3195))
+* **wiki:** Added nk-mysql (nodamysql) ([5b4f2d0](https://www.github.com/nodejs/node-gyp/commit/5b4f2d0e1d5d3eadfd03aaf9c1668340f76c4bea))
+* **wiki:** Added nk-xrm-installer .gyp references, including .py scripts for providing complete reference to examples of fetching source via http, extracting, and moving files (as opposed to copying) ([ceb3088](https://www.github.com/nodejs/node-gyp/commit/ceb30885b74f6789374ef52267b84767be93ebe4))
+* **wiki:** Added tip about resolving frustrating LNK1181 error ([e64798d](https://www.github.com/nodejs/node-gyp/commit/e64798de8cac6031ad598a86d7599e81b4d20b17))
+* **wiki:** ADDED: Node.js binding to OpenCV ([e2dc777](https://www.github.com/nodejs/node-gyp/commit/e2dc77730b09d7ee8682d7713a7603a2d7aacabd))
+* **wiki:** Adding link to node-cryptopp's gyp file ([875adbe](https://www.github.com/nodejs/node-gyp/commit/875adbe2a4669fa5f2be0250ffbf98fb55e800fd))
+* **wiki:** Adding the sharp library to the list ([9dce0e4](https://www.github.com/nodejs/node-gyp/commit/9dce0e41650c3fa973e6135a79632d022c662a1d))
+* **wiki:** Adds node-fann ([23e3d48](https://www.github.com/nodejs/node-gyp/commit/23e3d485ed894ba7c631e9c062f5e366b50c416c))
+* **wiki:** Adds node-inotify and v8-profiler ([b6e542f](https://www.github.com/nodejs/node-gyp/commit/b6e542f644dbbfe22b88524ec500696e06ee4af7))
+* **wiki:** Bumping Python version from 2.3 to 2.7 as per the node-gyp readme ([55ebd6e](https://www.github.com/nodejs/node-gyp/commit/55ebd6ebacde975bf84f7bf4d8c66e64cc7cd0da))
+* **wiki:** C++ build tools version upgraded ([5b899b7](https://www.github.com/nodejs/node-gyp/commit/5b899b70db729c392ced7c98e8e17590c6499fc3))
+* **wiki:** change bcrypt url to binding.gyp file ([e11bdd8](https://www.github.com/nodejs/node-gyp/commit/e11bdd84de6144492d3eb327d67cbf2d62da1a76))
+* **wiki:** Clarification + direct link to VS2010 ([531c724](https://www.github.com/nodejs/node-gyp/commit/531c724561d947b5d870de8d52dd8c3c51c5ec2d))
+* **wiki:** Correcting the link to node-osmium ([fae7516](https://www.github.com/nodejs/node-gyp/commit/fae7516a1d2829b6e234eaded74fb112ebd79a05))
+* **wiki:** Created "binding.gyp" files out in the wild (markdown) ([d4fd143](https://www.github.com/nodejs/node-gyp/commit/d4fd14355bbe57f229f082f47bb2b3670868203f))
+* **wiki:** Created Common issues (markdown) ([a38299e](https://www.github.com/nodejs/node-gyp/commit/a38299ea340ceb0e732c6dc6a1b4760257644839))
+* **wiki:** Created Error: "pre" versions of node cannot be installed (markdown) ([98bc80d](https://www.github.com/nodejs/node-gyp/commit/98bc80d7a62ba70c881f3c39d94f804322e57852))
+* **wiki:** Created Linking to OpenSSL (markdown) ([c46d00d](https://www.github.com/nodejs/node-gyp/commit/c46d00d83bac5173dea8bbbb175a1a7de74fdaca))
+* **wiki:** Created Updating npm's bundled node gyp (markdown) ([e0ac8d1](https://www.github.com/nodejs/node-gyp/commit/e0ac8d15af46aadd1c220599e63199b154a514e6))
+* **wiki:** Created use of undeclared identifier 'TypedArray' (markdown) ([65ba711](https://www.github.com/nodejs/node-gyp/commit/65ba71139e9b7f64ac823e575ee9dbf17d937ce4))
+* **wiki:** Created Visual Studio 2010 Setup (markdown) ([5b80e83](https://www.github.com/nodejs/node-gyp/commit/5b80e834c8f79dda9fb2770a876ff3cf649c06f3))
+* **wiki:** Created Visual studio 2012 setup (markdown) ([becef31](https://www.github.com/nodejs/node-gyp/commit/becef316b6c46a33e783667720ee074a0141d1a5))
+* **wiki:** Destroyed Visual Studio 2010 Setup (markdown) ([93423b4](https://www.github.com/nodejs/node-gyp/commit/93423b43606de9664aeb79635825f5e9941ec9bc))
+* **wiki:** Destroyed Visual studio 2012 setup (markdown) ([3601508](https://www.github.com/nodejs/node-gyp/commit/3601508bb10fa05da0ddc7e70d57e4b4dd679657))
+* **wiki:** Different commands for Windows npm v6 vs. v7 ([0fce46b](https://www.github.com/nodejs/node-gyp/commit/0fce46b53340c85e8091cde347d5ed23a443c82f))
+* **wiki:** Drop in favor of ([9285ff6](https://www.github.com/nodejs/node-gyp/commit/9285ff6e451c52c070a05f05f0a9602621d91d53))
+* **wiki:** Explicit link to Visual C++ 2010 Express ([378c363](https://www.github.com/nodejs/node-gyp/commit/378c3632f02c096ed819ec8f2611c65bef0c0554))
+* **wiki:** fix link to gyp file used to build libsqlite3 ([54db8d7](https://www.github.com/nodejs/node-gyp/commit/54db8d7ac33e3f98220960b5d86cfa18a75b53cb))
+* **wiki:** Fix link to node-zipfile ([92e49a8](https://www.github.com/nodejs/node-gyp/commit/92e49a858ed69cb4847a26a5676ab56ef5e2de33))
+* **wiki:** fixed node-serialport link ([954ee53](https://www.github.com/nodejs/node-gyp/commit/954ee530b3972d1db591fce32368e4e31b5a25d8))
+* **wiki:** I highly missing it in common issue as every windows biggner face that issue ([d617fae](https://www.github.com/nodejs/node-gyp/commit/d617faee29c40871ca5c8f93efd0ce929a40d541))
+* **wiki:** if ouns that the -h did not help. I founs on github that there was support for visual studio 2015, while i couldn't install node-red beacuse it kept telling me the key 2015 was missing. looking in he gyp python code i found the local file was bot up t dat with the github repo. updating took several efforts before i tried to drop the -g option. ([408b72f](https://www.github.com/nodejs/node-gyp/commit/408b72f561329408daeb17834436e381406efcc8))
+* **wiki:** If permissions error, please try and then the command. ([ee8e1c1](https://www.github.com/nodejs/node-gyp/commit/ee8e1c1e5334096d58e0d6bca6c006f2ee9c88cb))
+* **wiki:** Improve Unix instructions ([c3e5487](https://www.github.com/nodejs/node-gyp/commit/c3e548736645b535ea5bce613d74ca3e98598243))
+* **wiki:** link to docs/ from README ([b52e487](https://www.github.com/nodejs/node-gyp/commit/b52e487eac1eb421573d1e67114a242eeff45a00))
+* **wiki:** Lower case L ([3aa2c6b](https://www.github.com/nodejs/node-gyp/commit/3aa2c6bdb07971b87505e32e32548d75264bd19f))
+* **wiki:** Make changes discussed in https://github.com/nodejs/node-gyp/issues/2416 ([1dcad87](https://www.github.com/nodejs/node-gyp/commit/1dcad873539027511a5f0243baf770ea90f6f4e2))
+* **wiki:** move wiki docs into doc/ ([f0a4835](https://www.github.com/nodejs/node-gyp/commit/f0a48355d86534ec3bdabcdb3ce3340fa2e17f39))
+* **wiki:** node-sass in the wild ([d310a73](https://www.github.com/nodejs/node-gyp/commit/d310a73d64d0065050377baac7047472f7424a1b))
+* **wiki:** node-srs was a 404 ([bbca21a](https://www.github.com/nodejs/node-gyp/commit/bbca21a1e1ede4c473aff365ca71989a5bda7b57))
+* **wiki:** Note: VS2010 seems to be no longer available! VS2013 or nothing! ([7b5dcaf](https://www.github.com/nodejs/node-gyp/commit/7b5dcafafccdceae4b8f2b53ac9081a694b6ade8))
+* **wiki:** safer doc names, remove unnecessary TypedArray doc ([161c235](https://www.github.com/nodejs/node-gyp/commit/161c2353ef5b562f4acfb2fd77608fcbd0800fc0))
+* **wiki:** sorry, forgot to mention a specific windows version. ([d69dffc](https://www.github.com/nodejs/node-gyp/commit/d69dffc16c2b1e3c60dcb5d1c35a49270ba22a35))
+* **wiki:** Updated "binding.gyp" files out in the wild (markdown) ([7444b47](https://www.github.com/nodejs/node-gyp/commit/7444b47a7caac1e14d1da474a7fcfcf88d328017))
+* **wiki:** Updated "binding.gyp" files out in the wild (markdown) ([d766b74](https://www.github.com/nodejs/node-gyp/commit/d766b7427851e6c2edc02e2504a7be9be7e330c0))
+* **wiki:** Updated "binding.gyp" files out in the wild (markdown) ([d319b0e](https://www.github.com/nodejs/node-gyp/commit/d319b0e98c7085de8e51bc5595eba4264b99a7d5))
+* **wiki:** Updated "binding.gyp" files out in the wild (markdown) ([3c6692d](https://www.github.com/nodejs/node-gyp/commit/3c6692d538f0ce973869aa237118b7d2483feccd))
+* **wiki:** Updated "binding.gyp" files out in the wild (markdown) ([93392d5](https://www.github.com/nodejs/node-gyp/commit/93392d559ce6f250b9c7fe8177e6c88603809dc1))
+* **wiki:** Updated "binding.gyp" files out in the wild (markdown) ([8841158](https://www.github.com/nodejs/node-gyp/commit/88411588f300e9b7c00fe516ecd977a1feeeb15c))
+* **wiki:** Updated "binding.gyp" files out in the wild (markdown) ([81bfa1f](https://www.github.com/nodejs/node-gyp/commit/81bfa1f1b63d522a9f8a9ae9ca0c7ae90fe75140))
+* **wiki:** Updated "binding.gyp" files out in the wild (markdown) ([d1cd237](https://www.github.com/nodejs/node-gyp/commit/d1cd237bad06fa507adb354b9e2181a14dc63d24))
+* **wiki:** Updated "binding.gyp" files out in the wild (markdown) ([3de9e17](https://www.github.com/nodejs/node-gyp/commit/3de9e17e0b8a387eafe7bd18d0ec1e3191d118e8))
+* **wiki:** Updated "binding.gyp" files out in the wild (markdown) ([a9b7096](https://www.github.com/nodejs/node-gyp/commit/a9b70968fb956eab3b95672048b94350e1565ca3))
+* **wiki:** Updated "binding.gyp" files out in the wild (markdown) ([3236069](https://www.github.com/nodejs/node-gyp/commit/3236069689e7e0eb15b324fce74ab58158956f98))
+* **wiki:** Updated "binding.gyp" files out in the wild (markdown) ([1462755](https://www.github.com/nodejs/node-gyp/commit/14627556966e5d513bdb8e5208f0e1300f68991f))
+* **wiki:** Updated "binding.gyp" files out in the wild (markdown) ([7ab1337](https://www.github.com/nodejs/node-gyp/commit/7ab133752a6c402bb96dcd3d671d73e03e9487ad))
+* **wiki:** Updated "binding.gyp" files out in the wild (markdown) ([640895d](https://www.github.com/nodejs/node-gyp/commit/640895d36b7448c646a3b850c1e159106f83c724))
+* **wiki:** Updated "binding.gyp" files out in the wild (markdown) ([ced8c96](https://www.github.com/nodejs/node-gyp/commit/ced8c968457f285ab8989c291d28173d7730833c))
+* **wiki:** Updated "binding.gyp" files out in the wild (markdown) ([27b883a](https://www.github.com/nodejs/node-gyp/commit/27b883a350ad0db6b9130d7b996f35855ec34c7a))
+* **wiki:** Updated "binding.gyp" files out in the wild (markdown) ([d29fb13](https://www.github.com/nodejs/node-gyp/commit/d29fb134f1c4b9dd729ba95f2979e69e0934809f))
+* **wiki:** Updated "binding.gyp" files out in the wild (markdown) ([2765891](https://www.github.com/nodejs/node-gyp/commit/27658913e6220cf0371b4b73e25a0e4ab11108a1))
+* **wiki:** Updated "binding.gyp" files out in the wild (markdown) ([dc97766](https://www.github.com/nodejs/node-gyp/commit/dc9776648d432bca6775c176641f16da14522d4c))
+* **wiki:** Updated Error: "pre" versions of node cannot be installed (markdown) ([e9f8b33](https://www.github.com/nodejs/node-gyp/commit/e9f8b33d1f87d04f22cb09a814d7c55d0fa38446))
+* **wiki:** Updated Home (markdown) ([3407109](https://www.github.com/nodejs/node-gyp/commit/3407109325cf7ba1e925656b9eb75feffab0557c))
+* **wiki:** Updated Home (markdown) ([6e392bc](https://www.github.com/nodejs/node-gyp/commit/6e392bcdd3dd1691773e6e16e1dffc35931b81e0))
+* **wiki:** Updated Home (markdown) ([65efe32](https://www.github.com/nodejs/node-gyp/commit/65efe32ccb8d446ce569453364f922dd9d27c945))
+* **wiki:** Updated Home (markdown) ([ea28f09](https://www.github.com/nodejs/node-gyp/commit/ea28f0947af91fa638be355143f5df89d2e431c8))
+* **wiki:** Updated Home (markdown) ([0e37ff4](https://www.github.com/nodejs/node-gyp/commit/0e37ff48b306c12149661b375895741d3d710da7))
+* **wiki:** Updated Home (markdown) ([b398ef4](https://www.github.com/nodejs/node-gyp/commit/b398ef46f660d2b1506508550dadfb4c35639e4b))
+* **wiki:** Updated Linking to OpenSSL (markdown) ([8919028](https://www.github.com/nodejs/node-gyp/commit/8919028921fd304f08044098434f0dc6071fb7cf))
+* **wiki:** Updated Linking to OpenSSL (markdown) ([c00eb77](https://www.github.com/nodejs/node-gyp/commit/c00eb778fc7dc27e4dab3a9219035ea20458b33b))
+* **wiki:** Updated node-levelup to node-leveldown (broken links) ([59668bb](https://www.github.com/nodejs/node-gyp/commit/59668bb0b904feccf3c09afa2fd37378c77af967))
+* **wiki:** Updated Updating npm's bundled node gyp (markdown) ([d314854](https://www.github.com/nodejs/node-gyp/commit/d31485415ef69d46effa6090c95698341965de1b))
+* **wiki:** Updated Updating npm's bundled node gyp (markdown) ([11858b0](https://www.github.com/nodejs/node-gyp/commit/11858b0655d1eee00c62ad628e719d4378803d14))
+* **wiki:** Updated Updating npm's bundled node gyp (markdown) ([33561e9](https://www.github.com/nodejs/node-gyp/commit/33561e9cbf5f4eb46111318503c77df2c6eb484a))
+* **wiki:** Updated Updating npm's bundled node gyp (markdown) ([4a7f2d0](https://www.github.com/nodejs/node-gyp/commit/4a7f2d0d869a65c99a78504976567017edadf657))
+* **wiki:** Updated Updating npm's bundled node gyp (markdown) ([979a706](https://www.github.com/nodejs/node-gyp/commit/979a7063b950c088a7f4896fc3a48e1d00dfd231))
+* **wiki:** Updated Updating npm's bundled node gyp (markdown) ([e50e04d](https://www.github.com/nodejs/node-gyp/commit/e50e04d7b6a3754ea0aa11fe8cef491b3bc5bdd4))
+
+## [8.1.0](https://www.github.com/nodejs/node-gyp/compare/v8.0.0...v8.1.0) (2021-05-28)
+
+
+### Features
+
+* **gyp:** update gyp to v0.9.1 ([#2402](https://www.github.com/nodejs/node-gyp/issues/2402)) ([814b1b0](https://www.github.com/nodejs/node-gyp/commit/814b1b0eda102afb9fc87e81638a9cf5b650bb10))
+
+
+### Miscellaneous
+
+* add `release-please-action` for automated releases ([#2395](https://www.github.com/nodejs/node-gyp/issues/2395)) ([07e9d7c](https://www.github.com/nodejs/node-gyp/commit/07e9d7c7ee80ba119ea760c635f72fd8e7efe198))
+
+
+### Core
+
+* fail gracefully if we can't find the username ([#2375](https://www.github.com/nodejs/node-gyp/issues/2375)) ([fca4795](https://www.github.com/nodejs/node-gyp/commit/fca4795512c67dc8420aaa0d913b5b89a4b147f3))
+* log as yes/no whether build dir was created ([#2370](https://www.github.com/nodejs/node-gyp/issues/2370)) ([245dee5](https://www.github.com/nodejs/node-gyp/commit/245dee5b62581309946872ae253226ea3a42c0e3))
+
+
+### Doc
+
+* fix v8.0.0 release date ([4b83c3d](https://www.github.com/nodejs/node-gyp/commit/4b83c3de7300457919d53f26d96ea9ad6f6bedd8))
+* remove redundant version info ([#2403](https://www.github.com/nodejs/node-gyp/issues/2403)) ([1423670](https://www.github.com/nodejs/node-gyp/commit/14236709de64b100a424396b91a5115639daa0ef))
+* Update README.md Visual Studio Community page polski to auto ([#2371](https://www.github.com/nodejs/node-gyp/issues/2371)) ([1b4697a](https://www.github.com/nodejs/node-gyp/commit/1b4697abf69ef574a48faf832a7098f4c6c224a5))
+
+## v8.0.0 2021-04-03
+
+* [[`0d8a6f1b19`](https://github.com/nodejs/node-gyp/commit/0d8a6f1b19)] - **ci**: update actions/setup-node to v2 (#2302) (Sora Morimoto) [#2302](https://github.com/nodejs/node-gyp/pull/2302)
+* [[`15a5c7d45b`](https://github.com/nodejs/node-gyp/commit/15a5c7d45b)] - **ci**: migrate deprecated grammar (#2285) (Jiawen Geng) [#2285](https://github.com/nodejs/node-gyp/pull/2285)
+* [[`06ddde27f9`](https://github.com/nodejs/node-gyp/commit/06ddde27f9)] - **deps**: sync mutual dependencies with npm (DeeDeeG) [#2348](https://github.com/nodejs/node-gyp/pull/2348)
+* [[`a5fd1f41e3`](https://github.com/nodejs/node-gyp/commit/a5fd1f41e3)] - **doc**: add downloads badge (#2352) (Jiawen Geng) [#2352](https://github.com/nodejs/node-gyp/pull/2352)
+* [[`cc1cbce056`](https://github.com/nodejs/node-gyp/commit/cc1cbce056)] - **doc**: update macOS\_Catalina.md (#2293) (iMrLopez) [#2293](https://github.com/nodejs/node-gyp/pull/2293)
+* [[`6287118fc4`](https://github.com/nodejs/node-gyp/commit/6287118fc4)] - **doc**: updated README.md to copy easily (#2281) (மனோஜ்குமார் பழனிச்சாமி) [#2281](https://github.com/nodejs/node-gyp/pull/2281)
+* [[`66c0f04467`](https://github.com/nodejs/node-gyp/commit/66c0f04467)] - **doc**: add missing `sudo` to Catalina doc (Karl Horky) [#2244](https://github.com/nodejs/node-gyp/pull/2244)
+* [[`0da2e0140d`](https://github.com/nodejs/node-gyp/commit/0da2e0140d)] - **gyp**: update gyp to v0.8.1 (#2355) (DeeDeeG) [#2355](https://github.com/nodejs/node-gyp/pull/2355)
+* [[`0093ec8646`](https://github.com/nodejs/node-gyp/commit/0093ec8646)] - **gyp**: Improve our flake8 linting tests (Christian Clauss) [#2356](https://github.com/nodejs/node-gyp/pull/2356)
+* [[`a78b584236`](https://github.com/nodejs/node-gyp/commit/a78b584236)] - **(SEMVER-MAJOR)** **gyp**: remove support for Python 2 (#2300) (Christian Clauss) [#2300](https://github.com/nodejs/node-gyp/pull/2300)
+* [[`c3c510d89e`](https://github.com/nodejs/node-gyp/commit/c3c510d89e)] - **gyp**: update gyp to v0.8.0 (#2318) (Christian Clauss) [#2318](https://github.com/nodejs/node-gyp/pull/2318)
+* [[`9e1397c52e`](https://github.com/nodejs/node-gyp/commit/9e1397c52e)] - **(SEMVER-MAJOR)** **gyp**: update gyp to v0.7.0 (#2284) (Jiawen Geng) [#2284](https://github.com/nodejs/node-gyp/pull/2284)
+* [[`1bd18f3e77`](https://github.com/nodejs/node-gyp/commit/1bd18f3e77)] - **(SEMVER-MAJOR)** **lib**: drop Python 2 support in find-python.js (#2333) (DeeDeeG) [#2333](https://github.com/nodejs/node-gyp/pull/2333)
+* [[`e81602ef55`](https://github.com/nodejs/node-gyp/commit/e81602ef55)] - **(SEMVER-MAJOR)** **lib**: migrate requests to fetch (#2220) (Matias Lopez) [#2220](https://github.com/nodejs/node-gyp/pull/2220)
+* [[`392b7760b4`](https://github.com/nodejs/node-gyp/commit/392b7760b4)] - **lib**: avoid changing process.config (#2322) (Michaël Zasso) [#2322](https://github.com/nodejs/node-gyp/pull/2322)
+
+## v7.1.2 2020-10-17
* [[`096e3aded5`](https://github.com/nodejs/node-gyp/commit/096e3aded5)] - **gyp**: update gyp to 0.6.2 (Myles Borins) [#2241](https://github.com/nodejs/node-gyp/pull/2241)
* [[`54f97cd243`](https://github.com/nodejs/node-gyp/commit/54f97cd243)] - **doc**: add cmd to reset `xcode-select` to initial state (Valera Rozuvan) [#2235](https://github.com/nodejs/node-gyp/pull/2235)
-v7.1.1 2020-10-15
-=================
+## v7.1.1 2020-10-15
This release restores the location of shared library builds to the pre-v7
location. In v7.0.0 until this release, shared library outputs were placed
@@ -22,8 +184,7 @@ We consider this a bug-fix rather than semver-major change.
* [[`2317dc400c`](https://github.com/nodejs/node-gyp/commit/2317dc400c)] - **ci**: switch to GitHub Actions (Shelley Vohr) [#2210](https://github.com/nodejs/node-gyp/pull/2210)
* [[`2cca9b74f7`](https://github.com/nodejs/node-gyp/commit/2cca9b74f7)] - **doc**: drop the --production flag for installing windows-build-tools (DeeDeeG) [#2206](https://github.com/nodejs/node-gyp/pull/2206)
-v7.1.0 2020-08-12
-=================
+## v7.1.0 2020-08-12
* [[`aaf33c3029`](https://github.com/nodejs/node-gyp/commit/aaf33c3029)] - **build**: add update-gyp script (Samuel Attard) [#2167](https://github.com/nodejs/node-gyp/pull/2167)
* * [[`3baa4e4172`](https://github.com/nodejs/node-gyp/commit/3baa4e4172)] - **(SEMVER-MINOR)** **gyp**: update gyp to 0.4.0 (Samuel Attard) [#2165](https://github.com/nodejs/node-gyp/pull/2165)
@@ -32,8 +193,7 @@ v7.1.0 2020-08-12
* * [[`4fc8ff179d`](https://github.com/nodejs/node-gyp/commit/4fc8ff179d)] - **doc**: silence curl for macOS Catalina acid test (Chia Wei Ong) [#2150](https://github.com/nodejs/node-gyp/pull/2150)
* * [[`7857cb2eb1`](https://github.com/nodejs/node-gyp/commit/7857cb2eb1)] - **deps**: increase "engines" to "node" : "\>= 10.12.0" (DeeDeeG) [#2153](https://github.com/nodejs/node-gyp/pull/2153)
-v7.0.0 2020-06-03
-=================
+## v7.0.0 2020-06-03
* [[`e18a61afc1`](https://github.com/nodejs/node-gyp/commit/e18a61afc1)] - **build**: shrink bloated addon binaries on windows (Shelley Vohr) [#2060](https://github.com/nodejs/node-gyp/pull/2060)
* [[`4937722cf5`](https://github.com/nodejs/node-gyp/commit/4937722cf5)] - **(SEMVER-MAJOR)** **deps**: replace mkdirp with {recursive} mkdir (Rod Vagg) [#2123](https://github.com/nodejs/node-gyp/pull/2123)
@@ -42,7 +202,7 @@ v7.0.0 2020-06-03
* [[`f7bfce96ed`](https://github.com/nodejs/node-gyp/commit/f7bfce96ed)] - **doc**: update acid test and introduce curl|bash test script (Dario Vladovic) [#2105](https://github.com/nodejs/node-gyp/pull/2105)
* [[`e529f3309d`](https://github.com/nodejs/node-gyp/commit/e529f3309d)] - **doc**: update README to reflect upgrade to gyp-next (Ujjwal Sharma) [#2092](https://github.com/nodejs/node-gyp/pull/2092)
* [[`9aed6286a3`](https://github.com/nodejs/node-gyp/commit/9aed6286a3)] - **doc**: give more attention to Catalina issues doc (Matheus Marchini) [#2134](https://github.com/nodejs/node-gyp/pull/2134)
-* [[`963f2a7b48`](https://github.com/nodejs/node-gyp/commit/963f2a7b48)] - **doc**: improve cataline discoverability for search engines (Matheus Marchini) [#2135](https://github.com/nodejs/node-gyp/pull/2135)
+* [[`963f2a7b48`](https://github.com/nodejs/node-gyp/commit/963f2a7b48)] - **doc**: improve Catalina discoverability for search engines (Matheus Marchini) [#2135](https://github.com/nodejs/node-gyp/pull/2135)
* [[`7b75af349b`](https://github.com/nodejs/node-gyp/commit/7b75af349b)] - **doc**: add macOS Catalina software update info (Karl Horky) [#2078](https://github.com/nodejs/node-gyp/pull/2078)
* [[`4f23c7bee2`](https://github.com/nodejs/node-gyp/commit/4f23c7bee2)] - **doc**: update link to the code of conduct (#2073) (Michaël Zasso) [#2073](https://github.com/nodejs/node-gyp/pull/2073)
* [[`473cfa283f`](https://github.com/nodejs/node-gyp/commit/473cfa283f)] - **doc**: note in README that Python 3.8 is supported (#2072) (Michaël Zasso) [#2072](https://github.com/nodejs/node-gyp/pull/2072)
@@ -60,8 +220,7 @@ v7.0.0 2020-06-03
* [[`741ab096d5`](https://github.com/nodejs/node-gyp/commit/741ab096d5)] - **test**: remove support for EOL versions of Node.js (Shelley Vohr)
* [[`ca86ef2539`](https://github.com/nodejs/node-gyp/commit/ca86ef2539)] - **test**: bump actions/checkout from v1 to v2 (BSKY) [#2063](https://github.com/nodejs/node-gyp/pull/2063)
-v6.1.0 2020-01-08
-=================
+## v6.1.0 2020-01-08
* [[`9a7dd16b76`](https://github.com/nodejs/node-gyp/commit/9a7dd16b76)] - **doc**: remove backticks from Python version list (Rod Vagg) [#2011](https://github.com/nodejs/node-gyp/pull/2011)
* [[`26cd6eaea6`](https://github.com/nodejs/node-gyp/commit/26cd6eaea6)] - **doc**: add GitHub Actions badge (#1994) (Rod Vagg) [#1994](https://github.com/nodejs/node-gyp/pull/1994)
@@ -82,8 +241,7 @@ v6.1.0 2020-01-08
* [[`0670e5189d`](https://github.com/nodejs/node-gyp/commit/0670e5189d)] - **test**: add header download test (Rod Vagg) [#1796](https://github.com/nodejs/node-gyp/pull/1796)
* [[`c506a6a150`](https://github.com/nodejs/node-gyp/commit/c506a6a150)] - **test**: configure proper devDir for invoking configure() (Rod Vagg) [#1796](https://github.com/nodejs/node-gyp/pull/1796)
-v6.0.1 2019-11-01
-=================
+## v6.0.1 2019-11-01
* [[`8ec2e681d5`](https://github.com/nodejs/node-gyp/commit/8ec2e681d5)] - **doc**: add macOS\_Catalina.md document (cclauss) [#1940](https://github.com/nodejs/node-gyp/pull/1940)
* [[`1b11be63cc`](https://github.com/nodejs/node-gyp/commit/1b11be63cc)] - **gyp**: python3 fixes: utf8 decode, use of 'None' in eval (Wilfried Goesgens) [#1925](https://github.com/nodejs/node-gyp/pull/1925)
@@ -100,8 +258,7 @@ v6.0.1 2019-11-01
* [[`032db2a2d0`](https://github.com/nodejs/node-gyp/commit/032db2a2d0)] - **lib,install**: always download SHA sums on Windows (Sam Hughes) [#1926](https://github.com/nodejs/node-gyp/pull/1926)
* [[`5a83630c33`](https://github.com/nodejs/node-gyp/commit/5a83630c33)] - **travis**: add Windows + Python 3.8 to the mix (Rod Vagg) [#1921](https://github.com/nodejs/node-gyp/pull/1921)
-v6.0.0 2019-10-04
-=================
+## v6.0.0 2019-10-04
* [[`dd0e97ef0b`](https://github.com/nodejs/node-gyp/commit/dd0e97ef0b)] - **(SEMVER-MAJOR)** **lib**: try to find `python` after `python3` (Sam Roberts) [#1907](https://github.com/nodejs/node-gyp/pull/1907)
* [[`f60ed47d14`](https://github.com/nodejs/node-gyp/commit/f60ed47d14)] - **travis**: add Python 3.5 and 3.6 tests on Linux (Christian Clauss) [#1903](https://github.com/nodejs/node-gyp/pull/1903)
@@ -109,8 +266,7 @@ v6.0.0 2019-10-04
* [[`3d1c60ab81`](https://github.com/nodejs/node-gyp/commit/3d1c60ab81)] - **(SEMVER-MAJOR)** **lib**: accept Python 3 by default (João Reis) [#1844](https://github.com/nodejs/node-gyp/pull/1844)
* [[`c6e3b65a23`](https://github.com/nodejs/node-gyp/commit/c6e3b65a23)] - **(SEMVER-MAJOR)** **lib**: raise the minimum Python version from 2.6 to 2.7 (cclauss) [#1818](https://github.com/nodejs/node-gyp/pull/1818)
-v5.1.1 2020-05-25
-=================
+## v5.1.1 2020-05-25
* [[`bdd3a79abe`](https://github.com/nodejs/node-gyp/commit/bdd3a79abe)] - **build**: shrink bloated addon binaries on windows (Shelley Vohr) [#2060](https://github.com/nodejs/node-gyp/pull/2060)
* [[`1f2ba75bc0`](https://github.com/nodejs/node-gyp/commit/1f2ba75bc0)] - **doc**: add macOS Catalina software update info (Karl Horky) [#2078](https://github.com/nodejs/node-gyp/pull/2078)
@@ -123,8 +279,7 @@ v5.1.1 2020-05-25
* [[`2b6fc3c8d6`](https://github.com/nodejs/node-gyp/commit/2b6fc3c8d6)] - **doc, bin**: stop suggesting opening node-gyp issues (Bartosz Sosnowski) [#2096](https://github.com/nodejs/node-gyp/pull/2096)
* [[`a876ae58ad`](https://github.com/nodejs/node-gyp/commit/a876ae58ad)] - **test**: bump actions/checkout from v1 to v2 (BSKY) [#2063](https://github.com/nodejs/node-gyp/pull/2063)
-v5.1.0 2020-02-05
-=================
+## v5.1.0 2020-02-05
* [[`f37a8b40d0`](https://github.com/nodejs/node-gyp/commit/f37a8b40d0)] - **doc**: add GitHub Actions badge (#1994) (Rod Vagg) [#1994](https://github.com/nodejs/node-gyp/pull/1994)
* [[`cb3f6aae5e`](https://github.com/nodejs/node-gyp/commit/cb3f6aae5e)] - **doc**: update macOS\_Catalina.md (#1992) (James Home) [#1992](https://github.com/nodejs/node-gyp/pull/1992)
@@ -141,13 +296,11 @@ v5.1.0 2020-02-05
* [[`32c8744b34`](https://github.com/nodejs/node-gyp/commit/32c8744b34)] - **test**: fix macOS Travis on Python 2.7 & 3.7 (Christian Clauss) [#1979](https://github.com/nodejs/node-gyp/pull/1979)
* [[`fd4b1351e4`](https://github.com/nodejs/node-gyp/commit/fd4b1351e4)] - **test**: initial Github Actions with Ubuntu & macOS (Christian Clauss) [#1985](https://github.com/nodejs/node-gyp/pull/1985)
-v5.0.7 2019-12-16
-=================
+## v5.0.7 2019-12-16
Republish of v5.0.6 with unnecessary tarball removed from pack file.
-v5.0.6 2019-12-16
-=================
+## v5.0.6 2019-12-16
* [[`cdec00286f`](https://github.com/nodejs/node-gyp/commit/cdec00286f)] - **doc**: adjustments to the README.md for new users (Dan Pike) [#1919](https://github.com/nodejs/node-gyp/pull/1919)
* [[`b7c8233ef2`](https://github.com/nodejs/node-gyp/commit/b7c8233ef2)] - **test**: fix Python unittests (cclauss) [#1961](https://github.com/nodejs/node-gyp/pull/1961)
@@ -168,8 +321,7 @@ v5.0.6 2019-12-16
* [[`7edf7658fa`](https://github.com/nodejs/node-gyp/commit/7edf7658fa)] - **lib,install**: always download SHA sums on Windows (Sam Hughes) [#1926](https://github.com/nodejs/node-gyp/pull/1926)
* [[`69056d04fe`](https://github.com/nodejs/node-gyp/commit/69056d04fe)] - **travis**: add Windows + Python 3.8 to the mix (Rod Vagg) [#1921](https://github.com/nodejs/node-gyp/pull/1921)
-v5.0.5 2019-10-04
-=================
+## v5.0.5 2019-10-04
* [[`3891391746`](https://github.com/nodejs/node-gyp/commit/3891391746)] - **doc**: reconcile README with Python 3 compat changes (Rod Vagg) [#1911](https://github.com/nodejs/node-gyp/pull/1911)
* [[`07f81f1920`](https://github.com/nodejs/node-gyp/commit/07f81f1920)] - **lib**: accept Python 3 after Python 2 (Sam Roberts) [#1910](https://github.com/nodejs/node-gyp/pull/1910)
@@ -181,8 +333,7 @@ v5.0.5 2019-10-04
* [[`53ee7dfe89`](https://github.com/nodejs/node-gyp/commit/53ee7dfe89)] - **gyp**: fix undefined name: cflags --\> ldflags (Christian Clauss) [#1901](https://github.com/nodejs/node-gyp/pull/1901)
* [[`5871dcf6c9`](https://github.com/nodejs/node-gyp/commit/5871dcf6c9)] - **src,win**: add support for fetching arm64 node.lib (Richard Townsend) [#1875](https://github.com/nodejs/node-gyp/pull/1875)
-v5.0.4 2019-09-27
-=================
+## v5.0.4 2019-09-27
* [[`1236869ffc`](https://github.com/nodejs/node-gyp/commit/1236869ffc)] - **gyp**: modify XcodeVersion() to convert "4.2" to "0420" and "10.0" to "1000" (Christian Clauss) [#1895](https://github.com/nodejs/node-gyp/pull/1895)
* [[`36638afe48`](https://github.com/nodejs/node-gyp/commit/36638afe48)] - **gyp**: more decode stdout on Python 3 (cclauss) [#1894](https://github.com/nodejs/node-gyp/pull/1894)
@@ -205,8 +356,7 @@ v5.0.4 2019-09-27
* [[`fa0ed4aa42`](https://github.com/nodejs/node-gyp/commit/fa0ed4aa42)] - **build**: more Python 3 compat, replace compile with ast (cclauss) [#1820](https://github.com/nodejs/node-gyp/pull/1820)
* [[`18d5c7c9d0`](https://github.com/nodejs/node-gyp/commit/18d5c7c9d0)] - **win,src**: update win\_delay\_load\_hook.cc to work with /clr (Ivan Petrovic) [#1819](https://github.com/nodejs/node-gyp/pull/1819)
-v5.0.3 2019-07-17
-=================
+## v5.0.3 2019-07-17
* [[`66ad305775`](https://github.com/nodejs/node-gyp/commit/66ad305775)] - **python**: accept Python 3 conditionally (João Reis) [#1815](https://github.com/nodejs/node-gyp/pull/1815)
* [[`7e7fce3fed`](https://github.com/nodejs/node-gyp/commit/7e7fce3fed)] - **python**: move Python detection to its own file (João Reis) [#1815](https://github.com/nodejs/node-gyp/pull/1815)
@@ -217,8 +367,7 @@ v5.0.3 2019-07-17
* [[`24109148df`](https://github.com/nodejs/node-gyp/commit/24109148df)] - **test**: downgrade to tap@^12 for continued Node 6 support (Rod Vagg) [#1808](https://github.com/nodejs/node-gyp/pull/1808)
* [[`656117cc4a`](https://github.com/nodejs/node-gyp/commit/656117cc4a)] - **win**: make VS path match case-insensitive (João Reis) [#1806](https://github.com/nodejs/node-gyp/pull/1806)
-v5.0.2 2019-06-27
-=================
+## v5.0.2 2019-06-27
* [[`2761afbf73`](https://github.com/nodejs/node-gyp/commit/2761afbf73)] - **build,test**: add duplicate symbol test (Gabriel Schulhof) [#1689](https://github.com/nodejs/node-gyp/pull/1689)
* [[`82f129d6de`](https://github.com/nodejs/node-gyp/commit/82f129d6de)] - **gyp**: replace optparse to argparse (KiYugadgeter) [#1591](https://github.com/nodejs/node-gyp/pull/1591)
@@ -237,14 +386,12 @@ v5.0.2 2019-06-27
* [[`1597c84aad`](https://github.com/nodejs/node-gyp/commit/1597c84aad)] - **test**: use Travis CI to run tests on every pull request (cclauss) [#1752](https://github.com/nodejs/node-gyp/pull/1752)
* [[`dd9bf929ac`](https://github.com/nodejs/node-gyp/commit/dd9bf929ac)] - **zos**: update compiler options (Shuowang (Wayne) Zhang) [#1768](https://github.com/nodejs/node-gyp/pull/1768)
-v5.0.1 2019-06-20
-=================
+## v5.0.1 2019-06-20
* [[`e3861722ed`](https://github.com/nodejs/node-gyp/commit/e3861722ed)] - **doc**: document --jobs max (David Sanders) [#1770](https://github.com/nodejs/node-gyp/pull/1770)
* [[`1cfdb28886`](https://github.com/nodejs/node-gyp/commit/1cfdb28886)] - **lib**: reintroduce support for iojs file naming for releases \>= 1 && \< 4 (Samuel Attard) [#1777](https://github.com/nodejs/node-gyp/pull/1777)
-v5.0.0 2019-06-13
-=================
+## v5.0.0 2019-06-13
* [[`8a83972743`](https://github.com/nodejs/node-gyp/commit/8a83972743)] - **(SEMVER-MAJOR)** **bin**: follow XDG OS conventions for storing data (Selwyn) [#1570](https://github.com/nodejs/node-gyp/pull/1570)
* [[`9e46872ea3`](https://github.com/nodejs/node-gyp/commit/9e46872ea3)] - **bin,lib**: remove extra comments/lines/spaces (Jon Moss) [#1508](https://github.com/nodejs/node-gyp/pull/1508)
@@ -282,16 +429,14 @@ v5.0.0 2019-06-13
* [[`721dc7d314`](https://github.com/nodejs/node-gyp/commit/721dc7d314)] - Add ARM64 to MSBuild /Platform logic (Jon Kunkee) [#1655](https://github.com/nodejs/node-gyp/pull/1655)
* [[`a5b7410497`](https://github.com/nodejs/node-gyp/commit/a5b7410497)] - Add ESLint no-unused-vars rule (Jon Moss) [#1497](https://github.com/nodejs/node-gyp/pull/1497)
-v4.0.0 2019-04-24
-=================
+## v4.0.0 2019-04-24
* [[`ceed5cbe10`](https://github.com/nodejs/node-gyp/commit/ceed5cbe10)] - **deps**: updated tar package version to 4.4.8 (Pobegaylo Maksim) [#1713](https://github.com/nodejs/node-gyp/pull/1713)
* [[`374519e066`](https://github.com/nodejs/node-gyp/commit/374519e066)] - **(SEMVER-MAJOR)** Upgrade to tar v3 (isaacs) [#1212](https://github.com/nodejs/node-gyp/pull/1212)
* [[`e6699d13cd`](https://github.com/nodejs/node-gyp/commit/e6699d13cd)] - **test**: fix addon test for Node.js 12 and V8 7.4 (Richard Lau) [#1705](https://github.com/nodejs/node-gyp/pull/1705)
* [[`0c6bf530a0`](https://github.com/nodejs/node-gyp/commit/0c6bf530a0)] - **lib**: use print() for python version detection (GreenAddress) [#1534](https://github.com/nodejs/node-gyp/pull/1534)
-v3.8.0 2018-08-09
-=================
+## v3.8.0 2018-08-09
* [[`c5929cb4fe`](https://github.com/nodejs/node-gyp/commit/c5929cb4fe)] - **doc**: update Xcode preferences tab name. (Ivan Daniluk) [#1330](https://github.com/nodejs/node-gyp/pull/1330)
* [[`8b488da8b9`](https://github.com/nodejs/node-gyp/commit/8b488da8b9)] - **doc**: update link to commit guidelines (Jonas Hermsmeier) [#1456](https://github.com/nodejs/node-gyp/pull/1456)
@@ -310,8 +455,7 @@ v3.8.0 2018-08-09
* [[`969447c5bd`](https://github.com/nodejs/node-gyp/commit/969447c5bd)] - **deps**: bump request to 2.8.7, fixes heok/hawk issues (Rohit Hazra) [#1492](https://github.com/nodejs/node-gyp/pull/1492)
* [[`340403ccfe`](https://github.com/nodejs/node-gyp/commit/340403ccfe)] - **win**: improve parsing of SDK version (Alessandro Vergani) [#1516](https://github.com/nodejs/node-gyp/pull/1516)
-v3.7.0 2018-06-08
-=================
+## v3.7.0 2018-06-08
* [[`84cea7b30d`](https://github.com/nodejs/node-gyp/commit/84cea7b30d)] - Remove unused gyp test scripts. (Ben Noordhuis) [#1458](https://github.com/nodejs/node-gyp/pull/1458)
* [[`0540e4ec63`](https://github.com/nodejs/node-gyp/commit/0540e4ec63)] - **gyp**: escape spaces in filenames in make generator (Jeff Senn) [#1436](https://github.com/nodejs/node-gyp/pull/1436)
@@ -335,14 +479,12 @@ v3.7.0 2018-06-08
* [[`f27599193a`](https://github.com/nodejs/node-gyp/commit/f27599193a)] - **gyp**: update xml string encoding conversion (Liu Chao) [#1203](https://github.com/nodejs/node-gyp/pull/1203)
* [[`0a07e481f7`](https://github.com/nodejs/node-gyp/commit/0a07e481f7)] - **configure**: don't set ensure if tarball is set (Gibson Fahnestock) [#1220](https://github.com/nodejs/node-gyp/pull/1220)
-v3.6.3 2018-06-08
-=================
+## v3.6.3 2018-06-08
* [[`90cd2e8da9`](https://github.com/nodejs/node-gyp/commit/90cd2e8da9)] - **gyp**: fix regex to match multi-digit versions (Jonas Hermsmeier) [#1455](https://github.com/nodejs/node-gyp/pull/1455)
* [[`7900122337`](https://github.com/nodejs/node-gyp/commit/7900122337)] - deps: pin `request` version range (Refael Ackerman) [#1300](https://github.com/nodejs/node-gyp/pull/1300)
-v3.6.2 2017-06-01
-=================
+## v3.6.2 2017-06-01
* [[`72afdd62cd`](https://github.com/nodejs/node-gyp/commit/72afdd62cd)] - **build**: rename copyNodeLib() to doBuild() (Liu Chao) [#1206](https://github.com/nodejs/node-gyp/pull/1206)
* [[`bad903ac70`](https://github.com/nodejs/node-gyp/commit/bad903ac70)] - **win**: more robust parsing of SDK version (Refael Ackermann) [#1198](https://github.com/nodejs/node-gyp/pull/1198)
@@ -351,8 +493,7 @@ v3.6.2 2017-06-01
* [[`0913b2dd99`](https://github.com/nodejs/node-gyp/commit/0913b2dd99)] - **build, win**: use target_arch to link with node.lib (Pavel Medvedev) [#964](https://github.com/nodejs/node-gyp/pull/964)
* [[`c307b302f7`](https://github.com/nodejs/node-gyp/commit/c307b302f7)] - **doc**: blorb about setting `npm_config_OPTION_NAME` (Refael Ackermann) [#1185](https://github.com/nodejs/node-gyp/pull/1185)
-v3.6.1 2017-04-30
-=================
+## v3.6.1 2017-04-30
* [[`49801716c2`](https://github.com/nodejs/node-gyp/commit/49801716c2)] - **test**: fix test-find-python on v0.10.x buildbot. (Ben Noordhuis) [#1172](https://github.com/nodejs/node-gyp/pull/1172)
* [[`a83a3801fc`](https://github.com/nodejs/node-gyp/commit/a83a3801fc)] - **test**: fix test/test-configure-python on AIX (Richard Lau) [#1131](https://github.com/nodejs/node-gyp/pull/1131)
@@ -360,8 +501,7 @@ v3.6.1 2017-04-30
* [[`c09cf7671e`](https://github.com/nodejs/node-gyp/commit/c09cf7671e)] - **doc**: add a note for using `configure` on Windows (Vse Mozhet Byt) [#1152](https://github.com/nodejs/node-gyp/pull/1152)
* [[`da9cb5f411`](https://github.com/nodejs/node-gyp/commit/da9cb5f411)] - Delete superfluous .patch files. (Ben Noordhuis) [#1122](https://github.com/nodejs/node-gyp/pull/1122)
-v3.6.0 2017-03-16
-=================
+## v3.6.0 2017-03-16
* [[`ae141e1906`](https://github.com/nodejs/node-gyp/commit/ae141e1906)] - **win**: find and setup for VS2017 (Refael Ackermann) [#1130](https://github.com/nodejs/node-gyp/pull/1130)
* [[`ec5fc36a80`](https://github.com/nodejs/node-gyp/commit/ec5fc36a80)] - Add support to build node.js with chakracore for ARM. (Kunal Pathak) [#873](https://github.com/nodejs/node-gyp/pull/873)
@@ -369,9 +509,7 @@ v3.6.0 2017-03-16
* [[`93d7fa83c8`](https://github.com/nodejs/node-gyp/commit/93d7fa83c8)] - Upgrade semver dependency. (Ben Noordhuis) [#1107](https://github.com/nodejs/node-gyp/pull/1107)
* [[`ff9a6fadfd`](https://github.com/nodejs/node-gyp/commit/ff9a6fadfd)] - Update link of gyp as Google code is shutting down (Peter Dave Hello) [#1061](https://github.com/nodejs/node-gyp/pull/1061)
-
-v3.5.0 2017-01-10
-=================
+## v3.5.0 2017-01-10
* [[`762d19a39e`](https://github.com/nodejs/node-gyp/commit/762d19a39e)] - \[doc\] merge History.md and CHANGELOG.md (Rod Vagg)
* [[`80fc5c3d31`](https://github.com/nodejs/node-gyp/commit/80fc5c3d31)] - Fix deprecated dependency warning (Simone Primarosa) [#1069](https://github.com/nodejs/node-gyp/pull/1069)
@@ -385,8 +523,7 @@ v3.5.0 2017-01-10
* [[`9c8d275526`](https://github.com/nodejs/node-gyp/commit/9c8d275526)] - Add --devdir flag. (Ben Noordhuis) [#916](https://github.com/nodejs/node-gyp/pull/916)
* [[`f6eab1f9e4`](https://github.com/nodejs/node-gyp/commit/f6eab1f9e4)] - **doc**: add windows-build-tools to readme (Felix Rieseberg) [#970](https://github.com/nodejs/node-gyp/pull/970)
-v3.4.0 2016-06-28
-=================
+## v3.4.0 2016-06-28
* [[`ce5fd04e94`](https://github.com/nodejs/node-gyp/commit/ce5fd04e94)] - **deps**: update minimatch version (delphiactual) [#961](https://github.com/nodejs/node-gyp/pull/961)
* [[`77383ddd85`](https://github.com/nodejs/node-gyp/commit/77383ddd85)] - Replace fs.accessSync call to fs.statSync (Richard Lau) [#955](https://github.com/nodejs/node-gyp/pull/955)
@@ -406,13 +543,11 @@ v3.4.0 2016-06-28
* [[`625c1515f9`](https://github.com/nodejs/node-gyp/commit/625c1515f9)] - **gyp**: inherit CC/CXX for CC/CXX.host (Johan Bergström) [#908](https://github.com/nodejs/node-gyp/pull/908)
* [[`3bcb1720e4`](https://github.com/nodejs/node-gyp/commit/3bcb1720e4)] - Add support for the Python launcher on Windows (Patrick Westerhoff) [#894](https://github.com/nodejs/node-gyp/pull/894
-v3.3.1 2016-03-04
-=================
+## v3.3.1 2016-03-04
* [[`a981ef847a`](https://github.com/nodejs/node-gyp/commit/a981ef847a)] - **gyp**: fix android generator (Robert Chiras) [#889](https://github.com/nodejs/node-gyp/pull/889)
-v3.3.0 2016-02-16
-=================
+## v3.3.0 2016-02-16
* [[`818d854a4d`](https://github.com/nodejs/node-gyp/commit/818d854a4d)] - Introduce NODEJS_ORG_MIRROR and IOJS_ORG_MIRROR (Rod Vagg) [#878](https://github.com/nodejs/node-gyp/pull/878)
* [[`d1e4cc4b62`](https://github.com/nodejs/node-gyp/commit/d1e4cc4b62)] - **(SEMVER-MINOR)** Download headers tarball for ~0.12.10 || ~0.10.42 (Rod Vagg) [#877](https://github.com/nodejs/node-gyp/pull/877)
@@ -421,14 +556,12 @@ v3.3.0 2016-02-16
* [[`8c4b0ffa50`](https://github.com/nodejs/node-gyp/commit/8c4b0ffa50)] - **(SEMVER-MINOR)** Add --cafile command line option. (Ben Noordhuis) [#837](https://github.com/nodejs/node-gyp/pull/837)
* [[`b3ad43498e`](https://github.com/nodejs/node-gyp/commit/b3ad43498e)] - **(SEMVER-MINOR)** Make download() function testable. (Ben Noordhuis) [#837](https://github.com/nodejs/node-gyp/pull/837)
-v3.2.1 2015-12-03
-=================
+## v3.2.1 2015-12-03
* [[`ab89b477c4`](https://github.com/nodejs/node-gyp/commit/ab89b477c4)] - Upgrade gyp to b3cef02. (Ben Noordhuis) [#831](https://github.com/nodejs/node-gyp/pull/831)
* [[`90078ecb17`](https://github.com/nodejs/node-gyp/commit/90078ecb17)] - Define WIN32_LEAN_AND_MEAN conditionally. (Ben Noordhuis) [#824](https://github.com/nodejs/node-gyp/pull/824)
-v3.2.0 2015-11-25
-=================
+## v3.2.0 2015-11-25
* [[`268f1ca4c7`](https://github.com/nodejs/node-gyp/commit/268f1ca4c7)] - Use result of `which` when searching for python. (Refael Ackermann) [#668](https://github.com/nodejs/node-gyp/pull/668)
* [[`817ed9bd78`](https://github.com/nodejs/node-gyp/commit/817ed9bd78)] - Add test for python executable search logic. (Ben Noordhuis) [#756](https://github.com/nodejs/node-gyp/pull/756)
@@ -437,8 +570,7 @@ v3.2.0 2015-11-25
* [[`a8d441a0a2`](https://github.com/nodejs/node-gyp/commit/a8d441a0a2)] - Update README for Windows 10 support. (Jason Williams) [#766](https://github.com/nodejs/node-gyp/pull/766)
* [[`d1d6015276`](https://github.com/nodejs/node-gyp/commit/d1d6015276)] - Update broken links and switch to HTTPS. (andrew morton)
-v3.1.0 2015-11-14
-=================
+## v3.1.0 2015-11-14
* [[`9049241f91`](https://github.com/nodejs/node-gyp/commit/9049241f91)] - **gyp**: don't use links at all, just copy the files instead (Nathan Zadoks)
* [[`8ef90348d1`](https://github.com/nodejs/node-gyp/commit/8ef90348d1)] - **gyp**: apply https://codereview.chromium.org/11361103/ (Nathan Rajlich)
@@ -448,24 +580,20 @@ v3.1.0 2015-11-14
* [[`2ac7de02c4`](https://github.com/nodejs/node-gyp/commit/2ac7de02c4)] - Fix infinite loop with zero-length options. (Ben Noordhuis) [#745](https://github.com/nodejs/node-gyp/pull/745)
* [[`101bed639b`](https://github.com/nodejs/node-gyp/commit/101bed639b)] - This platform value came from debian package, and now the value (Jérémy Lal) [#738](https://github.com/nodejs/node-gyp/pull/738)
-v3.0.3 2015-09-14
-=================
+## v3.0.3 2015-09-14
* [[`ad827cda30`](https://github.com/nodejs/node-gyp/commit/ad827cda30)] - tarballUrl global and && when checking for iojs (Lars-Magnus Skog) [#729](https://github.com/nodejs/node-gyp/pull/729)
-v3.0.2 2015-09-12
-=================
+## v3.0.2 2015-09-12
* [[`6e8c3bf3c6`](https://github.com/nodejs/node-gyp/commit/6e8c3bf3c6)] - add back support for passing additional cmdline args (Rod Vagg) [#723](https://github.com/nodejs/node-gyp/pull/723)
* [[`ff82f2f3b9`](https://github.com/nodejs/node-gyp/commit/ff82f2f3b9)] - fixed broken link in docs to Visual Studio 2013 download (simon-p-r) [#722](https://github.com/nodejs/node-gyp/pull/722)
-v3.0.1 2015-09-08
-=================
+## v3.0.1 2015-09-08
* [[`846337e36b`](https://github.com/nodejs/node-gyp/commit/846337e36b)] - normalise versions for target == this comparison (Rod Vagg) [#716](https://github.com/nodejs/node-gyp/pull/716)
-v3.0.0 2015-09-08
-=================
+## v3.0.0 2015-09-08
* [[`9720d0373c`](https://github.com/nodejs/node-gyp/commit/9720d0373c)] - remove node_modules from tree (Rod Vagg) [#711](https://github.com/nodejs/node-gyp/pull/711)
* [[`6dcf220db7`](https://github.com/nodejs/node-gyp/commit/6dcf220db7)] - test version major directly, don't use semver.satisfies() (Rod Vagg) [#711](https://github.com/nodejs/node-gyp/pull/711)
@@ -477,8 +605,7 @@ v3.0.0 2015-09-08
* [[`85ed107565`](https://github.com/nodejs/node-gyp/commit/85ed107565)] - Merge pull request #664 from othiym23/othiym23/allow-semver-5 (Nathan Rajlich)
* [[`0c720d234c`](https://github.com/nodejs/node-gyp/commit/0c720d234c)] - allow semver@5 (Forrest L Norvell)
-2.0.2 / 2015-07-14
-==================
+## 2.0.2 / 2015-07-14
* Use HTTPS for dist url (#656, @SonicHedgehog)
* Merge pull request #648 from nevosegal/master
@@ -491,14 +618,12 @@ v3.0.0 2015-09-08
src/win_delay_load_hook.c, and fixes of the long relative path issue on Win32.
Fixes #636 (#637, @lygstate).
-2.0.1 / 2015-05-28
-==================
+## 2.0.1 / 2015-05-28
* configure: try/catch the semver range.test() call
* README: update for visual studio 2013 (#510, @samccone)
-2.0.0 / 2015-05-24
-==================
+## 2.0.0 / 2015-05-24
* configure: check for python2 executable by default, fallback to python
* configure: don't clobber existing $PYTHONPATH
diff --git a/deps/npm/node_modules/node-gyp/README.md b/deps/npm/node_modules/node-gyp/README.md
index e06b01a7397..11ba7ab6935 100644
--- a/deps/npm/node_modules/node-gyp/README.md
+++ b/deps/npm/node_modules/node-gyp/README.md
@@ -1,6 +1,7 @@
# `node-gyp` - Node.js native addon build tool
[![Build Status](https://github.com/nodejs/node-gyp/workflows/Tests/badge.svg?branch=master)](https://github.com/nodejs/node-gyp/actions?query=workflow%3ATests+branch%3Amaster)
+![npm](https://img.shields.io/npm/dm/node-gyp)
`node-gyp` is a cross-platform command-line tool written in Node.js for
compiling native addon modules for Node.js. It contains a vendored copy of the
@@ -23,14 +24,14 @@ etc.), regardless of what version of Node.js is actually installed on your syste
You can install `node-gyp` using `npm`:
``` bash
-$ npm install -g node-gyp
+npm install -g node-gyp
```
Depending on your operating system, you will need to install:
### On Unix
- * Python v2.7, v3.5, v3.6, v3.7, or v3.8
+ * Python v3.6, v3.7, v3.8, or v3.9
* `make`
* A proper C/C++ compiler toolchain, like [GCC](https://gcc.gnu.org)
@@ -38,7 +39,7 @@ Depending on your operating system, you will need to install:
**ATTENTION**: If your Mac has been _upgraded_ to macOS Catalina (10.15), please read [macOS_Catalina.md](macOS_Catalina.md).
- * Python v2.7, v3.5, v3.6, v3.7, or v3.8
+ * Python v3.6, v3.7, v3.8, or v3.9
* [Xcode](https://developer.apple.com/xcode/download/)
* You also need to install the `XCode Command Line Tools` by running `xcode-select --install`. Alternatively, if you already have the full Xcode installed, you can find them under the menu `Xcode -> Open Developer Tool -> More Developer Tools...`. This step will install `clang`, `clang++`, and `make`.
@@ -46,15 +47,9 @@ Depending on your operating system, you will need to install:
Install the current version of Python from the [Microsoft Store package](https://docs.python.org/3/using/windows.html#the-microsoft-store-package).
-#### Option 1
-
-Install all the required tools and configurations using Microsoft's [windows-build-tools](https://github.com/felixrieseberg/windows-build-tools) using `npm install --global windows-build-tools` from an elevated PowerShell or CMD.exe (run as Administrator).
-
-#### Option 2
-
Install tools and configuration manually:
* Install Visual C++ Build Environment: [Visual Studio Build Tools](https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools)
- (using "Visual C++ build tools" workload) or [Visual Studio 2017 Community](https://visualstudio.microsoft.com/pl/thank-you-downloading-visual-studio/?sku=Community)
+ (using "Visual C++ build tools" workload) or [Visual Studio Community](https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community)
(using the "Desktop development with C++" workload)
* Launch cmd, `npm config set msvs_version 2017`
@@ -64,14 +59,14 @@ Install tools and configuration manually:
### Configuring Python Dependency
-`node-gyp` requires that you have installed a compatible version of Python, one of: v2.7, v3.5, v3.6,
-v3.7, or v3.8. If you have multiple Python versions installed, you can identify which Python
+`node-gyp` requires that you have installed a compatible version of Python, one of: v3.6, v3.7,
+v3.8, or v3.9. If you have multiple Python versions installed, you can identify which Python
version `node-gyp` should use in one of the following ways:
1. by setting the `--python` command-line option, e.g.:
``` bash
-$ node-gyp <command> --python /path/to/executable/python
+node-gyp <command> --python /path/to/executable/python
```
2. If `node-gyp` is called by way of `npm`, *and* you have multiple versions of
@@ -79,7 +74,7 @@ Python installed, then you can set `npm`'s 'python' config key to the appropriat
value:
``` bash
-$ npm config set python /path/to/executable/python
+npm config set python /path/to/executable/python
```
3. If the `PYTHON` environment variable is set to the path of a Python executable,
@@ -95,20 +90,20 @@ searching will be done.
To compile your native addon, first go to its root directory:
``` bash
-$ cd my_node_addon
+cd my_node_addon
```
The next step is to generate the appropriate project build files for the current
platform. Use `configure` for that:
``` bash
-$ node-gyp configure
+node-gyp configure
```
Auto-detection fails for Visual C++ Build Tools 2015, so `--msvs_version=2015`
needs to be added (not needed when run by npm as configured above):
``` bash
-$ node-gyp configure --msvs_version=2015
+node-gyp configure --msvs_version=2015
```
__Note__: The `configure` step looks for a `binding.gyp` file in the current
@@ -118,7 +113,7 @@ Now you will have either a `Makefile` (on Unix platforms) or a `vcxproj` file
(on Windows) in the `build/` directory. Next, invoke the `build` command:
``` bash
-$ node-gyp build
+node-gyp build
```
Now you have your compiled `.node` bindings file! The compiled bindings end up
@@ -149,13 +144,15 @@ A barebones `gyp` file appropriate for building a Node.js addon could look like:
## Further reading
+The **[docs](./docs/)** directory contains additional documentation on specific node-gyp topics that may be useful if you are experiencing problems installing or building addons using node-gyp.
+
Some additional resources for Node.js native addons and writing `gyp` configuration files:
* ["Going Native" a nodeschool.io tutorial](http://nodeschool.io/#goingnative)
* ["Hello World" node addon example](https://github.com/nodejs/node/tree/master/test/addons/hello-world)
* [gyp user documentation](https://gyp.gsrc.io/docs/UserDocumentation.md)
* [gyp input format reference](https://gyp.gsrc.io/docs/InputFormatReference.md)
- * [*"binding.gyp" files out in the wild* wiki page](https://github.com/nodejs/node-gyp/wiki/%22binding.gyp%22-files-out-in-the-wild)
+ * [*"binding.gyp" files out in the wild* wiki page](./docs/binding.gyp-files-in-the-wild.md)
## Commands
@@ -214,13 +211,13 @@ For example, to set `devdir` equal to `/tmp/.gyp`, you would:
Run this on Unix:
```bash
-$ export npm_config_devdir=/tmp/.gyp
+export npm_config_devdir=/tmp/.gyp
```
Or this on Windows:
```console
-> set npm_config_devdir=c:\temp\.gyp
+set npm_config_devdir=c:\temp\.gyp
```
### `npm` configuration
@@ -230,7 +227,7 @@ Use the form `OPTION_NAME` for any of the command options listed above.
For example, to set `devdir` equal to `/tmp/.gyp`, you would run:
```bash
-$ npm config set [--global] devdir /tmp/.gyp
+npm config set [--global] devdir /tmp/.gyp
```
**Note:** Configuration set via `npm` will only be used when `node-gyp`
diff --git a/deps/npm/node_modules/node-gyp/docs/Common-issues.md b/deps/npm/node_modules/node-gyp/docs/Common-issues.md
new file mode 100644
index 00000000000..c6686cd5217
--- /dev/null
+++ b/deps/npm/node_modules/node-gyp/docs/Common-issues.md
@@ -0,0 +1,13 @@
+## Python Issues OSX
+
+Make sure you are using the native Python version in OSX. If you use a MacPorts of HomeBrew version, you may run into problems.
+
+If you have issues with `execvp`, be sure to check your `$PYTHON` environment variable. If it is not set to the native version, unset it and try again.
+
+Notes: https://gist.github.com/erichocean/5177582
+
+## npm ERR! `node-gyp rebuild`(Windows)
+* just install the build tools from [here](https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools)
+Please note the version as is required in below command e.g **2017**
+* Launch cmd, run `npm config set msvs_version 2017`
+* close and open new CMD/terminal and all is well :100:
diff --git a/deps/npm/node_modules/node-gyp/docs/Error-pre-versions-of-node-cannot-be-installed.md b/deps/npm/node_modules/node-gyp/docs/Error-pre-versions-of-node-cannot-be-installed.md
new file mode 100644
index 00000000000..c1e1158d701
--- /dev/null
+++ b/deps/npm/node_modules/node-gyp/docs/Error-pre-versions-of-node-cannot-be-installed.md
@@ -0,0 +1,94 @@
+When using `node-gyp` you might see an error like this when attempting to compile/install a node.js native addon:
+
+```
+$ npm install bcrypt
+npm http GET https://registry.npmjs.org/bcrypt/0.7.5
+npm http 304 https://registry.npmjs.org/bcrypt/0.7.5
+npm http GET https://registry.npmjs.org/bindings/1.0.0
+npm http 304 https://registry.npmjs.org/bindings/1.0.0
+
+> bcrypt@0.7.5 install /home/ubuntu/public/song-swap/node_modules/bcrypt
+> node-gyp rebuild
+
+gyp ERR! configure error
+gyp ERR! stack Error: "pre" versions of node cannot be installed, use the --nodedir flag instead
+gyp ERR! stack at install (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/install.js:69:16)
+gyp ERR! stack at Object.self.commands.(anonymous function) [as install] (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/node-gyp.js:56:37)
+gyp ERR! stack at getNodeDir (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:219:20)
+gyp ERR! stack at /usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:105:9
+gyp ERR! stack at ChildProcess.exithandler (child_process.js:630:7)
+gyp ERR! stack at ChildProcess.EventEmitter.emit (events.js:99:17)
+gyp ERR! stack at maybeClose (child_process.js:730:16)
+gyp ERR! stack at Process.ChildProcess._handle.onexit (child_process.js:797:5)
+gyp ERR! System Linux 3.5.0-21-generic
+gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
+gyp ERR! cwd /home/ubuntu/public/song-swap/node_modules/bcrypt
+gyp ERR! node -v v0.11.2-pre
+gyp ERR! node-gyp -v v0.9.5
+gyp ERR! not ok
+npm ERR! bcrypt@0.7.5 install: `node-gyp rebuild`
+npm ERR! `sh "-c" "node-gyp rebuild"` failed with 1
+npm ERR!
+npm ERR! Failed at the bcrypt@0.7.5 install script.
+npm ERR! This is most likely a problem with the bcrypt package,
+npm ERR! not with npm itself.
+npm ERR! Tell the author that this fails on your system:
+npm ERR! node-gyp rebuild
+npm ERR! You can get their info via:
+npm ERR! npm owner ls bcrypt
+npm ERR! There is likely additional logging output above.
+
+npm ERR! System Linux 3.5.0-21-generic
+npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install" "bcrypt"
+npm ERR! cwd /home/ubuntu/public/song-swap
+npm ERR! node -v v0.11.2-pre
+npm ERR! npm -v 1.2.18
+npm ERR! code ELIFECYCLE
+npm ERR!
+npm ERR! Additional logging details can be found in:
+npm ERR! /home/ubuntu/public/song-swap/npm-debug.log
+npm ERR! not ok code 0
+```
+
+The main error here is:
+
+```
+Error: "pre" versions of node cannot be installed, use the --nodedir flag instead
+```
+
+This error is caused when you attempt to compile a native addon using a version of node.js with `-pre` at the end of the version number:
+
+``` bash
+$ node -v
+v0.10.4-pre
+```
+
+## How to avoid (the short answer)
+
+To avoid this error completely just use a stable release of node.js. i.e. `v0.10.4`, and __not__ `v0.10.4-pre`.
+
+## How to fix (the long answer)
+
+This error happens because `node-gyp` does not know what header files were used to compile your "pre" version of node, and therefore it needs you to specify the node source code directory path using the `--nodedir` flag.
+
+For example, if I compiled my development ("pre") version of node.js using the source code in `/Users/nrajlich/node`, then I could invoke `node-gyp` like:
+
+``` bash
+$ node-gyp rebuild --nodedir=/Users/nrajlich/node
+```
+
+Or install an native addon through `npm` like:
+
+``` bash
+$ npm install bcrypt --nodedir=/Users/nrajlich/node
+```
+
+### Always use `--nodedir`
+
+__Note:__ This is for advanced users who use `-pre` versions of node more often than tagged releases.
+
+If you're invoking `node-gyp` through `npm`, then you can leverage `npm`'s configuration system and not have to specify the `--nodedir` flag all the time:
+
+``` bash
+$ npm config set nodedir /Users/nrajlich/node
+``` \ No newline at end of file
diff --git a/deps/npm/node_modules/node-gyp/docs/Home.md b/deps/npm/node_modules/node-gyp/docs/Home.md
new file mode 100644
index 00000000000..fe099868b28
--- /dev/null
+++ b/deps/npm/node_modules/node-gyp/docs/Home.md
@@ -0,0 +1,7 @@
+Welcome to the node-gyp wiki!
+
+ * [["binding.gyp" files out in the wild]]
+ * [[Linking to OpenSSL]]
+ * [[Common Issues]]
+ * [[Updating npm's bundled node-gyp]]
+ * [[Error: "pre" versions of node cannot be installed]]
diff --git a/deps/npm/node_modules/node-gyp/docs/Linking-to-OpenSSL.md b/deps/npm/node_modules/node-gyp/docs/Linking-to-OpenSSL.md
new file mode 100644
index 00000000000..1c17ab8e313
--- /dev/null
+++ b/deps/npm/node_modules/node-gyp/docs/Linking-to-OpenSSL.md
@@ -0,0 +1,86 @@
+A handful of native addons require linking to OpenSSL in one way or another. This introduces a small challenge since node will sometimes bundle OpenSSL statically (the default for node >= v0.8.x), or sometimes dynamically link to the system OpenSSL (default for node <= v0.6.x).
+
+Good native addons should account for both scenarios. It's recommended that you use the `binding.gyp` file provided below as a starting-point for any addon that needs to use OpenSSL:
+
+``` python
+{
+ 'variables': {
+ # node v0.6.x doesn't give us its build variables,
+ # but on Unix it was only possible to use the system OpenSSL library,
+ # so default the variable to "true", v0.8.x node and up will overwrite it.
+ 'node_shared_openssl%': 'true'
+ },
+ 'targets': [
+ {
+ 'target_name': 'binding',
+ 'sources': [
+ 'src/binding.cc'
+ ],
+ 'conditions': [
+ ['node_shared_openssl=="false"', {
+ # so when "node_shared_openssl" is "false", then OpenSSL has been
+ # bundled into the node executable. So we need to include the same
+ # header files that were used when building node.
+ 'include_dirs': [
+ '<(node_root_dir)/deps/openssl/openssl/include'
+ ],
+ "conditions" : [
+ ["target_arch=='ia32'", {
+ "include_dirs": [ "<(node_root_dir)/deps/openssl/config/piii" ]
+ }],
+ ["target_arch=='x64'", {
+ "include_dirs": [ "<(node_root_dir)/deps/openssl/config/k8" ]
+ }],
+ ["target_arch=='arm'", {
+ "include_dirs": [ "<(node_root_dir)/deps/openssl/config/arm" ]
+ }]
+ ]
+ }]
+ ]
+ }
+ ]
+}
+```
+
+This ensures that when OpenSSL is statically linked into `node` then, the bundled OpenSSL headers are included, but when the system OpenSSL is in use, then only those headers will be used.
+
+## Windows?
+
+As you can see this baseline `binding.gyp` file only accounts for the Unix scenario. Currently on Windows the situation is a little less ideal. On Windows, OpenSSL is _always_ statically compiled into the `node` executable, so ideally it would be possible to use that copy of OpenSSL when building native addons.
+
+Unfortunately it doesn't seem like that is possible at the moment, as there would need to be tweaks made to the generated `node.lib` file to include the openssl glue functions, or a new `openssl.lib` file would need to be created during the node build. I'm not sure which is the easiest/most feasible.
+
+In the meantime, one possible solution is using another copy of OpenSSL, which is what [`node-bcrypt`](https://github.com/ncb000gt/node.bcrypt.js) currently does. Adding something like this to your `binding.gyp` file's `"conditions"` block would enable this:
+
+``` python
+ [ 'OS=="win"', {
+ 'conditions': [
+ # "openssl_root" is the directory on Windows of the OpenSSL files.
+ # Check the "target_arch" variable to set good default values for
+ # both 64-bit and 32-bit builds of the module.
+ ['target_arch=="x64"', {
+ 'variables': {
+ 'openssl_root%': 'C:/OpenSSL-Win64'
+ },
+ }, {
+ 'variables': {
+ 'openssl_root%': 'C:/OpenSSL-Win32'
+ },
+ }],
+ ],
+ 'libraries': [
+ '-l<(openssl_root)/lib/libeay32.lib',
+ ],
+ 'include_dirs': [
+ '<(openssl_root)/include',
+ ],
+ }]
+```
+
+Now you can direct your users to install OpenSSL on Windows from here (be sure to tell them to install the 64-bit version if they're compiling against a 64-bit version of node): http://slproweb.com/products/Win32OpenSSL.html
+
+Also note that both `node-gyp` and `npm` allow you to overwrite that default `openssl_root` variable on the command line:
+
+``` bash
+$ node-gyp rebuild --openssl-root="C:\Users\Nathan\Desktop\openssl"
+``` \ No newline at end of file
diff --git a/deps/npm/node_modules/node-gyp/docs/Updating-npm-bundled-node-gyp.md b/deps/npm/node_modules/node-gyp/docs/Updating-npm-bundled-node-gyp.md
new file mode 100644
index 00000000000..01ad5642b20
--- /dev/null
+++ b/deps/npm/node_modules/node-gyp/docs/Updating-npm-bundled-node-gyp.md
@@ -0,0 +1,45 @@
+# Updating the npm-bundled version of node-gyp
+
+[Many issues](https://github.com/nodejs/node-gyp/labels/ERR%21%20node-gyp%20-v%20%3C%3D%20v5.1.0) are opened by users who are
+not running a [current version of node-gyp](https://github.com/nodejs/node-gyp/releases).
+
+`npm` bundles its own, internal, copy of `node-gyp`. This internal copy is independent of any globally installed copy of node-gyp that
+may have been installed via `npm install -g node-gyp`.
+
+Generally, npm's library files are installed inside your global "node_modules", where npm is installed (run `npm prefix` and add `lib/node_modules`, or just `node_modules` for Windows). There are some exceptions to this. Inside this global `node_modules/` there will be an `npm/` directory and inside this you'll find a `node_modules/node-gyp/` directory. So it may look something like `/usr/local/lib/node_modules/npm/node_modules/node-gyp/`. This is the version of node-gyp that ships with npm.
+
+When you install a _new_ version of node-gyp outside of npm, it'll go into your global node_modules, but not under the `npm/node_modules`. So that may look like `/usr/local/lib/node_modules/node-gyp/`. It'll have the `node-gyp` executable linked into your `PATH` so running `node-gyp` will use this version.
+
+The catch is that npm won't use this version unless you tell it to, it'll keep on using the one you have installed. You need to instruct it to by setting the `node_gyp` config variable (which goes into your `~/.npmrc`). You do this by running the `npm config set` command as below. Then npm will use the command in the path you supply whenever it needs to build a native addon.
+
+**Important**: You also need to remember to unset this when you upgrade npm with a newer version of node-gyp, or you have to manually keep your globally installed node-gyp to date. See "Undo" below.
+
+## Linux and macOS
+```
+npm install --global node-gyp@latest
+npm config set node_gyp $(npm prefix -g)/lib/node_modules/node-gyp/bin/node-gyp.js
+```
+
+`sudo` may be required for the first command if you get a permission error.
+
+## Windows
+
+### Windows Command Prompt
+```
+npm install --global node-gyp@latest
+for /f "delims=" %P in ('npm prefix -g') do npm config set node_gyp"%P\node_modules\node-gyp\bin\node-gyp.js"
+```
+
+### Powershell
+```
+npm install --global node-gyp@latest
+npm prefix -g | % {npm config set node_gyp "$_\node_modules\node-gyp\bin\node-gypjs"}
+```
+
+## Undo
+**Beware** if you don't unset the `node_gyp` config option, npm will continue to use the globally installed version of node-gyp rather than the one it ships with, which may end up being newer.
+
+```
+npm config delete node_gyp
+npm uninstall --global node-gyp
+```
diff --git a/deps/npm/node_modules/node-gyp/docs/binding.gyp-files-in-the-wild.md b/deps/npm/node_modules/node-gyp/docs/binding.gyp-files-in-the-wild.md
new file mode 100644
index 00000000000..e057aa8e585
--- /dev/null
+++ b/deps/npm/node_modules/node-gyp/docs/binding.gyp-files-in-the-wild.md
@@ -0,0 +1,48 @@
+This page contains links to some examples of existing `binding.gyp` files that other node modules are using. Take a look at them for inspiration.
+
+To add to this page, just add the link to the project's `binding.gyp` file below:
+
+ * [ons](https://github.com/XadillaX/aliyun-ons/blob/master/binding.gyp)
+ * [thmclrx](https://github.com/XadillaX/thmclrx/blob/master/binding.gyp)
+ * [libxmljs](https://github.com/polotek/libxmljs/blob/master/binding.gyp)
+ * [node-buffertools](https://github.com/bnoordhuis/node-buffertools/blob/master/binding.gyp)
+ * [node-canvas](https://github.com/LearnBoost/node-canvas/blob/master/binding.gyp)
+ * [node-ffi](https://github.com/rbranson/node-ffi/blob/master/binding.gyp) + [libffi](https://github.com/rbranson/node-ffi/blob/master/deps/libffi/libffi.gyp)
+ * [node-time](https://github.com/TooTallNate/node-time/blob/master/binding.gyp)
+ * [node-sass](https://github.com/sass/node-sass/blob/master/binding.gyp) + [libsass](https://github.com/sass/node-sass/blob/master/src/libsass.gyp)
+ * [node-serialport](https://github.com/voodootikigod/node-serialport/blob/master/binding.gyp)
+ * [node-weak](https://github.com/TooTallNate/node-weak/blob/master/binding.gyp)
+ * [pty.js](https://github.com/chjj/pty.js/blob/master/binding.gyp)
+ * [ref](https://github.com/TooTallNate/ref/blob/master/binding.gyp)
+ * [appjs](https://github.com/milani/appjs/blob/master/binding.gyp)
+ * [nwm](https://github.com/mixu/nwm/blob/master/binding.gyp)
+ * [bcrypt](https://github.com/ncb000gt/node.bcrypt.js/blob/master/binding.gyp)
+ * [nk-mysql](https://github.com/mmod/nodamysql/blob/master/binding.gyp)
+ * [nk-xrm-installer](https://github.com/mmod/nk-xrm-installer/blob/master/binding.gyp) + [includable.gypi](https://github.com/mmod/nk-xrm-installer/blob/master/includable.gypi) + [unpack.py](https://github.com/mmod/nk-xrm-installer/blob/master/unpack.py) + [disburse.py](https://github.com/mmod/nk-xrm-installer/blob/master/disburse.py)
+ <sub>.py files above provide complete reference for examples of fetching source via http, extracting, and moving files.</sub>
+ * [node-memwatch](https://github.com/lloyd/node-memwatch/blob/master/binding.gyp)
+ * [node-ip2location](https://github.com/bolgovr/node-ip2location/blob/master/binding.gyp)
+ * [node-midi](https://github.com/justinlatimer/node-midi/blob/master/binding.gyp)
+ * [node-sqlite3](https://github.com/developmentseed/node-sqlite3/blob/master/binding.gyp) + [libsqlite3](https://github.com/developmentseed/node-sqlite3/blob/master/deps/sqlite3.gyp)
+ * [node-zipfile](https://github.com/mapbox/node-zipfile/blob/master/binding.gyp)
+ * [node-mapnik](https://github.com/mapnik/node-mapnik/blob/master/binding.gyp)
+ * [node-inotify](https://github.com/c4milo/node-inotify/blob/master/binding.gyp)
+ * [v8-profiler](https://github.com/c4milo/v8-profiler/blob/master/binding.gyp)
+ * [airtunes](https://github.com/radioline/node_airtunes/blob/master/binding.gyp)
+ * [node-fann](https://github.com/c4milo/node-fann/blob/master/binding.gyp)
+ * [node-talib](https://github.com/oransel/node-talib/blob/master/binding.gyp)
+ * [node-leveldown](https://github.com/rvagg/node-leveldown/blob/master/binding.gyp) + [leveldb.gyp](https://github.com/rvagg/node-leveldown/blob/master/deps/leveldb/leveldb.gyp) + [snappy.gyp](https://github.com/rvagg/node-leveldown/blob/master/deps/snappy/snappy.gyp)
+ * [node-expat](https://github.com/astro/node-expat/blob/master/binding.gyp) + [libexpat](https://github.com/astro/node-expat/blob/master/deps/libexpat/libexpat.gyp)
+ * [node-openvg-canvas](https://github.com/luismreis/node-openvg-canvas/blob/master/binding.gyp) + [node-openvg](https://github.com/luismreis/node-openvg/blob/master/binding.gyp)
+ * [node-cryptopp](https://github.com/BatikhSouri/node-cryptopp/blob/master/binding.gyp)
+ * [topcube](https://github.com/creationix/topcube/blob/master/binding.gyp)
+ * [node-osmium](https://github.com/osmcode/node-osmium/blob/master/binding.gyp)
+ * [node-osrm](https://github.com/DennisOSRM/node-osrm)
+ * [node-oracle](https://github.com/joeferner/node-oracle/blob/master/binding.gyp)
+ * [node-process-list](https://github.com/ReklatsMasters/node-process-list/blob/master/binding.gyp)
+ * [node-nanomsg](https://github.com/nickdesaulniers/node-nanomsg/blob/master/binding.gyp)
+ * [Ghostscript4JS](https://github.com/NickNaso/ghostscript4js/blob/master/binding.gyp)
+ * [nodecv](https://github.com/xudafeng/nodecv/blob/master/binding.gyp)
+ * [magick-cli](https://github.com/NickNaso/magick-cli/blob/master/binding.gyp)
+ * [sharp](https://github.com/lovell/sharp/blob/master/binding.gyp)
+ * [krb5](https://github.com/adaltas/node-krb5/blob/master/binding.gyp) \ No newline at end of file
diff --git a/deps/npm/node_modules/node-gyp/gyp/.github/workflows/Python_tests.yml b/deps/npm/node_modules/node-gyp/gyp/.github/workflows/Python_tests.yml
index 128654f3121..92303b635f2 100644
--- a/deps/npm/node_modules/node-gyp/gyp/.github/workflows/Python_tests.yml
+++ b/deps/npm/node_modules/node-gyp/gyp/.github/workflows/Python_tests.yml
@@ -1,5 +1,4 @@
# TODO: Enable os: windows-latest
-# TODO: Enable python-version: 3.5
# TODO: Enable pytest --doctest-modules
name: Python_tests
@@ -9,10 +8,10 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
- max-parallel: 15
+ max-parallel: 8
matrix:
os: [macos-latest, ubuntu-latest] # , windows-latest]
- python-version: [2.7, 3.6, 3.7, 3.8, 3.9]
+ python-version: [3.6, 3.7, 3.8, 3.9]
steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
@@ -24,7 +23,7 @@ jobs:
python -m pip install --upgrade pip
pip install -r requirements_dev.txt
- name: Lint with flake8
- run: flake8 . --count --show-source --statistics
+ run: flake8 . --ignore=E203,W503 --max-complexity=101 --max-line-length=88 --show-source --statistics
- name: Test with pytest
run: pytest
# - name: Run doctests with pytest
diff --git a/deps/npm/node_modules/node-gyp/gyp/.github/workflows/node-gyp.yml b/deps/npm/node_modules/node-gyp/gyp/.github/workflows/node-gyp.yml
index 78fe502bda0..bd7c85ffda9 100644
--- a/deps/npm/node_modules/node-gyp/gyp/.github/workflows/node-gyp.yml
+++ b/deps/npm/node_modules/node-gyp/gyp/.github/workflows/node-gyp.yml
@@ -8,6 +8,8 @@ jobs:
fail-fast: false
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
+ python: [3.6, 3.9]
+
runs-on: ${{ matrix.os }}
steps:
- name: Clone gyp-next
@@ -19,12 +21,12 @@ jobs:
with:
repository: nodejs/node-gyp
path: node-gyp
- - uses: actions/setup-node@v1
+ - uses: actions/setup-node@v2
with:
node-version: 14.x
- uses: actions/setup-python@v2
with:
- python-version: 3.9
+ python-version: ${{ matrix.python }}
- name: Install dependencies
run: |
cd node-gyp
diff --git a/deps/npm/node_modules/node-gyp/gyp/.github/workflows/release-please.yml b/deps/npm/node_modules/node-gyp/gyp/.github/workflows/release-please.yml
index a414c10e156..288afdb3b32 100644
--- a/deps/npm/node_modules/node-gyp/gyp/.github/workflows/release-please.yml
+++ b/deps/npm/node_modules/node-gyp/gyp/.github/workflows/release-please.yml
@@ -1,14 +1,14 @@
on:
push:
branches:
- - master
+ - main
name: release-please
jobs:
release-please:
runs-on: ubuntu-latest
steps:
- - uses: GoogleCloudPlatform/release-please-action@v2.5.6
+ - uses: GoogleCloudPlatform/release-please-action@v2
with:
token: ${{ secrets.GITHUB_TOKEN }}
release-type: python
diff --git a/deps/npm/node_modules/node-gyp/gyp/CHANGELOG.md b/deps/npm/node_modules/node-gyp/gyp/CHANGELOG.md
index 53c922b6c90..f5e9f634763 100644
--- a/deps/npm/node_modules/node-gyp/gyp/CHANGELOG.md
+++ b/deps/npm/node_modules/node-gyp/gyp/CHANGELOG.md
@@ -1,5 +1,105 @@
# Changelog
+### [0.9.6](https://www.github.com/nodejs/gyp-next/compare/v0.9.5...v0.9.6) (2021-08-23)
+
+
+### Bug Fixes
+
+* align flake8 test ([#122](https://www.github.com/nodejs/gyp-next/issues/122)) ([f1faa8d](https://www.github.com/nodejs/gyp-next/commit/f1faa8d3081e1a47e917ff910892f00dff16cf8a))
+* **msvs:** fix paths again in action command arguments ([#121](https://www.github.com/nodejs/gyp-next/issues/121)) ([7159dfb](https://www.github.com/nodejs/gyp-next/commit/7159dfbc5758c9ec717e215f2c36daf482c846a1))
+
+### [0.9.5](https://www.github.com/nodejs/gyp-next/compare/v0.9.4...v0.9.5) (2021-08-18)
+
+
+### Bug Fixes
+
+* add python 3.6 to node-gyp integration test ([3462d4c](https://www.github.com/nodejs/gyp-next/commit/3462d4ce3c31cce747513dc7ca9760c81d57c60e))
+* revert for windows compatibility ([d078e7d](https://www.github.com/nodejs/gyp-next/commit/d078e7d7ae080ddae243188f6415f940376a7368))
+* support msvs_quote_cmd in ninja generator ([#117](https://www.github.com/nodejs/gyp-next/issues/117)) ([46486ac](https://www.github.com/nodejs/gyp-next/commit/46486ac6e9329529d51061e006a5b39631e46729))
+
+### [0.9.4](https://www.github.com/nodejs/gyp-next/compare/v0.9.3...v0.9.4) (2021-08-09)
+
+
+### Bug Fixes
+
+* .S is an extension for asm file on Windows ([#115](https://www.github.com/nodejs/gyp-next/issues/115)) ([d2fad44](https://www.github.com/nodejs/gyp-next/commit/d2fad44ef3a79ca8900f1307060153ded57053fc))
+
+### [0.9.3](https://www.github.com/nodejs/gyp-next/compare/v0.9.2...v0.9.3) (2021-07-07)
+
+
+### Bug Fixes
+
+* build failure with ninja and Python 3 on Windows ([#113](https://www.github.com/nodejs/gyp-next/issues/113)) ([c172d10](https://www.github.com/nodejs/gyp-next/commit/c172d105deff5db4244e583942215918fa80dd3c))
+
+### [0.9.2](https://www.github.com/nodejs/gyp-next/compare/v0.9.1...v0.9.2) (2021-05-21)
+
+
+### Bug Fixes
+
+* add support of utf8 encoding ([#105](https://www.github.com/nodejs/gyp-next/issues/105)) ([4d0f93c](https://www.github.com/nodejs/gyp-next/commit/4d0f93c249286d1f0c0f665f5fe7346119f98cf1))
+
+### [0.9.1](https://www.github.com/nodejs/gyp-next/compare/v0.9.0...v0.9.1) (2021-05-14)
+
+
+### Bug Fixes
+
+* py lint ([3b6a8ee](https://www.github.com/nodejs/gyp-next/commit/3b6a8ee7a66193a8a6867eba9e1d2b70bdf04402))
+
+## [0.9.0](https://www.github.com/nodejs/gyp-next/compare/v0.8.1...v0.9.0) (2021-05-13)
+
+
+### Features
+
+* use LDFLAGS_host for host toolset ([#98](https://www.github.com/nodejs/gyp-next/issues/98)) ([bea5c7b](https://www.github.com/nodejs/gyp-next/commit/bea5c7bd67d6ad32acbdce79767a5481c70675a2))
+
+
+### Bug Fixes
+
+* msvs.py: remove overindentation ([#102](https://www.github.com/nodejs/gyp-next/issues/102)) ([3f83e99](https://www.github.com/nodejs/gyp-next/commit/3f83e99056d004d9579ceb786e06b624ddc36529))
+* update gyp.el to change case to cl-case ([#93](https://www.github.com/nodejs/gyp-next/issues/93)) ([13d5b66](https://www.github.com/nodejs/gyp-next/commit/13d5b66aab35985af9c2fb1174fdc6e1c1407ecc))
+
+### [0.8.1](https://www.github.com/nodejs/gyp-next/compare/v0.8.0...v0.8.1) (2021-02-18)
+
+
+### Bug Fixes
+
+* update shebang lines from python to python3 ([#94](https://www.github.com/nodejs/gyp-next/issues/94)) ([a1b0d41](https://www.github.com/nodejs/gyp-next/commit/a1b0d4171a8049a4ab7a614202063dec332f2df4))
+
+## [0.8.0](https://www.github.com/nodejs/gyp-next/compare/v0.7.0...v0.8.0) (2021-01-15)
+
+
+### ⚠ BREAKING CHANGES
+
+* remove support for Python 2
+
+### Bug Fixes
+
+* revert posix build job ([#86](https://www.github.com/nodejs/gyp-next/issues/86)) ([39dc34f](https://www.github.com/nodejs/gyp-next/commit/39dc34f0799c074624005fb9bbccf6e028607f9d))
+
+
+### gyp
+
+* Remove support for Python 2 ([#88](https://www.github.com/nodejs/gyp-next/issues/88)) ([22e4654](https://www.github.com/nodejs/gyp-next/commit/22e465426fd892403c95534229af819a99c3f8dc))
+
+## [0.7.0](https://www.github.com/nodejs/gyp-next/compare/v0.6.2...v0.7.0) (2020-12-17)
+
+
+### ⚠ BREAKING CHANGES
+
+* **msvs:** On Windows, arguments passed to the "action" commands are no longer transformed to replace slashes with backslashes.
+
+### Features
+
+* **xcode:** --cross-compiling overrides arch-specific settings ([973bae0](https://www.github.com/nodejs/gyp-next/commit/973bae0b7b08be7b680ecae9565fbd04b3e0787d))
+
+
+### Bug Fixes
+
+* **msvs:** do not fix paths in action command arguments ([fc22f83](https://www.github.com/nodejs/gyp-next/commit/fc22f8335e2016da4aae4f4233074bd651d2faea))
+* cmake on python 3 ([fd61f5f](https://www.github.com/nodejs/gyp-next/commit/fd61f5faa5275ec8fc98e3c7868c0dd46f109540))
+* ValueError: invalid mode: 'rU' while trying to load binding.gyp ([d0504e6](https://www.github.com/nodejs/gyp-next/commit/d0504e6700ce48f44957a4d5891b142a60be946f))
+* xcode cmake parsing ([eefe8d1](https://www.github.com/nodejs/gyp-next/commit/eefe8d10e99863bc4ac7e2ed32facd608d400d4b))
+
### [0.6.2](https://www.github.com/nodejs/gyp-next/compare/v0.6.1...v0.6.2) (2020-10-16)
diff --git a/deps/npm/node_modules/node-gyp/gyp/CODE_OF_CONDUCT.md b/deps/npm/node_modules/node-gyp/gyp/CODE_OF_CONDUCT.md
index 4c211405596..d724027fd9a 100644
--- a/deps/npm/node_modules/node-gyp/gyp/CODE_OF_CONDUCT.md
+++ b/deps/npm/node_modules/node-gyp/gyp/CODE_OF_CONDUCT.md
@@ -1,4 +1,4 @@
# Code of Conduct
-* [Node.js Code of Conduct](https://github.com/nodejs/admin/blob/master/CODE_OF_CONDUCT.md)
-* [Node.js Moderation Policy](https://github.com/nodejs/admin/blob/master/Moderation-Policy.md)
+* [Node.js Code of Conduct](https://github.com/nodejs/admin/blob/HEAD/CODE_OF_CONDUCT.md)
+* [Node.js Moderation Policy](https://github.com/nodejs/admin/blob/HEAD/Moderation-Policy.md)
diff --git a/deps/npm/node_modules/node-gyp/gyp/CONTRIBUTING.md b/deps/npm/node_modules/node-gyp/gyp/CONTRIBUTING.md
index f9dd574a47c..1a0bcde2b48 100644
--- a/deps/npm/node_modules/node-gyp/gyp/CONTRIBUTING.md
+++ b/deps/npm/node_modules/node-gyp/gyp/CONTRIBUTING.md
@@ -2,7 +2,7 @@
## Code of Conduct
-This project is bound to the [Node.js Code of Conduct](https://github.com/nodejs/admin/blob/master/CODE_OF_CONDUCT.md).
+This project is bound to the [Node.js Code of Conduct](https://github.com/nodejs/admin/blob/HEAD/CODE_OF_CONDUCT.md).
<a id="developers-certificate-of-origin"></a>
## Developer's Certificate of Origin 1.1
diff --git a/deps/npm/node_modules/node-gyp/gyp/gyp_main.py b/deps/npm/node_modules/node-gyp/gyp/gyp_main.py
index da696cfc4b1..f23dcdf882d 100755
--- a/deps/npm/node_modules/node-gyp/gyp/gyp_main.py
+++ b/deps/npm/node_modules/node-gyp/gyp/gyp_main.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2009 Google Inc. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
@@ -8,8 +8,6 @@ import os
import sys
import subprocess
-PY3 = bytes != str
-
def IsCygwin():
# Function copied from pylib/gyp/common.py
@@ -17,10 +15,8 @@ def IsCygwin():
out = subprocess.Popen(
"uname", stdout=subprocess.PIPE, stderr=subprocess.STDOUT
)
- stdout, stderr = out.communicate()
- if PY3:
- stdout = stdout.decode("utf-8")
- return "CYGWIN" in str(stdout)
+ stdout, _ = out.communicate()
+ return "CYGWIN" in stdout.decode("utf-8")
except Exception:
return False
@@ -33,9 +29,7 @@ def UnixifyPath(path):
["cygpath", "-u", path], stdout=subprocess.PIPE, stderr=subprocess.STDOUT
)
stdout, _ = out.communicate()
- if PY3:
- stdout = stdout.decode("utf-8")
- return str(stdout)
+ return stdout.decode("utf-8")
except Exception:
return path
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py
index 04bbb3df718..d6b189760ce 100644
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py
@@ -11,12 +11,9 @@ from operator import attrgetter
import gyp.common
-try:
- cmp
-except NameError:
- def cmp(x, y):
- return (x > y) - (x < y)
+def cmp(x, y):
+ return (x > y) - (x < y)
# Initialize random number generator
@@ -69,7 +66,7 @@ def MakeGuid(name, seed="msvs_new"):
# ------------------------------------------------------------------------------
-class MSVSSolutionEntry(object):
+class MSVSSolutionEntry:
def __cmp__(self, other):
# Sort by name then guid (so things are in order on vs2008).
return cmp((self.name, self.get_guid()), (other.name, other.get_guid()))
@@ -190,7 +187,7 @@ class MSVSProject(MSVSSolutionEntry):
# ------------------------------------------------------------------------------
-class MSVSSolution(object):
+class MSVSSolution:
"""Visual Studio solution."""
def __init__(
@@ -292,14 +289,14 @@ class MSVSSolution(object):
if e.items:
f.write("\tProjectSection(SolutionItems) = preProject\r\n")
for i in e.items:
- f.write("\t\t%s = %s\r\n" % (i, i))
+ f.write(f"\t\t{i} = {i}\r\n")
f.write("\tEndProjectSection\r\n")
if isinstance(e, MSVSProject):
if e.dependencies:
f.write("\tProjectSection(ProjectDependencies) = postProject\r\n")
for d in e.dependencies:
- f.write("\t\t%s = %s\r\n" % (d.get_guid(), d.get_guid()))
+ f.write(f"\t\t{d.get_guid()} = {d.get_guid()}\r\n")
f.write("\tEndProjectSection\r\n")
f.write("EndProject\r\n")
@@ -310,7 +307,7 @@ class MSVSSolution(object):
# Configurations (variants)
f.write("\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\r\n")
for v in self.variants:
- f.write("\t\t%s = %s\r\n" % (v, v))
+ f.write(f"\t\t{v} = {v}\r\n")
f.write("\tEndGlobalSection\r\n")
# Sort config guids for easier diffing of solution changes.
@@ -362,7 +359,7 @@ class MSVSSolution(object):
if not isinstance(e, MSVSFolder):
continue # Does not apply to projects, only folders
for subentry in e.entries:
- f.write("\t\t%s = %s\r\n" % (subentry.get_guid(), e.get_guid()))
+ f.write(f"\t\t{subentry.get_guid()} = {e.get_guid()}\r\n")
f.write("\tEndGlobalSection\r\n")
f.write("EndGlobal\r\n")
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSProject.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSProject.py
index f953d52cd03..f0cfabe8349 100644
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSProject.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSProject.py
@@ -9,7 +9,7 @@ import gyp.easy_xml as easy_xml
# ------------------------------------------------------------------------------
-class Tool(object):
+class Tool:
"""Visual Studio tool."""
def __init__(self, name, attrs=None):
@@ -31,7 +31,7 @@ class Tool(object):
return ["Tool", self._attrs]
-class Filter(object):
+class Filter:
"""Visual Studio filter - that is, a virtual folder."""
def __init__(self, name, contents=None):
@@ -48,7 +48,7 @@ class Filter(object):
# ------------------------------------------------------------------------------
-class Writer(object):
+class Writer:
"""Visual Studio XML project writer."""
def __init__(self, project_path, version, name, guid=None, platforms=None):
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings.py
index 6ef16f2a0b2..e89a971a3bb 100644
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings.py
@@ -14,12 +14,8 @@ The MSBuild schemas were also considered. They are typically found in the
MSBuild install directory, e.g. c:\Program Files (x86)\MSBuild
"""
-from __future__ import print_function
-
-from gyp import string_types
-
-import sys
import re
+import sys
# Dictionaries of settings validators. The key is the tool name, the value is
# a dictionary mapping setting names to validation functions.
@@ -36,7 +32,7 @@ _msvs_to_msbuild_converters = {}
_msbuild_name_of_tool = {}
-class _Tool(object):
+class _Tool:
"""Represents a tool used by MSVS or MSBuild.
Attributes:
@@ -68,7 +64,7 @@ def _GetMSBuildToolSettings(msbuild_settings, tool):
return msbuild_settings.setdefault(tool.msbuild_name, {})
-class _Type(object):
+class _Type:
"""Type of settings (Base class)."""
def ValidateMSVS(self, value):
@@ -110,11 +106,11 @@ class _String(_Type):
"""A setting that's just a string."""
def ValidateMSVS(self, value):
- if not isinstance(value, string_types):
+ if not isinstance(value, str):
raise ValueError("expected string; got %r" % value)
def ValidateMSBuild(self, value):
- if not isinstance(value, string_types):
+ if not isinstance(value, str):
raise ValueError("expected string; got %r" % value)
def ConvertToMSBuild(self, value):
@@ -126,11 +122,11 @@ class _StringList(_Type):
"""A settings that's a list of strings."""
def ValidateMSVS(self, value):
- if not isinstance(value, string_types) and not isinstance(value, list):
+ if not isinstance(value, (list, str)):
raise ValueError("expected string list; got %r" % value)
def ValidateMSBuild(self, value):
- if not isinstance(value, string_types) and not isinstance(value, list):
+ if not isinstance(value, (list, str)):
raise ValueError("expected string list; got %r" % value)
def ConvertToMSBuild(self, value):
@@ -195,7 +191,7 @@ class _Enumeration(_Type):
def __init__(self, label_list, new=None):
_Type.__init__(self)
self._label_list = label_list
- self._msbuild_values = set(value for value in label_list if value is not None)
+ self._msbuild_values = {value for value in label_list if value is not None}
if new is not None:
self._msbuild_values.update(new)
@@ -342,7 +338,7 @@ def _ConvertedToAdditionalOption(tool, msvs_name, flag):
if value == "true":
tool_settings = _GetMSBuildToolSettings(msbuild_settings, tool)
if "AdditionalOptions" in tool_settings:
- new_flags = "%s %s" % (tool_settings["AdditionalOptions"], flag)
+ new_flags = "{} {}".format(tool_settings["AdditionalOptions"], flag)
else:
new_flags = flag
tool_settings["AdditionalOptions"] = new_flags
@@ -536,14 +532,14 @@ def _ValidateSettings(validators, settings, stderr):
tool_validators[setting](value)
except ValueError as e:
print(
- "Warning: for %s/%s, %s" % (tool_name, setting, e),
+ f"Warning: for {tool_name}/{setting}, {e}",
file=stderr,
)
else:
_ValidateExclusionSetting(
setting,
tool_validators,
- ("Warning: unrecognized setting %s/%s" % (tool_name, setting)),
+ (f"Warning: unrecognized setting {tool_name}/{setting}"),
stderr,
)
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings_test.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings_test.py
index 99860c880ec..6ca09687ad7 100755
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings_test.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings_test.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2012 Google Inc. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
@@ -9,10 +9,7 @@
import unittest
import gyp.MSVSSettings as MSVSSettings
-try:
- from StringIO import StringIO # Python 2
-except ImportError:
- from io import StringIO # Python 3
+from io import StringIO
class TestSequenceFunctions(unittest.TestCase):
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSToolFile.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSToolFile.py
index 2c08589e06d..2e5c811bdde 100644
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSToolFile.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSToolFile.py
@@ -7,7 +7,7 @@
import gyp.easy_xml as easy_xml
-class Writer(object):
+class Writer:
"""Visual Studio XML tool file writer."""
def __init__(self, tool_file_path, name):
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSUserFile.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSUserFile.py
index de0896e6931..e580c00fb76 100644
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSUserFile.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSUserFile.py
@@ -53,7 +53,7 @@ def _QuoteWin32CommandLineArgs(args):
return new_args
-class Writer(object):
+class Writer:
"""Visual Studio XML user user file writer."""
def __init__(self, user_file_path, version, name):
@@ -93,7 +93,7 @@ class Writer(object):
abs_command = _FindCommandInPath(command[0])
if environment and isinstance(environment, dict):
- env_list = ['%s="%s"' % (key, val) for (key, val) in environment.items()]
+ env_list = [f'{key}="{val}"' for (key, val) in environment.items()]
environment = " ".join(env_list)
else:
environment = ""
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSUtil.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSUtil.py
index 83a9c297ed6..36bb782bd31 100644
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSUtil.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSUtil.py
@@ -55,7 +55,7 @@ def _SuffixName(name, suffix):
Target name with suffix added (foo_suffix#target)
"""
parts = name.rsplit("#", 1)
- parts[0] = "%s_%s" % (parts[0], suffix)
+ parts[0] = f"{parts[0]}_{suffix}"
return "#".join(parts)
@@ -160,7 +160,7 @@ def _GetPdbPath(target_dict, config_name, vars):
return pdb_path
pdb_base = target_dict.get("product_name", target_dict["target_name"])
- pdb_base = "%s.%s.pdb" % (pdb_base, TARGET_TYPE_EXT[target_dict["type"]])
+ pdb_base = "{}.{}.pdb".format(pdb_base, TARGET_TYPE_EXT[target_dict["type"]])
pdb_path = vars["PRODUCT_DIR"] + "/" + pdb_base
return pdb_path
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py
index 36b006aaa93..134b35557b5 100644
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py
@@ -11,14 +11,12 @@ import subprocess
import sys
import glob
-PY3 = bytes != str
-
def JoinPath(*args):
return os.path.normpath(os.path.join(*args))
-class VisualStudioVersion(object):
+class VisualStudioVersion:
"""Information regarding a version of Visual Studio."""
def __init__(
@@ -176,9 +174,7 @@ def _RegistryQueryBase(sysdir, key, value):
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
# Obtain the stdout from reg.exe, reading to the end so p.returncode is valid
# Note that the error text may be in [1] in some cases
- text = p.communicate()[0]
- if PY3:
- text = text.decode("utf-8")
+ text = p.communicate()[0].decode("utf-8")
# Check return code from reg.exe; officially 0==success and 1==error
if p.returncode:
return None
@@ -221,21 +217,15 @@ def _RegistryGetValueUsingWinReg(key, value):
value: The particular registry value to read.
Return:
contents of the registry key's value, or None on failure. Throws
- ImportError if _winreg is unavailable.
+ ImportError if winreg is unavailable.
"""
- try:
- # Python 2
- from _winreg import HKEY_LOCAL_MACHINE, OpenKey, QueryValueEx
- except ImportError:
- # Python 3
- from winreg import HKEY_LOCAL_MACHINE, OpenKey, QueryValueEx
-
+ from winreg import HKEY_LOCAL_MACHINE, OpenKey, QueryValueEx
try:
root, subkey = key.split("\\", 1)
assert root == "HKLM" # Only need HKLM for now.
with OpenKey(HKEY_LOCAL_MACHINE, subkey) as hkey:
return QueryValueEx(hkey, value)[0]
- except WindowsError:
+ except OSError:
return None
@@ -426,9 +416,7 @@ def _ConvertToCygpath(path):
"""Convert to cygwin path if we are using cygwin."""
if sys.platform == "cygwin":
p = subprocess.Popen(["cygpath", path], stdout=subprocess.PIPE)
- path = p.communicate()[0].strip()
- if PY3:
- path = path.decode("utf-8")
+ path = p.communicate()[0].decode("utf-8").strip()
return path
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/__init__.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/__init__.py
index f6ea625d40a..6790ef96a19 100755
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/__init__.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/__init__.py
@@ -1,10 +1,9 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2012 Google Inc. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-from __future__ import print_function
import copy
import gyp.input
@@ -16,13 +15,6 @@ import sys
import traceback
from gyp.common import GypError
-try:
- # Python 2
- string_types = basestring
-except NameError:
- # Python 3
- string_types = str
-
# Default debug modes for GYP
debug = {}
@@ -193,7 +185,7 @@ def ShlexEnv(env_name):
def FormatOpt(opt, value):
if opt.startswith("--"):
- return "%s=%s" % (opt, value)
+ return f"{opt}={value}"
return opt + value
@@ -524,7 +516,7 @@ def gyp_main(args):
for option, value in sorted(options.__dict__.items()):
if option[0] == "_":
continue
- if isinstance(value, string_types):
+ if isinstance(value, str):
DebugOutput(DEBUG_GENERAL, " %s: '%s'", option, value)
else:
DebugOutput(DEBUG_GENERAL, " %s: %s", option, value)
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/common.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/common.py
index a9156438672..9213fcc5e82 100644
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/common.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/common.py
@@ -10,17 +10,12 @@ import tempfile
import sys
import subprocess
-try:
- from collections.abc import MutableSet
-except ImportError:
- from collections import MutableSet
-
-PY3 = bytes != str
+from collections.abc import MutableSet
# A minimal memoizing decorator. It'll blow up if the args aren't immutable,
# among other "problems".
-class memoize(object):
+class memoize:
def __init__(self, func):
self.func = func
self.cache = {}
@@ -348,7 +343,7 @@ def WriteOnDiff(filename):
the target if it differs (on close).
"""
- class Writer(object):
+ class Writer:
"""Wrapper around file which only covers the target if it differs."""
def __init__(self):
@@ -566,8 +561,8 @@ class OrderedSet(MutableSet):
def __repr__(self):
if not self:
- return "%s()" % (self.__class__.__name__,)
- return "%s(%r)" % (self.__class__.__name__, list(self))
+ return f"{self.__class__.__name__}()"
+ return f"{self.__class__.__name__}({list(self)!r})"
def __eq__(self, other):
if isinstance(other, OrderedSet):
@@ -653,9 +648,7 @@ def IsCygwin():
out = subprocess.Popen(
"uname", stdout=subprocess.PIPE, stderr=subprocess.STDOUT
)
- stdout, stderr = out.communicate()
- if PY3:
- stdout = stdout.decode("utf-8")
+ stdout = out.communicate()[0].decode("utf-8")
return "CYGWIN" in str(stdout)
except Exception:
return False
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/common_test.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/common_test.py
index 0310fb266c4..05344085ad3 100755
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/common_test.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/common_test.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2012 Google Inc. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py
index e0628ef4d83..bda1a47468a 100644
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py
@@ -2,6 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import sys
import re
import os
import locale
@@ -84,7 +85,7 @@ def _ConstructContentList(xml_parts, specification, pretty, level=0):
rest = specification[1:]
if rest and isinstance(rest[0], dict):
for at, val in sorted(rest[0].items()):
- xml_parts.append(' %s="%s"' % (at, _XmlEscape(val, attr=True)))
+ xml_parts.append(f' {at}="{_XmlEscape(val, attr=True)}"')
rest = rest[1:]
if rest:
xml_parts.append(">")
@@ -101,12 +102,13 @@ def _ConstructContentList(xml_parts, specification, pretty, level=0):
_ConstructContentList(xml_parts, child_spec, pretty, level + 1)
if multi_line and indentation:
xml_parts.append(indentation)
- xml_parts.append("</%s>%s" % (name, new_line))
+ xml_parts.append(f"</{name}>{new_line}")
else:
xml_parts.append("/>%s" % new_line)
-def WriteXmlIfChanged(content, path, encoding="utf-8", pretty=False, win32=False):
+def WriteXmlIfChanged(content, path, encoding="utf-8", pretty=False,
+ win32=(sys.platform == "win32")):
""" Writes the XML content to disk, touching the file only if it has changed.
Args:
@@ -125,9 +127,9 @@ def WriteXmlIfChanged(content, path, encoding="utf-8", pretty=False, win32=False
# Get the old content
try:
- with open(path, "r") as file:
+ with open(path) as file:
existing = file.read()
- except IOError:
+ except OSError:
existing = None
# It has changed, write it
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py
index 5bc795ddbe4..342f693a329 100755
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2011 Google Inc. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
@@ -9,10 +9,7 @@
import gyp.easy_xml as easy_xml
import unittest
-try:
- from StringIO import StringIO # Python 2
-except ImportError:
- from io import StringIO # Python 3
+from io import StringIO
class TestSequenceFunctions(unittest.TestCase):
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/flock_tool.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/flock_tool.py
index f9f89e520ac..1cb98152638 100755
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/flock_tool.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/flock_tool.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2011 Google Inc. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
@@ -18,7 +18,7 @@ def main(args):
executor.Dispatch(args)
-class FlockTool(object):
+class FlockTool:
"""This class emulates the 'flock' command."""
def Dispatch(self, args):
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/analyzer.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/analyzer.py
index 7a393c1f939..f15df00c363 100644
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/analyzer.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/analyzer.py
@@ -62,7 +62,6 @@ directly supplied to gyp. OTOH if both "a.gyp" and "b.gyp" are supplied to gyp
then the "all" target includes "b1" and "b2".
"""
-from __future__ import print_function
import gyp.common
import json
@@ -216,7 +215,7 @@ def _ExtractSources(target, target_dict, toplevel_dir):
return results
-class Target(object):
+class Target:
"""Holds information about a particular target:
deps: set of Targets this Target depends upon. This is not recursive, only the
direct dependent Targets.
@@ -252,7 +251,7 @@ class Target(object):
self.is_or_has_linked_ancestor = False
-class Config(object):
+class Config:
"""Details what we're looking for
files: set of files to search for
targets: see file description for details."""
@@ -271,10 +270,10 @@ class Config(object):
if not config_path:
return
try:
- f = open(config_path, "r")
+ f = open(config_path)
config = json.load(f)
f.close()
- except IOError:
+ except OSError:
raise Exception("Unable to open file " + config_path)
except ValueError as e:
raise Exception("Unable to parse config file " + config_path + str(e))
@@ -586,7 +585,7 @@ def _WriteOutput(params, **values):
f = open(output_path, "w")
f.write(json.dumps(values) + "\n")
f.close()
- except IOError as e:
+ except OSError as e:
print("Error writing to output file", output_path, str(e))
@@ -627,7 +626,7 @@ def CalculateVariables(default_variables, params):
default_variables.setdefault("OS", operating_system)
-class TargetCalculator(object):
+class TargetCalculator:
"""Calculates the matching test_targets and matching compile_targets."""
def __init__(
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/android.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/android.py
index 16728847c5c..cdf1a4832cf 100644
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/android.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/android.py
@@ -14,7 +14,6 @@
# variables set potentially clash with other Android build system variables.
# Try to avoid setting global variables where possible.
-from __future__ import print_function
import gyp
import gyp.common
@@ -84,7 +83,7 @@ def IsCPPExtension(ext):
def Sourceify(path):
"""Convert a path to its source directory form. The Android backend does not
- support options.generator_output, so this function is a noop."""
+ support options.generator_output, so this function is a noop."""
return path
@@ -100,11 +99,11 @@ target_outputs = {}
target_link_deps = {}
-class AndroidMkWriter(object):
+class AndroidMkWriter:
"""AndroidMkWriter packages up the writing of one target-specific Android.mk.
- Its only real entry point is Write(), and is mostly used for namespacing.
- """
+ Its only real entry point is Write(), and is mostly used for namespacing.
+ """
def __init__(self, android_top_dir):
self.android_top_dir = android_top_dir
@@ -123,18 +122,18 @@ class AndroidMkWriter(object):
):
"""The main entry point: writes a .mk file for a single target.
- Arguments:
- qualified_target: target we're generating
- relative_target: qualified target name relative to the root
- base_path: path relative to source root we're building in, used to resolve
- target-relative paths
- output_filename: output .mk file name to write
- spec, configs: gyp info
- part_of_all: flag indicating this target is part of 'all'
- write_alias_target: flag indicating whether to create short aliases for
- this target
- sdk_version: what to emit for LOCAL_SDK_VERSION in output
- """
+ Arguments:
+ qualified_target: target we're generating
+ relative_target: qualified target name relative to the root
+ base_path: path relative to source root we're building in, used to resolve
+ target-relative paths
+ output_filename: output .mk file name to write
+ spec, configs: gyp info
+ part_of_all: flag indicating this target is part of 'all'
+ write_alias_target: flag indicating whether to create short aliases for
+ this target
+ sdk_version: what to emit for LOCAL_SDK_VERSION in output
+ """
gyp.common.EnsureDirExists(output_filename)
self.fp = open(output_filename, "w")
@@ -254,15 +253,15 @@ class AndroidMkWriter(object):
def WriteActions(self, actions, extra_sources, extra_outputs):
"""Write Makefile code for any 'actions' from the gyp input.
- extra_sources: a list that will be filled in with newly generated source
- files, if any
- extra_outputs: a list that will be filled in with any outputs of these
- actions (used to make other pieces dependent on these
- actions)
- """
+ extra_sources: a list that will be filled in with newly generated source
+ files, if any
+ extra_outputs: a list that will be filled in with any outputs of these
+ actions (used to make other pieces dependent on these
+ actions)
+ """
for action in actions:
name = make.StringToMakefileVariable(
- "%s_%s" % (self.relative_target, action["action_name"])
+ "{}_{}".format(self.relative_target, action["action_name"])
)
self.WriteLn('### Rules for action "%s":' % action["action_name"])
inputs = action["inputs"]
@@ -350,7 +349,7 @@ class AndroidMkWriter(object):
for output in outputs[1:]:
# Make each output depend on the main output, with an empty command
# to force make to notice that the mtime has changed.
- self.WriteLn("%s: %s ;" % (self.LocalPathify(output), main_output))
+ self.WriteLn(f"{self.LocalPathify(output)}: {main_output} ;")
extra_outputs += outputs
self.WriteLn()
@@ -360,11 +359,11 @@ class AndroidMkWriter(object):
def WriteRules(self, rules, extra_sources, extra_outputs):
"""Write Makefile code for any 'rules' from the gyp input.
- extra_sources: a list that will be filled in with newly generated source
- files, if any
- extra_outputs: a list that will be filled in with any outputs of these
- rules (used to make other pieces dependent on these rules)
- """
+ extra_sources: a list that will be filled in with newly generated source
+ files, if any
+ extra_outputs: a list that will be filled in with any outputs of these
+ rules (used to make other pieces dependent on these rules)
+ """
if len(rules) == 0:
return
@@ -372,7 +371,7 @@ class AndroidMkWriter(object):
if len(rule.get("rule_sources", [])) == 0:
continue
name = make.StringToMakefileVariable(
- "%s_%s" % (self.relative_target, rule["rule_name"])
+ "{}_{}".format(self.relative_target, rule["rule_name"])
)
self.WriteLn('\n### Generated for rule "%s":' % name)
self.WriteLn('# "%s":' % rule)
@@ -452,7 +451,7 @@ class AndroidMkWriter(object):
for output in outputs[1:]:
# Make each output depend on the main output, with an empty command
# to force make to notice that the mtime has changed.
- self.WriteLn("%s: %s ;" % (output, main_output))
+ self.WriteLn(f"{output}: {main_output} ;")
self.WriteLn()
self.WriteLn()
@@ -460,9 +459,9 @@ class AndroidMkWriter(object):
def WriteCopies(self, copies, extra_outputs):
"""Write Makefile code for any 'copies' from the gyp input.
- extra_outputs: a list that will be filled in with any outputs of this action
- (used to make other pieces dependent on this action)
- """
+ extra_outputs: a list that will be filled in with any outputs of this action
+ (used to make other pieces dependent on this action)
+ """
self.WriteLn("### Generated for copy rule.")
variable = make.StringToMakefileVariable(self.relative_target + "_copies")
@@ -487,25 +486,25 @@ class AndroidMkWriter(object):
self.LocalPathify(os.path.join(copy["destination"], filename))
)
- self.WriteLn(
- "%s: %s $(GYP_TARGET_DEPENDENCIES) | $(ACP)" % (output, path)
- )
+ self.WriteLn(f"{output}: {path} $(GYP_TARGET_DEPENDENCIES) | $(ACP)")
self.WriteLn("\t@echo Copying: $@")
self.WriteLn("\t$(hide) mkdir -p $(dir $@)")
self.WriteLn("\t$(hide) $(ACP) -rpf $< $@")
self.WriteLn()
outputs.append(output)
- self.WriteLn("%s = %s" % (variable, " ".join(map(make.QuoteSpaces, outputs))))
+ self.WriteLn(
+ "{} = {}".format(variable, " ".join(map(make.QuoteSpaces, outputs)))
+ )
extra_outputs.append("$(%s)" % variable)
self.WriteLn()
def WriteSourceFlags(self, spec, configs):
"""Write out the flags and include paths used to compile source files for
- the current target.
+ the current target.
- Args:
- spec, configs: input from gyp.
- """
+ Args:
+ spec, configs: input from gyp.
+ """
for configname, config in sorted(configs.items()):
extracted_includes = []
@@ -554,16 +553,16 @@ class AndroidMkWriter(object):
def WriteSources(self, spec, configs, extra_sources):
"""Write Makefile code for any 'sources' from the gyp input.
- These are source files necessary to build the current target.
- We need to handle shared_intermediate directory source files as
- a special case by copying them to the intermediate directory and
- treating them as a generated sources. Otherwise the Android build
- rules won't pick them up.
-
- Args:
- spec, configs: input from gyp.
- extra_sources: Sources generated from Actions or Rules.
- """
+ These are source files necessary to build the current target.
+ We need to handle shared_intermediate directory source files as
+ a special case by copying them to the intermediate directory and
+ treating them as a generated sources. Otherwise the Android build
+ rules won't pick them up.
+
+ Args:
+ spec, configs: input from gyp.
+ extra_sources: Sources generated from Actions or Rules.
+ """
sources = filter(make.Compilable, spec.get("sources", []))
generated_not_sources = [x for x in extra_sources if not make.Compilable(x)]
extra_sources = filter(make.Compilable, extra_sources)
@@ -617,7 +616,7 @@ class AndroidMkWriter(object):
if IsCPPExtension(ext) and ext != local_cpp_extension:
local_file = root + local_cpp_extension
if local_file != source:
- self.WriteLn("%s: %s" % (local_file, self.LocalPathify(source)))
+ self.WriteLn(f"{local_file}: {self.LocalPathify(source)}")
self.WriteLn("\tmkdir -p $(@D); cp $< $@")
origin_src_dirs.append(os.path.dirname(source))
final_generated_sources.append(local_file)
@@ -640,10 +639,10 @@ class AndroidMkWriter(object):
def ComputeAndroidModule(self, spec):
"""Return the Android module name used for a gyp spec.
- We use the complete qualified target name to avoid collisions between
- duplicate targets in different directories. We also add a suffix to
- distinguish gyp-generated module names.
- """
+ We use the complete qualified target name to avoid collisions between
+ duplicate targets in different directories. We also add a suffix to
+ distinguish gyp-generated module names.
+ """
if int(spec.get("android_unmangled_name", 0)):
assert self.type != "shared_library" or self.target.startswith("lib")
@@ -662,7 +661,7 @@ class AndroidMkWriter(object):
suffix = "_gyp"
if self.path:
- middle = make.StringToMakefileVariable("%s_%s" % (self.path, self.target))
+ middle = make.StringToMakefileVariable(f"{self.path}_{self.target}")
else:
middle = make.StringToMakefileVariable(self.target)
@@ -671,11 +670,11 @@ class AndroidMkWriter(object):
def ComputeOutputParts(self, spec):
"""Return the 'output basename' of a gyp spec, split into filename + ext.
- Android libraries must be named the same thing as their module name,
- otherwise the linker can't find them, so product_name and so on must be
- ignored if we are building a library, and the "lib" prepending is
- not done for Android.
- """
+ Android libraries must be named the same thing as their module name,
+ otherwise the linker can't find them, so product_name and so on must be
+ ignored if we are building a library, and the "lib" prepending is
+ not done for Android.
+ """
assert self.type != "loadable_module" # TODO: not supported?
target = spec["target_name"]
@@ -711,17 +710,17 @@ class AndroidMkWriter(object):
def ComputeOutputBasename(self, spec):
"""Return the 'output basename' of a gyp spec.
- E.g., the loadable module 'foobar' in directory 'baz' will produce
- 'libfoobar.so'
- """
+ E.g., the loadable module 'foobar' in directory 'baz' will produce
+ 'libfoobar.so'
+ """
return "".join(self.ComputeOutputParts(spec))
def ComputeOutput(self, spec):
"""Return the 'output' (full output path) of a gyp spec.
- E.g., the loadable module 'foobar' in directory 'baz' will produce
- '$(obj)/baz/libfoobar.so'
- """
+ E.g., the loadable module 'foobar' in directory 'baz' will produce
+ '$(obj)/baz/libfoobar.so'
+ """
if self.type == "executable":
# We install host executables into shared_intermediate_dir so they can be
# run by gyp rules that refer to PRODUCT_DIR.
@@ -740,7 +739,7 @@ class AndroidMkWriter(object):
% (self.android_class, self.android_module)
)
else:
- path = "$(call intermediates-dir-for,%s,%s,,,$(GYP_VAR_PREFIX))" % (
+ path = "$(call intermediates-dir-for,{},{},,,$(GYP_VAR_PREFIX))".format(
self.android_class,
self.android_module,
)
@@ -749,14 +748,14 @@ class AndroidMkWriter(object):
return os.path.join(path, self.ComputeOutputBasename(spec))
def NormalizeIncludePaths(self, include_paths):
- """ Normalize include_paths.
- Convert absolute paths to relative to the Android top directory.
-
- Args:
- include_paths: A list of unprocessed include paths.
- Returns:
- A list of normalized include paths.
- """
+ """Normalize include_paths.
+ Convert absolute paths to relative to the Android top directory.
+
+ Args:
+ include_paths: A list of unprocessed include paths.
+ Returns:
+ A list of normalized include paths.
+ """
normalized = []
for path in include_paths:
if path[0] == "/":
@@ -767,11 +766,11 @@ class AndroidMkWriter(object):
def ExtractIncludesFromCFlags(self, cflags):
"""Extract includes "-I..." out from cflags
- Args:
- cflags: A list of compiler flags, which may be mixed with "-I.."
- Returns:
- A tuple of lists: (clean_clfags, include_paths). "-I.." is trimmed.
- """
+ Args:
+ cflags: A list of compiler flags, which may be mixed with "-I.."
+ Returns:
+ A tuple of lists: (clean_clfags, include_paths). "-I.." is trimmed.
+ """
clean_cflags = []
include_paths = []
for flag in cflags:
@@ -785,14 +784,14 @@ class AndroidMkWriter(object):
def FilterLibraries(self, libraries):
"""Filter the 'libraries' key to separate things that shouldn't be ldflags.
- Library entries that look like filenames should be converted to android
- module names instead of being passed to the linker as flags.
+ Library entries that look like filenames should be converted to android
+ module names instead of being passed to the linker as flags.
- Args:
- libraries: the value of spec.get('libraries')
- Returns:
- A tuple (static_lib_modules, dynamic_lib_modules, ldflags)
- """
+ Args:
+ libraries: the value of spec.get('libraries')
+ Returns:
+ A tuple (static_lib_modules, dynamic_lib_modules, ldflags)
+ """
static_lib_modules = []
dynamic_lib_modules = []
ldflags = []
@@ -823,10 +822,10 @@ class AndroidMkWriter(object):
def ComputeDeps(self, spec):
"""Compute the dependencies of a gyp spec.
- Returns a tuple (deps, link_deps), where each is a list of
- filenames that will need to be put in front of make for either
- building (deps) or linking (link_deps).
- """
+ Returns a tuple (deps, link_deps), where each is a list of
+ filenames that will need to be put in front of make for either
+ building (deps) or linking (link_deps).
+ """
deps = []
link_deps = []
if "dependencies" in spec:
@@ -846,9 +845,9 @@ class AndroidMkWriter(object):
def WriteTargetFlags(self, spec, configs, link_deps):
"""Write Makefile code to specify the link flags and library dependencies.
- spec, configs: input from gyp.
- link_deps: link dependency list; see ComputeDeps()
- """
+ spec, configs: input from gyp.
+ link_deps: link dependency list; see ComputeDeps()
+ """
# Libraries (i.e. -lfoo)
# These must be included even for static libraries as some of them provide
# implicit include paths through the build system.
@@ -891,12 +890,12 @@ class AndroidMkWriter(object):
):
"""Write Makefile code to produce the final target of the gyp spec.
- spec, configs: input from gyp.
- deps, link_deps: dependency lists; see ComputeDeps()
- part_of_all: flag indicating this target is part of 'all'
- write_alias_target: flag indicating whether to create short aliases for this
- target
- """
+ spec, configs: input from gyp.
+ deps, link_deps: dependency lists; see ComputeDeps()
+ part_of_all: flag indicating this target is part of 'all'
+ write_alias_target: flag indicating whether to create short aliases for this
+ target
+ """
self.WriteLn("### Rules for final target.")
if self.type != "none":
@@ -909,7 +908,7 @@ class AndroidMkWriter(object):
if isinstance(v, list):
self.WriteList(v, k)
else:
- self.WriteLn("%s := %s" % (k, make.QuoteIfNecessary(v)))
+ self.WriteLn(f"{k} := {make.QuoteIfNecessary(v)}")
self.WriteLn("")
# Add to the set of targets which represent the gyp 'all' target. We use the
@@ -928,7 +927,7 @@ class AndroidMkWriter(object):
if self.target != self.android_module and write_alias_target:
self.WriteLn("# Alias gyp target name.")
self.WriteLn(".PHONY: %s" % self.target)
- self.WriteLn("%s: %s" % (self.target, self.android_module))
+ self.WriteLn(f"{self.target}: {self.android_module}")
self.WriteLn("")
# Add the command to trigger build of the target type depending
@@ -975,25 +974,25 @@ class AndroidMkWriter(object):
):
"""Write a variable definition that is a list of values.
- E.g. WriteList(['a','b'], 'foo', prefix='blah') writes out
- foo = blaha blahb
- but in a pretty-printed style.
- """
+ E.g. WriteList(['a','b'], 'foo', prefix='blah') writes out
+ foo = blaha blahb
+ but in a pretty-printed style.
+ """
values = ""
if value_list:
value_list = [quoter(prefix + value) for value in value_list]
if local_pathify:
value_list = [self.LocalPathify(value) for value in value_list]
values = " \\\n\t" + " \\\n\t".join(value_list)
- self.fp.write("%s :=%s\n\n" % (variable, values))
+ self.fp.write(f"{variable} :={values}\n\n")
def WriteLn(self, text=""):
self.fp.write(text + "\n")
def LocalPathify(self, path):
"""Convert a subdirectory-relative path into a normalized path which starts
- with the make variable $(LOCAL_PATH) (i.e. the top of the project tree).
- Absolute paths, or paths that contain variables, are just normalized."""
+ with the make variable $(LOCAL_PATH) (i.e. the top of the project tree).
+ Absolute paths, or paths that contain variables, are just normalized."""
if "$(" in path or os.path.isabs(path):
# path is not a file in the project tree in this case, but calling
# normpath is still important for trimming trailing slashes.
@@ -1006,7 +1005,7 @@ class AndroidMkWriter(object):
# so we don't look for a slash.
assert local_path.startswith(
"$(LOCAL_PATH)"
- ), "Path %s attempts to escape from gyp path %s !)" % (path, self.path)
+ ), f"Path {path} attempts to escape from gyp path {self.path} !)"
return local_path
def ExpandInputRoot(self, template, expansion, dirname):
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py
index f5ceacfca36..c95d18415cd 100644
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py
@@ -28,21 +28,15 @@ not be able to find the header file directories described in the generated
CMakeLists.txt file.
"""
-from __future__ import print_function
import multiprocessing
import os
import signal
-import string
import subprocess
import gyp.common
import gyp.xcode_emulation
-try:
- # maketrans moved to str in python3.
- _maketrans = string.maketrans
-except NameError:
- _maketrans = str.maketrans
+_maketrans = str.maketrans
generator_default_variables = {
"EXECUTABLE_PREFIX": "",
@@ -223,7 +217,7 @@ def WriteVariable(output, variable_name, prepend=None):
output.write("}")
-class CMakeTargetType(object):
+class CMakeTargetType:
def __init__(self, command, modifier, property_modifier):
self.command = command
self.modifier = modifier
@@ -263,7 +257,7 @@ def WriteActions(target_name, actions, extra_sources, extra_deps, path_to_gyp, o
"""
for action in actions:
action_name = StringToCMakeTargetName(action["action_name"])
- action_target_name = "%s__%s" % (target_name, action_name)
+ action_target_name = f"{target_name}__{action_name}"
inputs = action["inputs"]
inputs_name = action_target_name + "__input"
@@ -282,7 +276,7 @@ def WriteActions(target_name, actions, extra_sources, extra_deps, path_to_gyp, o
# Build up a list of outputs.
# Collect the output dirs we'll need.
- dirs = set(dir for dir in (os.path.dirname(o) for o in outputs) if dir)
+ dirs = {dir for dir in (os.path.dirname(o) for o in outputs) if dir}
if int(action.get("process_outputs_as_sources", False)):
extra_sources.extend(zip(cmake_outputs, outputs))
@@ -377,7 +371,7 @@ def WriteRules(target_name, rules, extra_sources, extra_deps, path_to_gyp, outpu
# Build up a list of outputs.
# Collect the output dirs we'll need.
- dirs = set(dir for dir in (os.path.dirname(o) for o in outputs) if dir)
+ dirs = {dir for dir in (os.path.dirname(o) for o in outputs) if dir}
# Create variables for the output, as 'local' variable will be unset.
these_outputs = []
@@ -478,7 +472,7 @@ def WriteCopies(target_name, copies, extra_deps, path_to_gyp, output):
extra_deps.append(copy_name)
return
- class Copy(object):
+ class Copy:
def __init__(self, ext, command):
self.cmake_inputs = []
self.cmake_outputs = []
@@ -587,7 +581,7 @@ def CreateCMakeTargetFullName(qualified_target):
return StringToCMakeTargetName(cmake_target_full_name)
-class CMakeNamer(object):
+class CMakeNamer:
"""Converts Gyp target names into CMake target names.
CMake requires that target names be globally unique. One way to ensure
@@ -1047,7 +1041,7 @@ def WriteTarget(
# XCode settings
xcode_settings = config.get("xcode_settings", {})
- for xcode_setting, xcode_value in xcode_settings.viewitems():
+ for xcode_setting, xcode_value in xcode_settings.items():
SetTargetProperty(
output,
cmake_target_name,
@@ -1285,11 +1279,11 @@ def PerformBuild(data, configurations, params):
os.path.join(generator_dir, output_dir, config_name)
)
arguments = ["cmake", "-G", "Ninja"]
- print("Generating [%s]: %s" % (config_name, arguments))
+ print(f"Generating [{config_name}]: {arguments}")
subprocess.check_call(arguments, cwd=build_dir)
arguments = ["ninja", "-C", build_dir]
- print("Building [%s]: %s" % (config_name, arguments))
+ print(f"Building [{config_name}]: {arguments}")
subprocess.check_call(arguments)
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/dump_dependency_json.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/dump_dependency_json.py
index 46f68e03841..99d5c1fd69d 100644
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/dump_dependency_json.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/dump_dependency_json.py
@@ -2,7 +2,6 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-from __future__ import print_function
import os
import gyp
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/eclipse.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/eclipse.py
index 4bd49725dc1..1ff0dc83ae2 100644
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/eclipse.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/eclipse.py
@@ -26,8 +26,6 @@ import gyp.msvs_emulation
import shlex
import xml.etree.cElementTree as ET
-PY3 = bytes != str
-
generator_wants_static_library_dependencies_adjusted = False
generator_default_variables = {}
@@ -105,9 +103,7 @@ def GetAllIncludeDirectories(
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
)
- output = proc.communicate()[1]
- if PY3:
- output = output.decode("utf-8")
+ output = proc.communicate()[1].decode("utf-8")
# Extract the list of include dirs from the output, which has this format:
# ...
# #include "..." search starts here:
@@ -245,9 +241,7 @@ def GetAllDefines(target_list, target_dicts, data, config_name, params, compiler
cpp_proc = subprocess.Popen(
args=command, cwd=".", stdin=subprocess.PIPE, stdout=subprocess.PIPE
)
- cpp_output = cpp_proc.communicate()[0]
- if PY3:
- cpp_output = cpp_output.decode("utf-8")
+ cpp_output = cpp_proc.communicate()[0].decode("utf-8")
cpp_lines = cpp_output.split("\n")
for cpp_line in cpp_lines:
if not cpp_line.strip():
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/gypsh.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/gypsh.py
index 2d8aba5d1c1..82a07ddc657 100644
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/gypsh.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/gypsh.py
@@ -49,7 +49,7 @@ def GenerateOutput(target_list, target_dicts, data, params):
# Use a banner that looks like the stock Python one and like what
# code.interact uses by default, but tack on something to indicate what
# locals are available, and identify gypsh.
- banner = "Python %s on %s\nlocals.keys() = %s\ngypsh" % (
+ banner = "Python {} on {}\nlocals.keys() = {}\ngypsh".format(
sys.version,
sys.platform,
repr(sorted(locals.keys())),
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py
index d163ae3135a..c595f20fe2d 100644
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py
@@ -21,7 +21,6 @@
# toplevel Makefile. It may make sense to generate some .mk files on
# the side to keep the files readable.
-from __future__ import print_function
import os
import re
@@ -108,7 +107,7 @@ def CalculateVariables(default_variables, params):
def CalculateGeneratorInputInfo(params):
"""Calculate the generator specific info that gets fed to input (called by
- gyp)."""
+ gyp)."""
generator_flags = params.get("generator_flags", {})
android_ndk_version = generator_flags.get("android_ndk_version", None)
# Android NDK requires a strict link order.
@@ -320,7 +319,7 @@ CFLAGS.host ?= $(CPPFLAGS_host) $(CFLAGS_host)
CXX.host ?= %(CXX.host)s
CXXFLAGS.host ?= $(CPPFLAGS_host) $(CXXFLAGS_host)
LINK.host ?= %(LINK.host)s
-LDFLAGS.host ?=
+LDFLAGS.host ?= $(LDFLAGS_host)
AR.host ?= %(AR.host)s
# Define a dir function that can handle spaces.
@@ -615,15 +614,15 @@ def Target(filename):
def EscapeShellArgument(s):
"""Quotes an argument so that it will be interpreted literally by a POSIX
- shell. Taken from
- http://stackoverflow.com/questions/35817/whats-the-best-way-to-escape-ossystem-calls-in-python
- """
+ shell. Taken from
+ http://stackoverflow.com/questions/35817/whats-the-best-way-to-escape-ossystem-calls-in-python
+ """
return "'" + s.replace("'", "'\\''") + "'"
def EscapeMakeVariableExpansion(s):
"""Make has its own variable expansion syntax using $. We must escape it for
- string to be interpreted literally."""
+ string to be interpreted literally."""
return s.replace("$", "$$")
@@ -638,7 +637,7 @@ def EscapeCppDefine(s):
def QuoteIfNecessary(string):
"""TODO: Should this ideally be replaced with one or more of the above
- functions?"""
+ functions?"""
if '"' in string:
string = '"' + string.replace('"', '\\"') + '"'
return string
@@ -679,11 +678,11 @@ target_outputs = {}
target_link_deps = {}
-class MakefileWriter(object):
+class MakefileWriter:
"""MakefileWriter packages up the writing of one target-specific foobar.mk.
- Its only real entry point is Write(), and is mostly used for namespacing.
- """
+ Its only real entry point is Write(), and is mostly used for namespacing.
+ """
def __init__(self, generator_flags, flavor):
self.generator_flags = generator_flags
@@ -737,14 +736,14 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD
):
"""The main entry point: writes a .mk file for a single target.
- Arguments:
- qualified_target: target we're generating
- base_path: path relative to source root we're building in, used to resolve
- target-relative paths
- output_filename: output .mk file name to write
- spec, configs: gyp info
- part_of_all: flag indicating this target is part of 'all'
- """
+ Arguments:
+ qualified_target: target we're generating
+ base_path: path relative to source root we're building in, used to resolve
+ target-relative paths
+ output_filename: output .mk file name to write
+ spec, configs: gyp info
+ part_of_all: flag indicating this target is part of 'all'
+ """
gyp.common.EnsureDirExists(output_filename)
self.fp = open(output_filename, "w")
@@ -844,7 +843,7 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD
sources = [x for x in all_sources if Compilable(x)]
if sources:
self.WriteLn(SHARED_HEADER_SUFFIX_RULES_COMMENT1)
- extensions = set([os.path.splitext(s)[1] for s in sources])
+ extensions = {os.path.splitext(s)[1] for s in sources}
for ext in extensions:
if ext in self.suffix_rules_srcdir:
self.WriteLn(self.suffix_rules_srcdir[ext])
@@ -888,15 +887,15 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD
def WriteSubMake(self, output_filename, makefile_path, targets, build_dir):
"""Write a "sub-project" Makefile.
- This is a small, wrapper Makefile that calls the top-level Makefile to build
- the targets from a single gyp file (i.e. a sub-project).
+ This is a small, wrapper Makefile that calls the top-level Makefile to build
+ the targets from a single gyp file (i.e. a sub-project).
- Arguments:
- output_filename: sub-project Makefile name to write
- makefile_path: path to the top-level Makefile
- targets: list of "all" targets for this sub-project
- build_dir: build output directory, relative to the sub-project
- """
+ Arguments:
+ output_filename: sub-project Makefile name to write
+ makefile_path: path to the top-level Makefile
+ targets: list of "all" targets for this sub-project
+ build_dir: build output directory, relative to the sub-project
+ """
gyp.common.EnsureDirExists(output_filename)
self.fp = open(output_filename, "w")
self.fp.write(header)
@@ -910,7 +909,7 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD
self.WriteLn("all:")
if makefile_path:
makefile_path = " -C " + makefile_path
- self.WriteLn("\t$(MAKE)%s %s" % (makefile_path, " ".join(targets)))
+ self.WriteLn("\t$(MAKE){} {}".format(makefile_path, " ".join(targets)))
self.fp.close()
def WriteActions(
@@ -923,17 +922,17 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD
):
"""Write Makefile code for any 'actions' from the gyp input.
- extra_sources: a list that will be filled in with newly generated source
- files, if any
- extra_outputs: a list that will be filled in with any outputs of these
- actions (used to make other pieces dependent on these
- actions)
- part_of_all: flag indicating this target is part of 'all'
- """
+ extra_sources: a list that will be filled in with newly generated source
+ files, if any
+ extra_outputs: a list that will be filled in with any outputs of these
+ actions (used to make other pieces dependent on these
+ actions)
+ part_of_all: flag indicating this target is part of 'all'
+ """
env = self.GetSortedXcodeEnv()
for action in actions:
name = StringToMakefileVariable(
- "%s_%s" % (self.qualified_target, action["action_name"])
+ "{}_{}".format(self.qualified_target, action["action_name"])
)
self.WriteLn('### Rules for action "%s":' % action["action_name"])
inputs = action["inputs"]
@@ -960,9 +959,11 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD
]
command = gyp.common.EncodePOSIXShellList(action_commands)
if "message" in action:
- self.WriteLn("quiet_cmd_%s = ACTION %s $@" % (name, action["message"]))
+ self.WriteLn(
+ "quiet_cmd_{} = ACTION {} $@".format(name, action["message"])
+ )
else:
- self.WriteLn("quiet_cmd_%s = ACTION %s $@" % (name, name))
+ self.WriteLn(f"quiet_cmd_{name} = ACTION {name} $@")
if len(dirs) > 0:
command = "mkdir -p %s" % " ".join(dirs) + "; " + command
@@ -1022,7 +1023,7 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD
# Stuff the outputs in a variable so we can refer to them later.
outputs_variable = "action_%s_outputs" % name
- self.WriteLn("%s := %s" % (outputs_variable, " ".join(outputs)))
+ self.WriteLn("{} := {}".format(outputs_variable, " ".join(outputs)))
extra_outputs.append("$(%s)" % outputs_variable)
self.WriteLn()
@@ -1038,16 +1039,16 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD
):
"""Write Makefile code for any 'rules' from the gyp input.
- extra_sources: a list that will be filled in with newly generated source
- files, if any
- extra_outputs: a list that will be filled in with any outputs of these
- rules (used to make other pieces dependent on these rules)
- part_of_all: flag indicating this target is part of 'all'
- """
+ extra_sources: a list that will be filled in with newly generated source
+ files, if any
+ extra_outputs: a list that will be filled in with any outputs of these
+ rules (used to make other pieces dependent on these rules)
+ part_of_all: flag indicating this target is part of 'all'
+ """
env = self.GetSortedXcodeEnv()
for rule in rules:
name = StringToMakefileVariable(
- "%s_%s" % (self.qualified_target, rule["rule_name"])
+ "{}_{}".format(self.qualified_target, rule["rule_name"])
)
count = 0
self.WriteLn("### Generated for rule %s:" % name)
@@ -1175,10 +1176,10 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD
def WriteCopies(self, copies, extra_outputs, part_of_all):
"""Write Makefile code for any 'copies' from the gyp input.
- extra_outputs: a list that will be filled in with any outputs of this action
- (used to make other pieces dependent on this action)
- part_of_all: flag indicating this target is part of 'all'
- """
+ extra_outputs: a list that will be filled in with any outputs of this action
+ (used to make other pieces dependent on this action)
+ part_of_all: flag indicating this target is part of 'all'
+ """
self.WriteLn("### Generated for copy rule.")
variable = StringToMakefileVariable(self.qualified_target + "_copies")
@@ -1206,7 +1207,9 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD
path = gyp.xcode_emulation.ExpandEnvVars(path, env)
self.WriteDoCmd([output], [path], "copy", part_of_all)
outputs.append(output)
- self.WriteLn("%s = %s" % (variable, " ".join(QuoteSpaces(o) for o in outputs)))
+ self.WriteLn(
+ "{} = {}".format(variable, " ".join(QuoteSpaces(o) for o in outputs))
+ )
extra_outputs.append("$(%s)" % variable)
self.WriteLn()
@@ -1278,15 +1281,15 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD
precompiled_header,
):
"""Write Makefile code for any 'sources' from the gyp input.
- These are source files necessary to build the current target.
-
- configs, deps, sources: input from gyp.
- extra_outputs: a list of extra outputs this action should be dependent on;
- used to serialize action/rules before compilation
- extra_link_deps: a list that will be filled in with any outputs of
- compilation (to be used in link lines)
- part_of_all: flag indicating this target is part of 'all'
- """
+ These are source files necessary to build the current target.
+
+ configs, deps, sources: input from gyp.
+ extra_outputs: a list of extra outputs this action should be dependent on;
+ used to serialize action/rules before compilation
+ extra_link_deps: a list that will be filled in with any outputs of
+ compilation (to be used in link lines)
+ part_of_all: flag indicating this target is part of 'all'
+ """
# Write configuration-specific variables for CFLAGS, etc.
for configname in sorted(configs.keys()):
@@ -1300,8 +1303,7 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD
if self.flavor == "mac":
cflags = self.xcode_settings.GetCflags(
- configname,
- arch=config.get('xcode_configuration_platform')
+ configname, arch=config.get("xcode_configuration_platform")
)
cflags_c = self.xcode_settings.GetCflagsC(configname)
cflags_cc = self.xcode_settings.GetCflagsCC(configname)
@@ -1364,7 +1366,7 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD
if pchdeps:
self.WriteLn("# Dependencies from obj files to their precompiled headers")
for source, obj, gch in pchdeps:
- self.WriteLn("%s: %s" % (obj, gch))
+ self.WriteLn(f"{obj}: {gch}")
self.WriteLn("# End precompiled header dependencies")
if objs:
@@ -1436,12 +1438,12 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD
"mm": "GYP_PCH_OBJCXXFLAGS",
}[lang]
self.WriteLn(
- "%s: %s := %s " % (gch, var_name, lang_flag) + "$(DEFS_$(BUILDTYPE)) "
+ f"{gch}: {var_name} := {lang_flag} " + "$(DEFS_$(BUILDTYPE)) "
"$(INCS_$(BUILDTYPE)) "
"$(CFLAGS_$(BUILDTYPE)) " + extra_flags
)
- self.WriteLn("%s: %s FORCE_DO_CMD" % (gch, input))
+ self.WriteLn(f"{gch}: {input} FORCE_DO_CMD")
self.WriteLn("\t@$(call do_cmd,pch_%s,1)" % lang)
self.WriteLn("")
assert " " not in gch, "Spaces in gch filenames not supported (%s)" % gch
@@ -1451,9 +1453,9 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD
def ComputeOutputBasename(self, spec):
"""Return the 'output basename' of a gyp spec.
- E.g., the loadable module 'foobar' in directory 'baz' will produce
- 'libfoobar.so'
- """
+ E.g., the loadable module 'foobar' in directory 'baz' will produce
+ 'libfoobar.so'
+ """
assert not self.is_mac_bundle
if self.flavor == "mac" and self.type in (
@@ -1510,9 +1512,9 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD
def ComputeOutput(self, spec):
"""Return the 'output' (full output path) of a gyp spec.
- E.g., the loadable module 'foobar' in directory 'baz' will produce
- '$(obj)/baz/libfoobar.so'
- """
+ E.g., the loadable module 'foobar' in directory 'baz' will produce
+ '$(obj)/baz/libfoobar.so'
+ """
assert not self.is_mac_bundle
path = os.path.join("$(obj)." + self.toolset, self.path)
@@ -1535,10 +1537,10 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD
def ComputeDeps(self, spec):
"""Compute the dependencies of a gyp spec.
- Returns a tuple (deps, link_deps), where each is a list of
- filenames that will need to be put in front of make for either
- building (deps) or linking (link_deps).
- """
+ Returns a tuple (deps, link_deps), where each is a list of
+ filenames that will need to be put in front of make for either
+ building (deps) or linking (link_deps).
+ """
deps = []
link_deps = []
if "dependencies" in spec:
@@ -1571,11 +1573,11 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD
):
"""Write Makefile code to produce the final target of the gyp spec.
- spec, configs: input from gyp.
- deps, link_deps: dependency lists; see ComputeDeps()
- extra_outputs: any extra outputs that our target should depend on
- part_of_all: flag indicating this target is part of 'all'
- """
+ spec, configs: input from gyp.
+ deps, link_deps: dependency lists; see ComputeDeps()
+ extra_outputs: any extra outputs that our target should depend on
+ part_of_all: flag indicating this target is part of 'all'
+ """
self.WriteLn("### Rules for final target.")
@@ -1597,7 +1599,7 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD
configname,
generator_default_variables["PRODUCT_DIR"],
lambda p: Sourceify(self.Absolutify(p)),
- arch=config.get('xcode_configuration_platform')
+ arch=config.get("xcode_configuration_platform"),
)
# TARGET_POSTBUILDS_$(BUILDTYPE) is added to postbuilds later on.
@@ -1860,7 +1862,7 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD
and self.toolset == "target"
):
# On mac, products are created in install_path immediately.
- assert install_path == self.output, "%s != %s" % (
+ assert install_path == self.output, "{} != {}".format(
install_path,
self.output,
)
@@ -1897,24 +1899,24 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD
def WriteList(self, value_list, variable=None, prefix="", quoter=QuoteIfNecessary):
"""Write a variable definition that is a list of values.
- E.g. WriteList(['a','b'], 'foo', prefix='blah') writes out
- foo = blaha blahb
- but in a pretty-printed style.
- """
+ E.g. WriteList(['a','b'], 'foo', prefix='blah') writes out
+ foo = blaha blahb
+ but in a pretty-printed style.
+ """
values = ""
if value_list:
value_list = [quoter(prefix + value) for value in value_list]
values = " \\\n\t" + " \\\n\t".join(value_list)
- self.fp.write("%s :=%s\n\n" % (variable, values))
+ self.fp.write(f"{variable} :={values}\n\n")
def WriteDoCmd(
self, outputs, inputs, command, part_of_all, comment=None, postbuilds=False
):
"""Write a Makefile rule that uses do_cmd.
- This makes the outputs dependent on the command line that was run,
- as well as support the V= make command line flag.
- """
+ This makes the outputs dependent on the command line that was run,
+ as well as support the V= make command line flag.
+ """
suffix = ""
if postbuilds:
assert "," not in command
@@ -1922,7 +1924,7 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD
self.WriteMakeRule(
outputs,
inputs,
- actions=["$(call do_cmd,%s%s)" % (command, suffix)],
+ actions=[f"$(call do_cmd,{command}{suffix})"],
comment=comment,
command=command,
force=True,
@@ -1947,18 +1949,18 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD
):
"""Write a Makefile rule, with some extra tricks.
- outputs: a list of outputs for the rule (note: this is not directly
- supported by make; see comments below)
- inputs: a list of inputs for the rule
- actions: a list of shell commands to run for the rule
- comment: a comment to put in the Makefile above the rule (also useful
- for making this Python script's code self-documenting)
- order_only: if true, makes the dependency order-only
- force: if true, include FORCE_DO_CMD as an order-only dep
- phony: if true, the rule does not actually generate the named output, the
- output is just a name to run the rule
- command: (optional) command name to generate unambiguous labels
- """
+ outputs: a list of outputs for the rule (note: this is not directly
+ supported by make; see comments below)
+ inputs: a list of inputs for the rule
+ actions: a list of shell commands to run for the rule
+ comment: a comment to put in the Makefile above the rule (also useful
+ for making this Python script's code self-documenting)
+ order_only: if true, makes the dependency order-only
+ force: if true, include FORCE_DO_CMD as an order-only dep
+ phony: if true, the rule does not actually generate the named output, the
+ output is just a name to run the rule
+ command: (optional) command name to generate unambiguous labels
+ """
outputs = [QuoteSpaces(o) for o in outputs]
inputs = [QuoteSpaces(i) for i in inputs]
@@ -1974,11 +1976,11 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD
# Order only rule: Just write a simple rule.
# TODO(evanm): just make order_only a list of deps instead of this hack.
self.WriteLn(
- "%s: | %s%s" % (" ".join(outputs), " ".join(inputs), force_append)
+ "{}: | {}{}".format(" ".join(outputs), " ".join(inputs), force_append)
)
elif len(outputs) == 1:
# Regular rule, one output: Just write a simple rule.
- self.WriteLn("%s: %s%s" % (outputs[0], " ".join(inputs), force_append))
+ self.WriteLn("{}: {}{}".format(outputs[0], " ".join(inputs), force_append))
else:
# Regular rule, more than one output: Multiple outputs are tricky in
# make. We will write three rules:
@@ -1994,10 +1996,12 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD
(command or self.target).encode("utf-8")
).hexdigest()
intermediate = "%s.intermediate" % cmddigest
- self.WriteLn("%s: %s" % (" ".join(outputs), intermediate))
+ self.WriteLn("{}: {}".format(" ".join(outputs), intermediate))
self.WriteLn("\t%s" % "@:")
- self.WriteLn("%s: %s" % (".INTERMEDIATE", intermediate))
- self.WriteLn("%s: %s%s" % (intermediate, " ".join(inputs), force_append))
+ self.WriteLn("{}: {}".format(".INTERMEDIATE", intermediate))
+ self.WriteLn(
+ "{}: {}{}".format(intermediate, " ".join(inputs), force_append)
+ )
actions.insert(0, "$(call do_cmd,touch)")
if actions:
@@ -2008,16 +2012,16 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD
def WriteAndroidNdkModuleRule(self, module_name, all_sources, link_deps):
"""Write a set of LOCAL_XXX definitions for Android NDK.
- These variable definitions will be used by Android NDK but do nothing for
- non-Android applications.
+ These variable definitions will be used by Android NDK but do nothing for
+ non-Android applications.
- Arguments:
- module_name: Android NDK module name, which must be unique among all
- module names.
- all_sources: A list of source files (will be filtered by Compilable).
- link_deps: A list of link dependencies, which must be sorted in
- the order from dependencies to dependents.
- """
+ Arguments:
+ module_name: Android NDK module name, which must be unique among all
+ module names.
+ all_sources: A list of source files (will be filtered by Compilable).
+ link_deps: A list of link dependencies, which must be sorted in
+ the order from dependencies to dependents.
+ """
if self.type not in ("executable", "shared_library", "static_library"):
return
@@ -2129,14 +2133,14 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD
# export foo := a\ b
# it does not -- the backslash is written to the env as literal character.
# So don't escape spaces in |env[k]|.
- self.WriteLn("%s: export %s := %s" % (QuoteSpaces(target), k, v))
+ self.WriteLn(f"{QuoteSpaces(target)}: export {k} := {v}")
def Objectify(self, path):
"""Convert a path to its output directory form."""
if "$(" in path:
path = path.replace("$(obj)/", "$(obj).%s/$(TARGET)/" % self.toolset)
if "$(obj)" not in path:
- path = "$(obj).%s/$(TARGET)/%s" % (self.toolset, path)
+ path = f"$(obj).{self.toolset}/$(TARGET)/{path}"
return path
def Pchify(self, path, lang):
@@ -2144,14 +2148,14 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD
path = self.Absolutify(path)
if "$(" in path:
path = path.replace(
- "$(obj)/", "$(obj).%s/$(TARGET)/pch-%s" % (self.toolset, lang)
+ "$(obj)/", f"$(obj).{self.toolset}/$(TARGET)/pch-{lang}"
)
return path
- return "$(obj).%s/$(TARGET)/pch-%s/%s" % (self.toolset, lang, path)
+ return f"$(obj).{self.toolset}/$(TARGET)/pch-{lang}/{path}"
def Absolutify(self, path):
"""Convert a subdirectory-relative path into a base-relative path.
- Skips over paths that contain variables."""
+ Skips over paths that contain variables."""
if "$(" in path:
# Don't call normpath in this case, as it might collapse the
# path too aggressively if it features '..'. However it's still
@@ -2219,7 +2223,7 @@ def PerformBuild(data, configurations, params):
if options.toplevel_dir and options.toplevel_dir != ".":
arguments += "-C", options.toplevel_dir
arguments.append("BUILDTYPE=" + config)
- print("Building [%s]: %s" % (config, arguments))
+ print(f"Building [{config}]: {arguments}")
subprocess.check_call(arguments)
@@ -2253,7 +2257,7 @@ def GenerateOutput(target_list, target_dicts, data, params):
# away when we add verification that all targets have the
# necessary configurations.
default_configuration = None
- toolsets = set([target_dicts[target]["toolset"] for target in target_list])
+ toolsets = {target_dicts[target]["toolset"] for target in target_list}
for target in target_list:
spec = target_dicts[target]
if spec["default_configuration"] != "Default":
@@ -2328,7 +2332,7 @@ def GenerateOutput(target_list, target_dicts, data, params):
{
"copy_archive_args": copy_archive_arguments,
"flock": "./gyp-flock-tool flock",
- "flock_index": 2
+ "flock_index": 2,
}
)
elif flavor == "freebsd":
@@ -2362,7 +2366,7 @@ def GenerateOutput(target_list, target_dicts, data, params):
value = "$(abspath %s)" % value
wrapper = wrappers.get(key)
if wrapper:
- value = "%s %s" % (wrapper, value)
+ value = f"{wrapper} {value}"
del wrappers[key]
if key in ("CC", "CC.host", "CXX", "CXX.host"):
make_global_settings += (
@@ -2372,10 +2376,10 @@ def GenerateOutput(target_list, target_dicts, data, params):
env_key = key.replace(".", "_") # CC.host -> CC_host
if env_key in os.environ:
value = os.environ[env_key]
- make_global_settings += " %s = %s\n" % (key, value)
+ make_global_settings += f" {key} = {value}\n"
make_global_settings += "endif\n"
else:
- make_global_settings += "%s ?= %s\n" % (key, value)
+ make_global_settings += f"{key} ?= {value}\n"
# TODO(ukai): define cmd when only wrapper is specified in
# make_global_settings.
@@ -2413,8 +2417,8 @@ def GenerateOutput(target_list, target_dicts, data, params):
this_make_global_settings = data[build_file].get("make_global_settings", [])
assert make_global_settings_array == this_make_global_settings, (
- "make_global_settings needs to be the same for all targets. %s vs. %s"
- % (this_make_global_settings, make_global_settings)
+ "make_global_settings needs to be the same for all targets "
+ f"{this_make_global_settings} vs. {make_global_settings}"
)
build_files.add(gyp.common.RelativePath(build_file, options.toplevel_dir))
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py
index 32bf4746a17..8308fa84333 100644
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py
@@ -2,7 +2,6 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-from __future__ import print_function
import ntpath
import os
@@ -26,8 +25,6 @@ import gyp.MSVSVersion as MSVSVersion
from gyp.common import GypError
from gyp.common import OrderedSet
-PY3 = bytes != str
-
# Regular expression for validating Visual Studio GUIDs. If the GUID
# contains lowercase hex letters, MSVS will be fine. However,
@@ -120,9 +117,7 @@ def _GetDomainAndUserName():
call = subprocess.Popen(
["net", "config", "Workstation"], stdout=subprocess.PIPE
)
- config = call.communicate()[0]
- if PY3:
- config = config.decode("utf-8")
+ config = call.communicate()[0].decode("utf-8")
username_re = re.compile(r"^User name\s+(\S+)", re.MULTILINE)
username_match = username_re.search(config)
if username_match:
@@ -157,7 +152,7 @@ def _NormalizedSource(source):
return source
-def _FixPath(path):
+def _FixPath(path, separator="\\"):
"""Convert paths to a form that will make sense in a vcproj file.
Arguments:
@@ -173,9 +168,12 @@ def _FixPath(path):
and not _IsWindowsAbsPath(path)
):
path = os.path.join(fixpath_prefix, path)
- path = path.replace("/", "\\")
+ if separator == "\\":
+ path = path.replace("/", "\\")
path = _NormalizedSource(path)
- if path and path[-1] == "\\":
+ if separator == "/":
+ path = path.replace("\\", "/")
+ if path and path[-1] == separator:
path = path[:-1]
return path
@@ -190,9 +188,9 @@ def _IsWindowsAbsPath(path):
return path.startswith("c:") or path.startswith("C:")
-def _FixPaths(paths):
+def _FixPaths(paths, separator="\\"):
"""Fix each of the paths of the list."""
- return [_FixPath(i) for i in paths]
+ return [_FixPath(i, separator) for i in paths]
def _ConvertSourcesToFilterHierarchy(
@@ -319,7 +317,7 @@ def _ConfigBaseName(config_name, platform_name):
def _ConfigFullName(config_name, config_data):
platform_name = _ConfigPlatform(config_data)
- return "%s|%s" % (_ConfigBaseName(config_name, platform_name), platform_name)
+ return f"{_ConfigBaseName(config_name, platform_name)}|{platform_name}"
def _ConfigWindowsTargetPlatformVersion(config_data, version):
@@ -340,7 +338,7 @@ def _ConfigWindowsTargetPlatformVersion(config_data, version):
# Find a matching entry in sdk_dir\include.
expected_sdk_dir = r"%s\include" % sdk_dir
names = sorted(
- [
+ (
x
for x in (
os.listdir(expected_sdk_dir)
@@ -348,7 +346,7 @@ def _ConfigWindowsTargetPlatformVersion(config_data, version):
else []
)
if x.startswith(version)
- ],
+ ),
reverse=True,
)
if names:
@@ -428,7 +426,9 @@ def _BuildCommandLineForRuleRaw(
# for arguments like "--arg=path" or "/opt:path".
# If the argument starts with a slash or dash, it's probably a command line
# switch
- arguments = [i if (i[:1] in "/-") else _FixPath(i) for i in cmd[1:]]
+ # Return the path with forward slashes because the command using it might
+ # not support backslashes.
+ arguments = [i if (i[:1] in "/-") else _FixPath(i, "/") for i in cmd[1:]]
arguments = [i.replace("$(InputDir)", "%INPUTDIR%") for i in arguments]
arguments = [MSVSSettings.FixVCMacroSlashes(i) for i in arguments]
if quote_cmd:
@@ -620,7 +620,7 @@ def _GenerateNativeRulesForMSVS(p, rules, output_dir, spec, options):
spec: the project dict
options: global generator options
"""
- rules_filename = "%s%s.rules" % (spec["target_name"], options.suffix)
+ rules_filename = "{}{}.rules".format(spec["target_name"], options.suffix)
rules_file = MSVSToolFile.Writer(
os.path.join(output_dir, rules_filename), spec["target_name"]
)
@@ -666,7 +666,7 @@ def _GenerateExternalRules(rules, output_dir, spec, sources, options, actions_to
options: global generator options
actions_to_add: The list of actions we will add to.
"""
- filename = "%s_rules%s.mk" % (spec["target_name"], options.suffix)
+ filename = "{}_rules{}.mk".format(spec["target_name"], options.suffix)
mk_file = gyp.common.WriteOnDiff(os.path.join(output_dir, filename))
# Find cygwin style versions of some paths.
mk_file.write('OutDirCygwin:=$(shell cygpath -u "$(OutDir)")\n')
@@ -709,7 +709,7 @@ def _GenerateExternalRules(rules, output_dir, spec, sources, options, actions_to
cmd = ['"%s"' % i for i in cmd]
cmd = " ".join(cmd)
# Add it to the makefile.
- mk_file.write("%s: %s\n" % (" ".join(outputs), " ".join(inputs)))
+ mk_file.write("{}: {}\n".format(" ".join(outputs), " ".join(inputs)))
mk_file.write("\t%s\n\n" % cmd)
# Close up the file.
mk_file.close()
@@ -1576,7 +1576,7 @@ def _AdjustSourcesAndConvertToFilterHierarchy(
if version.UsesVcxproj():
while (
all([isinstance(s, MSVSProject.Filter) for s in sources])
- and len(set([s.name for s in sources])) == 1
+ and len({s.name for s in sources}) == 1
):
assert all([len(s.contents) == 1 for s in sources])
sources = [s.contents[0] for s in sources]
@@ -1782,8 +1782,8 @@ def _GetCopies(spec):
base_dir = posixpath.split(src_bare)[0]
outer_dir = posixpath.split(src_bare)[1]
fixed_dst = _FixPath(dst)
- full_dst = '"%s\\%s\\"' % (fixed_dst, outer_dir)
- cmd = 'mkdir %s 2>nul & cd "%s" && xcopy /e /f /y "%s" %s' % (
+ full_dst = f'"{fixed_dst}\\{outer_dir}\\"'
+ cmd = 'mkdir {} 2>nul & cd "{}" && xcopy /e /f /y "{}" {}'.format(
full_dst,
_FixPath(base_dir),
outer_dir,
@@ -1794,17 +1794,17 @@ def _GetCopies(spec):
[src],
["dummy_copies", dst],
cmd,
- "Copying %s to %s" % (src, fixed_dst),
+ f"Copying {src} to {fixed_dst}",
)
)
else:
fix_dst = _FixPath(cpy["destination"])
- cmd = 'mkdir "%s" 2>nul & set ERRORLEVEL=0 & copy /Y "%s" "%s"' % (
+ cmd = 'mkdir "{}" 2>nul & set ERRORLEVEL=0 & copy /Y "{}" "{}"'.format(
fix_dst,
_FixPath(src),
_FixPath(dst),
)
- copies.append(([src], [dst], cmd, "Copying %s to %s" % (src, fix_dst)))
+ copies.append(([src], [dst], cmd, f"Copying {src} to {fix_dst}"))
return copies
@@ -1904,12 +1904,12 @@ def _GetPlatformOverridesOfProject(spec):
for config_name, c in spec["configurations"].items():
config_fullname = _ConfigFullName(config_name, c)
platform = c.get("msvs_target_platform", _ConfigPlatform(c))
- fixed_config_fullname = "%s|%s" % (
+ fixed_config_fullname = "{}|{}".format(
_ConfigBaseName(config_name, _ConfigPlatform(c)),
platform,
)
if spec["toolset"] == "host" and generator_supports_multiple_toolsets:
- fixed_config_fullname = "%s|x64" % (config_name,)
+ fixed_config_fullname = f"{config_name}|x64"
config_platform_overrides[config_fullname] = fixed_config_fullname
return config_platform_overrides
@@ -2062,7 +2062,7 @@ def PerformBuild(data, configurations, params):
for config in configurations:
arguments = [devenv, sln_path, "/Build", config]
- print("Building [%s]: %s" % (config, arguments))
+ print(f"Building [{config}]: {arguments}")
subprocess.check_call(arguments)
@@ -2248,7 +2248,7 @@ def _AppendFiltersForMSBuild(
if not parent_filter_name:
filter_name = source.name
else:
- filter_name = "%s\\%s" % (parent_filter_name, source.name)
+ filter_name = f"{parent_filter_name}\\{source.name}"
# Add the filter to the group.
filter_group.append(
[
@@ -2376,7 +2376,7 @@ def _GenerateRulesForMSBuild(
_AdjustSourcesForRules(rules, sources, excluded_sources, True)
-class MSBuildRule(object):
+class MSBuildRule:
"""Used to store information used to generate an MSBuild rule.
Attributes:
@@ -2575,7 +2575,7 @@ def _GenerateMSBuildRuleTargetsFile(targets_path, msbuild_rules):
"Condition": "'@(%s)' != '' and '%%(%s.ExcludedFromBuild)' != "
"'true'" % (rule.tlog, rule.tlog),
"File": "$(IntDir)$(ProjectName).read.1.tlog",
- "Lines": "^%%(%s.Source);%%(%s.Inputs)" % (rule.tlog, rule.tlog),
+ "Lines": f"^%({rule.tlog}.Source);%({rule.tlog}.Inputs)",
},
]
command_and_input_section = [
@@ -2921,7 +2921,7 @@ def _GetMSBuildProjectConfigurations(configurations, spec):
group = ["ItemGroup", {"Label": "ProjectConfigurations"}]
for (name, settings) in sorted(configurations.items()):
configuration, platform = _GetConfigurationAndPlatform(name, settings, spec)
- designation = "%s|%s" % (configuration, platform)
+ designation = f"{configuration}|{platform}"
group.append(
[
"ProjectConfiguration",
@@ -3286,13 +3286,11 @@ def _GetMSBuildPropertyGroup(spec, label, properties):
# Self references are ignored. Self reference is used in a few places to
# append to the default value. I.e. PATH=$(PATH);other_path
edges.update(
- set(
- [
- v
- for v in MSVS_VARIABLE_REFERENCE.findall(value)
- if v in properties and v != node
- ]
- )
+ {
+ v
+ for v in MSVS_VARIABLE_REFERENCE.findall(value)
+ if v in properties and v != node
+ }
)
return edges
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs_test.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs_test.py
index e001f417d53..e80b57f06a1 100755
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs_test.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs_test.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2012 Google Inc. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
@@ -8,10 +8,7 @@
import gyp.generator.msvs as msvs
import unittest
-try:
- from StringIO import StringIO # Python 2
-except ImportError:
- from io import StringIO # Python 3
+from io import StringIO
class TestSequenceFunctions(unittest.TestCase):
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py
index e064bad7ed8..d173bf22990 100644
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py
@@ -2,7 +2,6 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-from __future__ import print_function
import collections
import copy
@@ -20,10 +19,7 @@ import gyp.msvs_emulation
import gyp.MSVSUtil as MSVSUtil
import gyp.xcode_emulation
-try:
- from cStringIO import StringIO
-except ImportError:
- from io import StringIO
+from io import StringIO
from gyp.common import GetEnvironFallback
import gyp.ninja_syntax as ninja_syntax
@@ -76,7 +72,7 @@ def StripPrefix(arg, prefix):
def QuoteShellArgument(arg, flavor):
"""Quote a string such that it will be interpreted as a single argument
- by the shell."""
+ by the shell."""
# Rather than attempting to enumerate the bad shell characters, just
# allow common OK ones and quote anything else.
if re.match(r"^[a-zA-Z0-9_=.\\/-]+$", arg):
@@ -88,7 +84,7 @@ def QuoteShellArgument(arg, flavor):
def Define(d, flavor):
"""Takes a preprocessor define and returns a -D parameter that's ninja- and
- shell-escaped."""
+ shell-escaped."""
if flavor == "win":
# cl.exe replaces literal # characters with = in preprocessor definitions for
# some reason. Octal-encode to work around that.
@@ -99,32 +95,32 @@ def Define(d, flavor):
def AddArch(output, arch):
"""Adds an arch string to an output path."""
output, extension = os.path.splitext(output)
- return "%s.%s%s" % (output, arch, extension)
+ return f"{output}.{arch}{extension}"
-class Target(object):
+class Target:
"""Target represents the paths used within a single gyp target.
- Conceptually, building a single target A is a series of steps:
+ Conceptually, building a single target A is a series of steps:
- 1) actions/rules/copies generates source/resources/etc.
- 2) compiles generates .o files
- 3) link generates a binary (library/executable)
- 4) bundle merges the above in a mac bundle
+ 1) actions/rules/copies generates source/resources/etc.
+ 2) compiles generates .o files
+ 3) link generates a binary (library/executable)
+ 4) bundle merges the above in a mac bundle
- (Any of these steps can be optional.)
+ (Any of these steps can be optional.)
- From a build ordering perspective, a dependent target B could just
- depend on the last output of this series of steps.
+ From a build ordering perspective, a dependent target B could just
+ depend on the last output of this series of steps.
- But some dependent commands sometimes need to reach inside the box.
- For example, when linking B it needs to get the path to the static
- library generated by A.
+ But some dependent commands sometimes need to reach inside the box.
+ For example, when linking B it needs to get the path to the static
+ library generated by A.
- This object stores those paths. To keep things simple, member
- variables only store concrete paths to single files, while methods
- compute derived values like "the last output of the target".
- """
+ This object stores those paths. To keep things simple, member
+ variables only store concrete paths to single files, while methods
+ compute derived values like "the last output of the target".
+ """
def __init__(self, type):
# Gyp type ("static_library", etc.) of this target.
@@ -163,7 +159,7 @@ class Target(object):
def UsesToc(self, flavor):
"""Return true if the target should produce a restat rule based on a TOC
- file."""
+ file."""
# For bundles, the .TOC should be produced for the binary, not for
# FinalOutput(). But the naive approach would put the TOC file into the
# bundle, so don't do this for bundles for now.
@@ -173,19 +169,19 @@ class Target(object):
def PreActionInput(self, flavor):
"""Return the path, if any, that should be used as a dependency of
- any dependent action step."""
+ any dependent action step."""
if self.UsesToc(flavor):
return self.FinalOutput() + ".TOC"
return self.FinalOutput() or self.preaction_stamp
def PreCompileInput(self):
"""Return the path, if any, that should be used as a dependency of
- any dependent compile step."""
+ any dependent compile step."""
return self.actions_stamp or self.precompile_stamp
def FinalOutput(self):
"""Return the last output of the target, which depends on all prior
- steps."""
+ steps."""
return self.bundle or self.binary or self.actions_stamp
@@ -214,7 +210,7 @@ class Target(object):
# to the input file name as well as the output target name.
-class NinjaWriter(object):
+class NinjaWriter:
def __init__(
self,
hash_for_rules,
@@ -228,11 +224,11 @@ class NinjaWriter(object):
toplevel_dir=None,
):
"""
- base_dir: path from source root to directory containing this gyp file,
- by gyp semantics, all input paths are relative to this
- build_dir: path from source root to build output
- toplevel_dir: path to the toplevel directory
- """
+ base_dir: path from source root to directory containing this gyp file,
+ by gyp semantics, all input paths are relative to this
+ build_dir: path from source root to build output
+ toplevel_dir: path to the toplevel directory
+ """
self.hash_for_rules = hash_for_rules
self.target_outputs = target_outputs
@@ -263,10 +259,10 @@ class NinjaWriter(object):
def ExpandSpecial(self, path, product_dir=None):
"""Expand specials like $!PRODUCT_DIR in |path|.
- If |product_dir| is None, assumes the cwd is already the product
- dir. Otherwise, |product_dir| is the relative path to the product
- dir.
- """
+ If |product_dir| is None, assumes the cwd is already the product
+ dir. Otherwise, |product_dir| is the relative path to the product
+ dir.
+ """
PRODUCT_DIR = "$!PRODUCT_DIR"
if PRODUCT_DIR in path:
@@ -303,9 +299,9 @@ class NinjaWriter(object):
def GypPathToNinja(self, path, env=None):
"""Translate a gyp path to a ninja path, optionally expanding environment
- variable references in |path| with |env|.
+ variable references in |path| with |env|.
- See the above discourse on path conversions."""
+ See the above discourse on path conversions."""
if env:
if self.flavor == "mac":
path = gyp.xcode_emulation.ExpandEnvVars(path, env)
@@ -324,11 +320,11 @@ class NinjaWriter(object):
def GypPathToUniqueOutput(self, path, qualified=True):
"""Translate a gyp path to a ninja path for writing output.
- If qualified is True, qualify the resulting filename with the name
- of the target. This is necessary when e.g. compiling the same
- path twice for two separate output targets.
+ If qualified is True, qualify the resulting filename with the name
+ of the target. This is necessary when e.g. compiling the same
+ path twice for two separate output targets.
- See the above discourse on path conversions."""
+ See the above discourse on path conversions."""
path = self.ExpandSpecial(path)
assert not path.startswith("$"), path
@@ -361,9 +357,9 @@ class NinjaWriter(object):
def WriteCollapsedDependencies(self, name, targets, order_only=None):
"""Given a list of targets, return a path for a single file
- representing the result of building all the targets or None.
+ representing the result of building all the targets or None.
- Uses a stamp file if necessary."""
+ Uses a stamp file if necessary."""
assert targets == [item for item in targets if item], targets
if len(targets) == 0:
@@ -377,14 +373,14 @@ class NinjaWriter(object):
def _SubninjaNameForArch(self, arch):
output_file_base = os.path.splitext(self.output_file_name)[0]
- return "%s.%s.ninja" % (output_file_base, arch)
+ return f"{output_file_base}.{arch}.ninja"
def WriteSpec(self, spec, config_name, generator_flags):
"""The main entry point for NinjaWriter: write the build rules for a spec.
- Returns a Target object, which represents the output paths for this spec.
- Returns None if there are no outputs (e.g. a settings-only 'none' type
- target)."""
+ Returns a Target object, which represents the output paths for this spec.
+ Returns None if there are no outputs (e.g. a settings-only 'none' type
+ target)."""
self.config_name = config_name
self.name = spec["target_name"]
@@ -418,20 +414,17 @@ class NinjaWriter(object):
if self.flavor == "mac":
self.archs = self.xcode_settings.GetActiveArchs(config_name)
if len(self.archs) > 1:
- self.arch_subninjas = dict(
- (
- arch,
- ninja_syntax.Writer(
- OpenOutput(
- os.path.join(
- self.toplevel_build, self._SubninjaNameForArch(arch)
- ),
- "w",
- )
- ),
+ self.arch_subninjas = {
+ arch: ninja_syntax.Writer(
+ OpenOutput(
+ os.path.join(
+ self.toplevel_build, self._SubninjaNameForArch(arch)
+ ),
+ "w",
+ )
)
for arch in self.archs
- )
+ }
# Compute predepends for all rules.
# actions_depends is the dependencies this target depends on before running
@@ -558,7 +551,7 @@ class NinjaWriter(object):
def _WinIdlRule(self, source, prebuild, outputs):
"""Handle the implicit VS .idl rule for one source file. Fills |outputs|
- with files that are generated."""
+ with files that are generated."""
outdir, output, vars, flags = self.msvs_settings.GetIdlBuildData(
source, self.config_name
)
@@ -595,7 +588,7 @@ class NinjaWriter(object):
self, spec, extra_sources, prebuild, mac_bundle_depends
):
"""Write out the Actions, Rules, and Copies steps. Return a path
- representing the outputs of these steps."""
+ representing the outputs of these steps."""
outputs = []
if self.is_mac_bundle:
mac_bundle_resources = spec.get("mac_bundle_resources", [])[:]
@@ -638,16 +631,16 @@ class NinjaWriter(object):
def GenerateDescription(self, verb, message, fallback):
"""Generate and return a description of a build step.
- |verb| is the short summary, e.g. ACTION or RULE.
- |message| is a hand-written description, or None if not available.
- |fallback| is the gyp-level name of the step, usable as a fallback.
- """
+ |verb| is the short summary, e.g. ACTION or RULE.
+ |message| is a hand-written description, or None if not available.
+ |fallback| is the gyp-level name of the step, usable as a fallback.
+ """
if self.toolset != "target":
verb += "(%s)" % self.toolset
if message:
- return "%s %s" % (verb, self.ExpandSpecial(message))
+ return f"{verb} {self.ExpandSpecial(message)}"
else:
- return "%s %s: %s" % (verb, self.name, fallback)
+ return f"{verb} {self.name}: {fallback}"
def WriteActions(
self, actions, extra_sources, prebuild, extra_mac_bundle_resources
@@ -657,14 +650,14 @@ class NinjaWriter(object):
all_outputs = []
for action in actions:
# First write out a rule for the action.
- name = "%s_%s" % (action["action_name"], self.hash_for_rules)
+ name = "{}_{}".format(action["action_name"], self.hash_for_rules)
description = self.GenerateDescription(
"ACTION", action.get("message", None), name
)
- is_cygwin = (
- self.msvs_settings.IsRuleRunUnderCygwin(action)
+ win_shell_flags = (
+ self.msvs_settings.GetRuleShellFlags(action)
if self.flavor == "win"
- else False
+ else None
)
args = action["action"]
depfile = action.get("depfile", None)
@@ -672,7 +665,7 @@ class NinjaWriter(object):
depfile = self.ExpandSpecial(depfile, self.base_to_build)
pool = "console" if int(action.get("ninja_use_console", 0)) else None
rule_name, _ = self.WriteNewNinjaRule(
- name, args, description, is_cygwin, env, pool, depfile=depfile
+ name, args, description, win_shell_flags, env, pool, depfile=depfile
)
inputs = [self.GypPathToNinja(i, env) for i in action["inputs"]]
@@ -706,7 +699,7 @@ class NinjaWriter(object):
continue
# First write out a rule for the rule action.
- name = "%s_%s" % (rule["rule_name"], self.hash_for_rules)
+ name = "{}_{}".format(rule["rule_name"], self.hash_for_rules)
args = rule["action"]
description = self.GenerateDescription(
@@ -714,14 +707,14 @@ class NinjaWriter(object):
rule.get("message", None),
("%s " + generator_default_variables["RULE_INPUT_PATH"]) % name,
)
- is_cygwin = (
- self.msvs_settings.IsRuleRunUnderCygwin(rule)
+ win_shell_flags = (
+ self.msvs_settings.GetRuleShellFlags(rule)
if self.flavor == "win"
- else False
+ else None
)
pool = "console" if int(rule.get("ninja_use_console", 0)) else None
rule_name, args = self.WriteNewNinjaRule(
- name, args, description, is_cygwin, env, pool
+ name, args, description, win_shell_flags, env, pool
)
# TODO: if the command references the outputs directly, we should
@@ -731,7 +724,7 @@ class NinjaWriter(object):
# must vary per source file.
# Compute the list of variables we'll need to provide.
special_locals = ("source", "root", "dirname", "ext", "name")
- needed_variables = set(["source"])
+ needed_variables = {"source"}
for argument in args:
for var in special_locals:
if "${%s}" % var in argument:
@@ -740,7 +733,7 @@ class NinjaWriter(object):
def cygwin_munge(path):
# pylint: disable=cell-var-from-loop
- if is_cygwin:
+ if win_shell_flags and win_shell_flags.cygwin:
return path.replace("\\", "/")
return path
@@ -875,7 +868,7 @@ class NinjaWriter(object):
output = self.GypPathToUniqueOutput("headers.hmap")
self.xcode_settings.header_map_path = output
all_headers = map(
- self.GypPathToNinja, filter(lambda x: x.endswith((".h")), all_sources)
+ self.GypPathToNinja, filter(lambda x: x.endswith(".h"), all_sources)
)
variables = [
("framework", framework),
@@ -925,11 +918,11 @@ class NinjaWriter(object):
def WriteMacXCassets(self, xcassets, bundle_depends):
"""Writes ninja edges for 'mac_bundle_resources' .xcassets files.
- This add an invocation of 'actool' via the 'mac_tool.py' helper script.
- It assumes that the assets catalogs define at least one imageset and
- thus an Assets.car file will be generated in the application resources
- directory. If this is not the case, then the build will probably be done
- at each invocation of ninja."""
+ This add an invocation of 'actool' via the 'mac_tool.py' helper script.
+ It assumes that the assets catalogs define at least one imageset and
+ thus an Assets.car file will be generated in the application resources
+ directory. If this is not the case, then the build will probably be done
+ at each invocation of ninja."""
if not xcassets:
return
@@ -1047,22 +1040,19 @@ class NinjaWriter(object):
spec,
)
else:
- return dict(
- (
- arch,
- self.WriteSourcesForArch(
- self.arch_subninjas[arch],
- config_name,
- config,
- sources,
- predepends,
- precompiled_header,
- spec,
- arch=arch,
- ),
+ return {
+ arch: self.WriteSourcesForArch(
+ self.arch_subninjas[arch],
+ config_name,
+ config,
+ sources,
+ predepends,
+ precompiled_header,
+ spec,
+ arch=arch,
)
for arch in self.archs
- )
+ }
def WriteSourcesForArch(
self,
@@ -1231,7 +1221,7 @@ class NinjaWriter(object):
command = "cc_s"
elif (
self.flavor == "win"
- and ext == "asm"
+ and ext in ("asm", "S")
and not self.msvs_settings.HasExplicitAsmRules(spec)
):
command = "asm"
@@ -1427,7 +1417,11 @@ class NinjaWriter(object):
is_executable = spec["type"] == "executable"
# The ldflags config key is not used on mac or win. On those platforms
# linker flags are set via xcode_settings and msvs_settings, respectively.
- env_ldflags = os.environ.get("LDFLAGS", "").split()
+ if self.toolset == "target":
+ env_ldflags = os.environ.get("LDFLAGS", "").split()
+ elif self.toolset == "host":
+ env_ldflags = os.environ.get("LDFLAGS_host", "").split()
+
if self.flavor == "mac":
ldflags = self.xcode_settings.GetLdflags(
config_name,
@@ -1729,8 +1723,8 @@ class NinjaWriter(object):
def GetPostbuildCommand(self, spec, output, output_binary, is_command_start):
"""Returns a shell command that runs all the postbuilds, and removes
- |output| if any of them fails. If |is_command_start| is False, then the
- returned string will start with ' && '."""
+ |output| if any of them fails. If |is_command_start| is False, then the
+ returned string will start with ' && '."""
if not self.xcode_settings or spec["type"] == "none" or not output:
return ""
output = QuoteShellArgument(output, self.flavor)
@@ -1776,8 +1770,8 @@ class NinjaWriter(object):
def ComputeExportEnvString(self, env):
"""Given an environment, returns a string looking like
- 'export FOO=foo; export BAR="${FOO} bar;'
- that exports |env| to the shell."""
+ 'export FOO=foo; export BAR="${FOO} bar;'
+ that exports |env| to the shell."""
export_str = []
for k, v in env:
export_str.append(
@@ -1842,7 +1836,7 @@ class NinjaWriter(object):
"shared_library",
"executable",
):
- return "%s%s%s" % (prefix, target, extension)
+ return f"{prefix}{target}{extension}"
elif type == "none":
return "%s.stamp" % target
else:
@@ -1905,12 +1899,12 @@ class NinjaWriter(object):
ninja_file.variable(var, " ".join(values))
def WriteNewNinjaRule(
- self, name, args, description, is_cygwin, env, pool, depfile=None
+ self, name, args, description, win_shell_flags, env, pool, depfile=None
):
"""Write out a new ninja "rule" statement for a given command.
- Returns the name of the new rule, and a copy of |args| with variables
- expanded."""
+ Returns the name of the new rule, and a copy of |args| with variables
+ expanded."""
if self.flavor == "win":
args = [
@@ -1952,13 +1946,14 @@ class NinjaWriter(object):
if self.flavor == "win":
rspfile = rule_name + ".$unique_name.rsp"
# The cygwin case handles this inside the bash sub-shell.
- run_in = "" if is_cygwin else " " + self.build_to_base
- if is_cygwin:
+ run_in = "" if win_shell_flags.cygwin else " " + self.build_to_base
+ if win_shell_flags.cygwin:
rspfile_content = self.msvs_settings.BuildCygwinBashCommandLine(
args, self.build_to_base
)
else:
- rspfile_content = gyp.msvs_emulation.EncodeRspFileList(args)
+ rspfile_content = gyp.msvs_emulation.EncodeRspFileList(
+ args, win_shell_flags.quote)
command = (
"%s gyp-win-tool action-wrapper $arch " % sys.executable
+ rspfile
@@ -2147,7 +2142,7 @@ def GetDefaultConcurrentLinks():
def _GetWinLinkRuleNameSuffix(embed_manifest):
"""Returns the suffix used to select an appropriate linking rule depending on
- whether the manifest embedding is enabled."""
+ whether the manifest embedding is enabled."""
return "_embed" if embed_manifest else ""
@@ -2395,7 +2390,6 @@ def GenerateOutputForConfig(target_list, target_dicts, data, params, config_name
)
if flavor == "win":
master_ninja.variable("ld_host", ld_host)
- master_ninja.variable("ldxx_host", ldxx_host)
else:
master_ninja.variable(
"ld_host", CommandWithWrapper("LINK", wrappers, ld_host)
@@ -2538,10 +2532,12 @@ def GenerateOutputForConfig(target_list, target_dicts, data, params, config_name
"solink",
description="SOLINK $lib",
restat=True,
- command=mtime_preserving_solink_base % {"suffix": "@$link_file_list"}, # noqa: E501
+ command=mtime_preserving_solink_base
+ % {"suffix": "@$link_file_list"}, # noqa: E501
rspfile="$link_file_list",
- rspfile_content=("-Wl,--whole-archive $in $solibs -Wl,"
- "--no-whole-archive $libs"),
+ rspfile_content=(
+ "-Wl,--whole-archive $in $solibs -Wl," "--no-whole-archive $libs"
+ ),
pool="link_pool",
)
master_ninja.rule(
@@ -2798,8 +2794,8 @@ def GenerateOutputForConfig(target_list, target_dicts, data, params, config_name
this_make_global_settings = data[build_file].get("make_global_settings", [])
assert make_global_settings == this_make_global_settings, (
- "make_global_settings needs to be the same for all targets. %s vs. %s"
- % (this_make_global_settings, make_global_settings)
+ "make_global_settings needs to be the same for all targets. "
+ f"{this_make_global_settings} vs. {make_global_settings}"
)
spec = target_dicts[qualified_target]
@@ -2891,7 +2887,7 @@ def PerformBuild(data, configurations, params):
for config in configurations:
builddir = os.path.join(options.toplevel_dir, "out", config)
arguments = ["ninja", "-C", builddir]
- print("Building [%s]: %s" % (config, arguments))
+ print(f"Building [{config}]: {arguments}")
subprocess.check_call(arguments)
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py
index abadcd9828e..7d180685b21 100644
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2012 Google Inc. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py
index 9e7e99e9e13..2f4d17e514e 100644
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py
@@ -2,7 +2,6 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-from __future__ import print_function
import filecmp
import gyp.common
@@ -110,7 +109,7 @@ def CreateXCConfigurationList(configuration_names):
return xccl
-class XcodeProject(object):
+class XcodeProject:
def __init__(self, gyp_path, path, build_file_dict):
self.gyp_path = gyp_path
self.path = path
@@ -613,7 +612,7 @@ def PerformBuild(data, configurations, params):
for config in configurations:
arguments = ["xcodebuild", "-project", xcodeproj_path]
arguments += ["-configuration", config]
- print("Building [%s]: %s" % (config, arguments))
+ print(f"Building [{config}]: {arguments}")
subprocess.check_call(arguments)
@@ -1072,7 +1071,7 @@ def GenerateOutput(target_list, target_dicts, data, params):
# TODO(mark): There's a possibility for collision here. Consider
# target "t" rule "A_r" and target "t_A" rule "r".
makefile_name = "%s.make" % re.sub(
- "[^a-zA-Z0-9_]", "_", "%s_%s" % (target_name, rule["rule_name"])
+ "[^a-zA-Z0-9_]", "_", "{}_{}".format(target_name, rule["rule_name"])
)
makefile_path = os.path.join(
xcode_projects[build_file].path, makefile_name
@@ -1102,7 +1101,7 @@ def GenerateOutput(target_list, target_dicts, data, params):
eol = ""
else:
eol = " \\"
- makefile.write(" %s%s\n" % (concrete_output, eol))
+ makefile.write(f" {concrete_output}{eol}\n")
for (rule_source, concrete_outputs, message, action) in zip(
rule["rule_sources"],
@@ -1123,7 +1122,7 @@ def GenerateOutput(target_list, target_dicts, data, params):
bol = ""
else:
bol = " "
- makefile.write("%s%s \\\n" % (bol, concrete_output))
+ makefile.write(f"{bol}{concrete_output} \\\n")
concrete_output_dir = posixpath.dirname(concrete_output)
if (
@@ -1143,7 +1142,7 @@ def GenerateOutput(target_list, target_dicts, data, params):
eol = ""
else:
eol = " \\"
- makefile.write(" %s%s\n" % (prerequisite, eol))
+ makefile.write(f" {prerequisite}{eol}\n")
# Make sure that output directories exist before executing the rule
# action.
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode_test.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode_test.py
index 51fbca6a2a2..49772d1f4d8 100644
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode_test.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode_test.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2013 Google Inc. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py
index 5504390c0bb..354958bfb2a 100644
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py
@@ -2,7 +2,6 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-from __future__ import print_function
import ast
@@ -21,8 +20,6 @@ from distutils.version import StrictVersion
from gyp.common import GypError
from gyp.common import OrderedSet
-PY3 = bytes != str
-
# A list of types that are treated as linkable.
linkable_types = [
"executable",
@@ -228,17 +225,9 @@ def LoadOneBuildFile(build_file_path, data, aux_data, includes, is_target, check
return data[build_file_path]
if os.path.exists(build_file_path):
- # Open the build file for read ('r') with universal-newlines mode ('U')
- # to make sure platform specific newlines ('\r\n' or '\r') are converted to '\n'
- # which otherwise will fail eval()
- if sys.platform == "zos":
- # On z/OS, universal-newlines mode treats the file as an ascii file.
- # But since node-gyp produces ebcdic files, do not use that mode.
- build_file_contents = open(build_file_path, "r").read()
- else:
- build_file_contents = open(build_file_path, "rU").read()
+ build_file_contents = open(build_file_path, encoding='utf-8').read()
else:
- raise GypError("%s not found (cwd: %s)" % (build_file_path, os.getcwd()))
+ raise GypError(f"{build_file_path} not found (cwd: {os.getcwd()})")
build_file_data = None
try:
@@ -567,7 +556,7 @@ class ParallelProcessingError(Exception):
pass
-class ParallelState(object):
+class ParallelState:
"""Class to keep track of state when processing input files in parallel.
If build files are loaded in parallel, use this to keep track of
@@ -987,9 +976,8 @@ def ExpandVariables(input, phase, variables, build_file):
)
p_stdout, p_stderr = p.communicate("")
- if PY3:
- p_stdout = p_stdout.decode("utf-8")
- p_stderr = p_stderr.decode("utf-8")
+ p_stdout = p_stdout.decode("utf-8")
+ p_stderr = p_stderr.decode("utf-8")
if p.wait() != 0 or p_stderr:
sys.stderr.write(p_stderr)
@@ -1219,7 +1207,7 @@ def EvalSingleCondition(cond_expr, true_dict, false_dict, phase, variables, buil
except NameError as e:
gyp.common.ExceptionAppend(
e,
- "while evaluating condition '%s' in %s" % (cond_expr_expanded, build_file),
+ f"while evaluating condition '{cond_expr_expanded}' in {build_file}",
)
raise GypError(e)
@@ -1675,7 +1663,7 @@ def RemoveLinkDependenciesFromNoneTargets(targets):
)
-class DependencyGraphNode(object):
+class DependencyGraphNode:
"""
Attributes:
@@ -2252,7 +2240,7 @@ def MergeLists(to, fro, to_file, fro_file, is_paths=False, append=True):
# Make membership testing of hashables in |to| (in particular, strings)
# faster.
- hashable_to_set = set(x for x in to if is_hashable(x))
+ hashable_to_set = {x for x in to if is_hashable(x)}
for item in fro:
singleton = False
if type(item) in (str, int):
@@ -2772,7 +2760,7 @@ def ValidateRulesInTarget(target, target_dict, extra_sources_for_rules):
rule_name = rule["rule_name"]
if rule_name in rule_names:
raise GypError(
- "rule %s exists in duplicate, target %s" % (rule_name, target)
+ f"rule {rule_name} exists in duplicate, target {target}"
)
rule_names[rule_name] = rule
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input_test.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input_test.py
index 6672ddc014b..a18f72e9ebb 100755
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input_test.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input_test.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright 2013 Google Inc. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py
index 07412578d19..59647c9a890 100755
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2012 Google Inc. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
@@ -8,7 +8,6 @@
These functions are executed via gyp-mac-tool when using the Makefile generator.
"""
-from __future__ import print_function
import fcntl
import fnmatch
@@ -23,8 +22,6 @@ import subprocess
import sys
import tempfile
-PY3 = bytes != str
-
def main(args):
executor = MacTool()
@@ -33,7 +30,7 @@ def main(args):
sys.exit(exit_code)
-class MacTool(object):
+class MacTool:
"""This class performs all the Mac tooling steps. The methods can either be
executed directly, or dispatched from an argument list."""
@@ -179,7 +176,7 @@ class MacTool(object):
def ExecCopyInfoPlist(self, source, dest, convert_to_binary, *keys):
"""Copies the |source| Info.plist to the destination directory |dest|."""
# Read the source Info.plist into memory.
- with open(source, "r") as fd:
+ with open(source) as fd:
lines = fd.read()
# Insert synthesized key/value pairs (e.g. BuildMachineOSBuild).
@@ -251,7 +248,7 @@ class MacTool(object):
dest = os.path.join(os.path.dirname(info_plist), "PkgInfo")
with open(dest, "w") as fp:
- fp.write("%s%s" % (package_type, signature_code))
+ fp.write(f"{package_type}{signature_code}")
def ExecFlock(self, lockfile, *cmd_list):
"""Emulates the most basic behavior of Linux's flock(1)."""
@@ -278,9 +275,7 @@ class MacTool(object):
# epoch=0, e.g. 1970-1-1 or 1969-12-31 depending on timezone.
env["ZERO_AR_DATE"] = "1"
libtoolout = subprocess.Popen(cmd_list, stderr=subprocess.PIPE, env=env)
- _, err = libtoolout.communicate()
- if PY3:
- err = err.decode("utf-8")
+ err = libtoolout.communicate()[1].decode("utf-8")
for line in err.splitlines():
if not libtool_re.match(line) and not libtool_re5.match(line):
print(line, file=sys.stderr)
@@ -540,7 +535,7 @@ class MacTool(object):
"application-identifier", ""
)
for team_identifier in profile_data.get("TeamIdentifier", []):
- app_id = "%s.%s" % (team_identifier, bundle_identifier)
+ app_id = f"{team_identifier}.{bundle_identifier}"
if fnmatch.fnmatch(app_id, app_id_pattern):
valid_provisioning_profiles[app_id_pattern] = (
profile_path,
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py
index 1afc1d687ed..5b9c2712e09 100644
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py
@@ -7,6 +7,7 @@ This module helps emulate Visual Studio 2008 behavior on top of other
build systems, primarily ninja.
"""
+import collections
import os
import re
import subprocess
@@ -16,15 +17,13 @@ from gyp.common import OrderedSet
import gyp.MSVSUtil
import gyp.MSVSVersion
-PY3 = bytes != str
-
windows_quoter_regex = re.compile(r'(\\*)"')
-def QuoteForRspFile(arg):
+def QuoteForRspFile(arg, quote_cmd=True):
"""Quote a command line argument so that it appears as one argument when
- processed via cmd.exe and parsed by CommandLineToArgvW (as is typical for
- Windows programs)."""
+ processed via cmd.exe and parsed by CommandLineToArgvW (as is typical for
+ Windows programs)."""
# See http://goo.gl/cuFbX and http://goo.gl/dhPnp including the comment
# threads. This is actually the quoting rules for CommandLineToArgvW, not
# for the shell, because the shell doesn't do anything in Windows. This
@@ -38,7 +37,8 @@ def QuoteForRspFile(arg):
# For a literal quote, CommandLineToArgvW requires 2n+1 backslashes
# preceding it, and results in n backslashes + the quote. So we substitute
# in 2* what we match, +1 more, plus the quote.
- arg = windows_quoter_regex.sub(lambda mo: 2 * mo.group(1) + '\\"', arg)
+ if quote_cmd:
+ arg = windows_quoter_regex.sub(lambda mo: 2 * mo.group(1) + '\\"', arg)
# %'s also need to be doubled otherwise they're interpreted as batch
# positional arguments. Also make sure to escape the % so that they're
@@ -50,12 +50,17 @@ def QuoteForRspFile(arg):
# These commands are used in rsp files, so no escaping for the shell (via ^)
# is necessary.
- # Finally, wrap the whole thing in quotes so that the above quote rule
- # applies and whitespace isn't a word break.
- return '"' + arg + '"'
+ # As a workaround for programs that don't use CommandLineToArgvW, gyp
+ # supports msvs_quote_cmd=0, which simply disables all quoting.
+ if quote_cmd:
+ # Finally, wrap the whole thing in quotes so that the above quote rule
+ # applies and whitespace isn't a word break.
+ return f'"{arg}"'
+
+ return arg
-def EncodeRspFileList(args):
+def EncodeRspFileList(args, quote_cmd):
"""Process a list of arguments using QuoteCmdExeArgument."""
# Note that the first argument is assumed to be the command. Don't add
# quotes around it because then built-ins like 'echo', etc. won't work.
@@ -69,12 +74,13 @@ def EncodeRspFileList(args):
program = call + " " + os.path.normpath(program)
else:
program = os.path.normpath(args[0])
- return program + " " + " ".join(QuoteForRspFile(arg) for arg in args[1:])
+ return (program + " "
+ + " ".join(QuoteForRspFile(arg, quote_cmd) for arg in args[1:]))
def _GenericRetrieve(root, default, path):
"""Given a list of dictionary keys |path| and a tree of dicts |root|, find
- value at path, or return |default| if any of the path doesn't exist."""
+ value at path, or return |default| if any of the path doesn't exist."""
if not root:
return default
if not path:
@@ -95,7 +101,7 @@ def _AddPrefix(element, prefix):
def _DoRemapping(element, map):
"""If |element| then remap it through |map|. If |element| is iterable then
- each item will be remapped. Any elements not found will be removed."""
+ each item will be remapped. Any elements not found will be removed."""
if map is not None and element is not None:
if not callable(map):
map = map.get # Assume it's a dict, otherwise a callable to do the remap.
@@ -108,8 +114,8 @@ def _DoRemapping(element, map):
def _AppendOrReturn(append, element):
"""If |append| is None, simply return |element|. If |append| is not None,
- then add |element| to it, adding each item in |element| if it's a list or
- tuple."""
+ then add |element| to it, adding each item in |element| if it's a list or
+ tuple."""
if append is not None and element is not None:
if isinstance(element, list) or isinstance(element, tuple):
append.extend(element)
@@ -121,8 +127,8 @@ def _AppendOrReturn(append, element):
def _FindDirectXInstallation():
"""Try to find an installation location for the DirectX SDK. Check for the
- standard environment variable, and if that doesn't exist, try to find
- via the registry. May return None if not found in either location."""
+ standard environment variable, and if that doesn't exist, try to find
+ via the registry. May return None if not found in either location."""
# Return previously calculated value, if there is one
if hasattr(_FindDirectXInstallation, "dxsdk_dir"):
return _FindDirectXInstallation.dxsdk_dir
@@ -132,9 +138,7 @@ def _FindDirectXInstallation():
# Setup params to pass to and attempt to launch reg.exe.
cmd = ["reg.exe", "query", r"HKLM\Software\Microsoft\DirectX", "/s"]
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- stdout = p.communicate()[0]
- if PY3:
- stdout = stdout.decode("utf-8")
+ stdout = p.communicate()[0].decode("utf-8")
for line in stdout.splitlines():
if "InstallPath" in line:
dxsdk_dir = line.split(" ")[3] + "\\"
@@ -146,7 +150,7 @@ def _FindDirectXInstallation():
def GetGlobalVSMacroEnv(vs_version):
"""Get a dict of variables mapping internal VS macro names to their gyp
- equivalents. Returns all variables that are independent of the target."""
+ equivalents. Returns all variables that are independent of the target."""
env = {}
# '$(VSInstallDir)' and '$(VCInstallDir)' are available when and only when
# Visual Studio is actually installed.
@@ -167,7 +171,7 @@ def GetGlobalVSMacroEnv(vs_version):
def ExtractSharedMSVSSystemIncludes(configs, generator_flags):
"""Finds msvs_system_include_dirs that are common to all targets, removes
- them from all targets, and returns an OrderedSet containing them."""
+ them from all targets, and returns an OrderedSet containing them."""
all_system_includes = OrderedSet(configs[0].get("msvs_system_include_dirs", []))
for config in configs[1:]:
system_includes = config.get("msvs_system_include_dirs", [])
@@ -193,10 +197,10 @@ def ExtractSharedMSVSSystemIncludes(configs, generator_flags):
return expanded_system_includes
-class MsvsSettings(object):
+class MsvsSettings:
"""A class that understands the gyp 'msvs_...' values (especially the
- msvs_settings field). They largely correpond to the VS2008 IDE DOM. This
- class helps map those settings to command line options."""
+ msvs_settings field). They largely correpond to the VS2008 IDE DOM. This
+ class helps map those settings to command line options."""
def __init__(self, spec, generator_flags):
self.spec = spec
@@ -229,7 +233,9 @@ class MsvsSettings(object):
for config in configs.values():
if field in config:
unsupported += [
- "%s not supported (target %s)." % (field, spec["target_name"])
+ "{} not supported (target {}).".format(
+ field, spec["target_name"]
+ )
]
if unsupported:
raise Exception("\n".join(unsupported))
@@ -237,9 +243,9 @@ class MsvsSettings(object):
def GetExtension(self):
"""Returns the extension for the target, with no leading dot.
- Uses 'product_extension' if specified, otherwise uses MSVS defaults based on
- the target type.
- """
+ Uses 'product_extension' if specified, otherwise uses MSVS defaults based on
+ the target type.
+ """
ext = self.spec.get("product_extension", None)
if ext:
return ext
@@ -247,7 +253,7 @@ class MsvsSettings(object):
def GetVSMacroEnv(self, base_to_build=None, config=None):
"""Get a dict of variables mapping internal VS macro names to their gyp
- equivalents."""
+ equivalents."""
target_arch = self.GetArch(config)
if target_arch == "x86":
target_platform = "Win32"
@@ -294,15 +300,15 @@ class MsvsSettings(object):
def _GetAndMunge(self, field, path, default, prefix, append, map):
"""Retrieve a value from |field| at |path| or return |default|. If
- |append| is specified, and the item is found, it will be appended to that
- object instead of returned. If |map| is specified, results will be
- remapped through |map| before being returned or appended."""
+ |append| is specified, and the item is found, it will be appended to that
+ object instead of returned. If |map| is specified, results will be
+ remapped through |map| before being returned or appended."""
result = _GenericRetrieve(field, default, path)
result = _DoRemapping(result, map)
result = _AddPrefix(result, prefix)
return _AppendOrReturn(append, result)
- class _GetWrapper(object):
+ class _GetWrapper:
def __init__(self, parent, field, base_path, append=None):
self.parent = parent
self.field = field
@@ -321,7 +327,7 @@ class MsvsSettings(object):
def GetArch(self, config):
"""Get architecture based on msvs_configuration_platform and
- msvs_target_platform. Returns either 'x86' or 'x64'."""
+ msvs_target_platform. Returns either 'x86' or 'x64'."""
configuration_platform = self.msvs_configuration_platform.get(config, "")
platform = self.msvs_target_platform.get(config, "")
if not platform: # If no specific override, use the configuration's.
@@ -335,7 +341,7 @@ class MsvsSettings(object):
# first level is globally for the configuration (this is what we consider
# "the" config at the gyp level, which will be something like 'Debug' or
# 'Release'), VS2015 and later only use this level
- if self.vs_version.short_name >= 2015:
+ if int(self.vs_version.short_name) >= 2015:
return config
# and a second target-specific configuration, which is an
# override for the global one. |config| is remapped here to take into
@@ -368,7 +374,7 @@ class MsvsSettings(object):
def AdjustIncludeDirs(self, include_dirs, config):
"""Updates include_dirs to expand VS specific paths, and adds the system
- include dirs used for platform SDK and similar."""
+ include dirs used for platform SDK and similar."""
config = self._TargetConfig(config)
includes = include_dirs + self.msvs_system_include_dirs[config]
includes.extend(
@@ -380,7 +386,7 @@ class MsvsSettings(object):
def AdjustMidlIncludeDirs(self, midl_include_dirs, config):
"""Updates midl_include_dirs to expand VS specific paths, and adds the
- system include dirs used for platform SDK and similar."""
+ system include dirs used for platform SDK and similar."""
config = self._TargetConfig(config)
includes = midl_include_dirs + self.msvs_system_include_dirs[config]
includes.extend(
@@ -392,7 +398,7 @@ class MsvsSettings(object):
def GetComputedDefines(self, config):
"""Returns the set of defines that are injected to the defines list based
- on other VS settings."""
+ on other VS settings."""
config = self._TargetConfig(config)
defines = []
if self._ConfigAttrib(["CharacterSet"], config) == "1":
@@ -408,7 +414,7 @@ class MsvsSettings(object):
def GetCompilerPdbName(self, config, expand_special):
"""Get the pdb file name that should be used for compiler invocations, or
- None if there's no explicit name specified."""
+ None if there's no explicit name specified."""
config = self._TargetConfig(config)
pdbname = self._Setting(("VCCLCompilerTool", "ProgramDataBaseFileName"), config)
if pdbname:
@@ -417,7 +423,7 @@ class MsvsSettings(object):
def GetMapFileName(self, config, expand_special):
"""Gets the explicitly overridden map file name for a target or returns None
- if it's not set."""
+ if it's not set."""
config = self._TargetConfig(config)
map_file = self._Setting(("VCLinkerTool", "MapFileName"), config)
if map_file:
@@ -426,7 +432,7 @@ class MsvsSettings(object):
def GetOutputName(self, config, expand_special):
"""Gets the explicitly overridden output name for a target or returns None
- if it's not overridden."""
+ if it's not overridden."""
config = self._TargetConfig(config)
type = self.spec["type"]
root = "VCLibrarianTool" if type == "static_library" else "VCLinkerTool"
@@ -440,7 +446,7 @@ class MsvsSettings(object):
def GetPDBName(self, config, expand_special, default):
"""Gets the explicitly overridden pdb name for a target or returns
- default if it's not overridden, or if no pdb will be generated."""
+ default if it's not overridden, or if no pdb will be generated."""
config = self._TargetConfig(config)
output_file = self._Setting(("VCLinkerTool", "ProgramDatabaseFile"), config)
generate_debug_info = self._Setting(
@@ -456,7 +462,7 @@ class MsvsSettings(object):
def GetNoImportLibrary(self, config):
"""If NoImportLibrary: true, ninja will not expect the output to include
- an import library."""
+ an import library."""
config = self._TargetConfig(config)
noimplib = self._Setting(("NoImportLibrary",), config)
return noimplib == "true"
@@ -539,7 +545,7 @@ class MsvsSettings(object):
)
]
)
- if self.vs_version.project_version >= 12.0:
+ if float(self.vs_version.project_version) >= 12.0:
# New flag introduced in VS2013 (project version 12.0) Forces writes to
# the program database (PDB) to be serialized through MSPDBSRV.EXE.
# https://msdn.microsoft.com/en-us/library/dn502518.aspx
@@ -549,8 +555,7 @@ class MsvsSettings(object):
return cflags
def _GetPchFlags(self, config, extension):
- """Get the flags to be added to the cflags for precompiled header support.
- """
+ """Get the flags to be added to the cflags for precompiled header support."""
config = self._TargetConfig(config)
# The PCH is only built once by a particular source file. Usage of PCH must
# only be for the same language (i.e. C vs. C++), so only include the pch
@@ -575,7 +580,7 @@ class MsvsSettings(object):
def _GetAdditionalLibraryDirectories(self, root, config, gyp_to_build_path):
"""Get and normalize the list of paths in AdditionalLibraryDirectories
- setting."""
+ setting."""
config = self._TargetConfig(config)
libpaths = self._Setting(
(root, "AdditionalLibraryDirectories"), config, default=[]
@@ -622,14 +627,14 @@ class MsvsSettings(object):
def _GetDefFileAsLdflags(self, ldflags, gyp_to_build_path):
""".def files get implicitly converted to a ModuleDefinitionFile for the
- linker in the VS generator. Emulate that behaviour here."""
+ linker in the VS generator. Emulate that behaviour here."""
def_file = self.GetDefFile(gyp_to_build_path)
if def_file:
ldflags.append('/DEF:"%s"' % def_file)
def GetPGDName(self, config, expand_special):
"""Gets the explicitly overridden pgd name for a target or returns None
- if it's not overridden."""
+ if it's not overridden."""
config = self._TargetConfig(config)
output_file = self._Setting(("VCLinkerTool", "ProfileGuidedDatabase"), config)
if output_file:
@@ -649,7 +654,7 @@ class MsvsSettings(object):
build_dir,
):
"""Returns the flags that need to be added to link commands, and the
- manifest files."""
+ manifest files."""
config = self._TargetConfig(config)
ldflags = []
ld = self._GetWrapper(
@@ -709,7 +714,7 @@ class MsvsSettings(object):
)
if stack_commit_size:
stack_commit_size = "," + stack_commit_size
- ldflags.append("/STACK:%s%s" % (stack_reserve_size, stack_commit_size))
+ ldflags.append(f"/STACK:{stack_reserve_size}{stack_commit_size}")
ld("TerminalServerAware", map={"1": ":NO", "2": ""}, prefix="/TSAWARE")
ld("LinkIncremental", map={"1": ":NO", "2": ""}, prefix="/INCREMENTAL")
@@ -775,12 +780,12 @@ class MsvsSettings(object):
self, config, name, gyp_to_build_path, allow_isolation, build_dir
):
"""Returns a 3-tuple:
- - the set of flags that need to be added to the link to generate
- a default manifest
- - the intermediate manifest that the linker will generate that should be
- used to assert it doesn't add anything to the merged one.
- - the list of all the manifest files to be merged by the manifest tool and
- included into the link."""
+ - the set of flags that need to be added to the link to generate
+ a default manifest
+ - the intermediate manifest that the linker will generate that should be
+ used to assert it doesn't add anything to the merged one.
+ - the list of all the manifest files to be merged by the manifest tool and
+ included into the link."""
generate_manifest = self._Setting(
("VCLinkerTool", "GenerateManifest"), config, default="true"
)
@@ -835,10 +840,10 @@ class MsvsSettings(object):
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
- <requestedExecutionLevel level='%s' uiAccess='%s' />
+ <requestedExecutionLevel level='{}' uiAccess='{}' />
</requestedPrivileges>
</security>
-</trustInfo>""" % (
+</trustInfo>""".format(
execution_level_map[execution_level],
ui_access,
)
@@ -867,7 +872,7 @@ class MsvsSettings(object):
def _GetAdditionalManifestFiles(self, config, gyp_to_build_path):
"""Gets additional manifest files that are added to the default one
- generated by the linker."""
+ generated by the linker."""
files = self._Setting(
("VCManifestTool", "AdditionalManifestFiles"), config, default=[]
)
@@ -880,7 +885,7 @@ class MsvsSettings(object):
def IsUseLibraryDependencyInputs(self, config):
"""Returns whether the target should be linked via Use Library Dependency
- Inputs (using component .objs of a given .lib)."""
+ Inputs (using component .objs of a given .lib)."""
config = self._TargetConfig(config)
uldi = self._Setting(("VCLinkerTool", "UseLibraryDependencyInputs"), config)
return uldi == "true"
@@ -901,7 +906,7 @@ class MsvsSettings(object):
def GetRcflags(self, config, gyp_to_ninja_path):
"""Returns the flags that need to be added to invocations of the resource
- compiler."""
+ compiler."""
config = self._TargetConfig(config)
rcflags = []
rc = self._GetWrapper(
@@ -916,13 +921,13 @@ class MsvsSettings(object):
def BuildCygwinBashCommandLine(self, args, path_to_base):
"""Build a command line that runs args via cygwin bash. We assume that all
- incoming paths are in Windows normpath'd form, so they need to be
- converted to posix style for the part of the command line that's passed to
- bash. We also have to do some Visual Studio macro emulation here because
- various rules use magic VS names for things. Also note that rules that
- contain ninja variables cannot be fixed here (for example ${source}), so
- the outer generator needs to make sure that the paths that are written out
- are in posix style, if the command line will be used here."""
+ incoming paths are in Windows normpath'd form, so they need to be
+ converted to posix style for the part of the command line that's passed to
+ bash. We also have to do some Visual Studio macro emulation here because
+ various rules use magic VS names for things. Also note that rules that
+ contain ninja variables cannot be fixed here (for example ${source}), so
+ the outer generator needs to make sure that the paths that are written out
+ are in posix style, if the command line will be used here."""
cygwin_dir = os.path.normpath(
os.path.join(path_to_base, self.msvs_cygwin_dirs[0])
)
@@ -932,17 +937,26 @@ class MsvsSettings(object):
bash_cmd = " ".join(args)
cmd = (
'call "%s\\setup_env.bat" && set CYGWIN=nontsec && ' % cygwin_dir
- + 'bash -c "%s ; %s"' % (cd, bash_cmd)
+ + f'bash -c "{cd} ; {bash_cmd}"'
)
return cmd
- def IsRuleRunUnderCygwin(self, rule):
- """Determine if an action should be run under cygwin. If the variable is
- unset, or set to 1 we use cygwin."""
- return (
- int(rule.get("msvs_cygwin_shell", self.spec.get("msvs_cygwin_shell", 1)))
- != 0
- )
+ RuleShellFlags = collections.namedtuple("RuleShellFlags", ["cygwin", "quote"])
+
+ def GetRuleShellFlags(self, rule):
+ """Return RuleShellFlags about how the given rule should be run. This
+ includes whether it should run under cygwin (msvs_cygwin_shell), and
+ whether the commands should be quoted (msvs_quote_cmd)."""
+ # If the variable is unset, or set to 1 we use cygwin
+ cygwin = int(rule.get("msvs_cygwin_shell",
+ self.spec.get("msvs_cygwin_shell", 1))) != 0
+ # Default to quoting. There's only a few special instances where the
+ # target command uses non-standard command line parsing and handle quotes
+ # and quote escaping differently.
+ quote_cmd = int(rule.get("msvs_quote_cmd", 1))
+ assert quote_cmd != 0 or cygwin != 1, \
+ "msvs_quote_cmd=0 only applicable for msvs_cygwin_shell=0"
+ return MsvsSettings.RuleShellFlags(cygwin, quote_cmd)
def _HasExplicitRuleForExtension(self, spec, extension):
"""Determine if there's an explicit rule for a particular extension."""
@@ -959,19 +973,19 @@ class MsvsSettings(object):
def HasExplicitIdlRulesOrActions(self, spec):
"""Determine if there's an explicit rule or action for idl files. When
- there isn't we need to generate implicit rules to build MIDL .idl files."""
+ there isn't we need to generate implicit rules to build MIDL .idl files."""
return self._HasExplicitRuleForExtension(
spec, "idl"
) or self._HasExplicitIdlActions(spec)
def HasExplicitAsmRules(self, spec):
"""Determine if there's an explicit rule for asm files. When there isn't we
- need to generate implicit rules to assemble .asm files."""
+ need to generate implicit rules to assemble .asm files."""
return self._HasExplicitRuleForExtension(spec, "asm")
def GetIdlBuildData(self, source, config):
"""Determine the implicit outputs for an idl file. Returns output
- directory, outputs, and variables and flags that are required."""
+ directory, outputs, and variables and flags that are required."""
config = self._TargetConfig(config)
midl_get = self._GetWrapper(self, self.msvs_settings[config], "VCMIDLTool")
@@ -1010,10 +1024,10 @@ def _LanguageMatchesForPch(source_ext, pch_source_ext):
)
-class PrecompiledHeader(object):
+class PrecompiledHeader:
"""Helper to generate dependencies and build rules to handle generation of
- precompiled headers. Interface matches the GCH handler in xcode_emulation.py.
- """
+ precompiled headers. Interface matches the GCH handler in xcode_emulation.py.
+ """
def __init__(
self, settings, config, gyp_to_build_path, gyp_to_unique_output, obj_ext
@@ -1027,14 +1041,14 @@ class PrecompiledHeader(object):
def _PchHeader(self):
"""Get the header that will appear in an #include line for all source
- files."""
+ files."""
return self.settings.msvs_precompiled_header[self.config]
def GetObjDependencies(self, sources, objs, arch):
"""Given a list of sources files and the corresponding object files,
- returns a list of the pch files that should be depended upon. The
- additional wrapping in the return value is for interface compatibility
- with make.py on Mac, and xcode_emulation.py."""
+ returns a list of the pch files that should be depended upon. The
+ additional wrapping in the return value is for interface compatibility
+ with make.py on Mac, and xcode_emulation.py."""
assert arch is None
if not self._PchHeader():
return []
@@ -1046,14 +1060,14 @@ class PrecompiledHeader(object):
def GetPchBuildCommands(self, arch):
"""Not used on Windows as there are no additional build steps required
- (instead, existing steps are modified in GetFlagsModifications below)."""
+ (instead, existing steps are modified in GetFlagsModifications below)."""
return []
def GetFlagsModifications(
self, input, output, implicit, command, cflags_c, cflags_cc, expand_special
):
"""Get the modified cflags and implicit dependencies that should be used
- for the pch compilation step."""
+ for the pch compilation step."""
if input == self.pch_source:
pch_output = ["/Yc" + self._PchHeader()]
if command == "cxx":
@@ -1090,7 +1104,7 @@ def _GetVsvarsSetupArgs(generator_flags, arch):
def ExpandMacros(string, expansions):
"""Expand $(Variable) per expansions dict. See MsvsSettings.GetVSMacroEnv
- for the canonical way to retrieve a suitable dict."""
+ for the canonical way to retrieve a suitable dict."""
if "$" in string:
for old, new in expansions.items():
assert "$(" not in new, new
@@ -1100,7 +1114,7 @@ def ExpandMacros(string, expansions):
def _ExtractImportantEnvironment(output_of_set):
"""Extracts environment variables required for the toolchain to run from
- a textual dump output by the cmd.exe 'set' command."""
+ a textual dump output by the cmd.exe 'set' command."""
envvars_to_save = (
"goma_.*", # TODO(scottmg): This is ugly, but needed for goma.
"include",
@@ -1140,8 +1154,8 @@ def _ExtractImportantEnvironment(output_of_set):
def _FormatAsEnvironmentBlock(envvar_dict):
"""Format as an 'environment block' directly suitable for CreateProcess.
- Briefly this is a list of key=value\0, terminated by an additional \0. See
- CreateProcess documentation for more details."""
+ Briefly this is a list of key=value\0, terminated by an additional \0. See
+ CreateProcess documentation for more details."""
block = ""
nul = "\0"
for key, value in envvar_dict.items():
@@ -1152,7 +1166,7 @@ def _FormatAsEnvironmentBlock(envvar_dict):
def _ExtractCLPath(output_of_where):
"""Gets the path to cl.exe based on the output of calling the environment
- setup batch file, followed by the equivalent of `where`."""
+ setup batch file, followed by the equivalent of `where`."""
# Take the first line, as that's the first found in the PATH.
for line in output_of_where.strip().splitlines():
if line.startswith("LOC:"):
@@ -1163,19 +1177,19 @@ def GenerateEnvironmentFiles(
toplevel_build_dir, generator_flags, system_includes, open_out
):
"""It's not sufficient to have the absolute path to the compiler, linker,
- etc. on Windows, as those tools rely on .dlls being in the PATH. We also
- need to support both x86 and x64 compilers within the same build (to support
- msvs_target_platform hackery). Different architectures require a different
- compiler binary, and different supporting environment variables (INCLUDE,
- LIB, LIBPATH). So, we extract the environment here, wrap all invocations
- of compiler tools (cl, link, lib, rc, midl, etc.) via win_tool.py which
- sets up the environment, and then we do not prefix the compiler with
- an absolute path, instead preferring something like "cl.exe" in the rule
- which will then run whichever the environment setup has put in the path.
- When the following procedure to generate environment files does not
- meet your requirement (e.g. for custom toolchains), you can pass
- "-G ninja_use_custom_environment_files" to the gyp to suppress file
- generation and use custom environment files prepared by yourself."""
+ etc. on Windows, as those tools rely on .dlls being in the PATH. We also
+ need to support both x86 and x64 compilers within the same build (to support
+ msvs_target_platform hackery). Different architectures require a different
+ compiler binary, and different supporting environment variables (INCLUDE,
+ LIB, LIBPATH). So, we extract the environment here, wrap all invocations
+ of compiler tools (cl, link, lib, rc, midl, etc.) via win_tool.py which
+ sets up the environment, and then we do not prefix the compiler with
+ an absolute path, instead preferring something like "cl.exe" in the rule
+ which will then run whichever the environment setup has put in the path.
+ When the following procedure to generate environment files does not
+ meet your requirement (e.g. for custom toolchains), you can pass
+ "-G ninja_use_custom_environment_files" to the gyp to suppress file
+ generation and use custom environment files prepared by yourself."""
archs = ("x86", "x64")
if generator_flags.get("ninja_use_custom_environment_files", 0):
cl_paths = {}
@@ -1191,9 +1205,7 @@ def GenerateEnvironmentFiles(
popen = subprocess.Popen(
args, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT
)
- variables, _ = popen.communicate()
- if PY3:
- variables = variables.decode("utf-8")
+ variables = popen.communicate()[0].decode("utf-8")
if popen.returncode != 0:
raise Exception('"%s" failed with error %d' % (args, popen.returncode))
env = _ExtractImportantEnvironment(variables)
@@ -1216,19 +1228,17 @@ def GenerateEnvironmentFiles(
("&&", "for", "%i", "in", "(cl.exe)", "do", "@echo", "LOC:%~$PATH:i")
)
popen = subprocess.Popen(args, shell=True, stdout=subprocess.PIPE)
- output, _ = popen.communicate()
- if PY3:
- output = output.decode("utf-8")
+ output = popen.communicate()[0].decode("utf-8")
cl_paths[arch] = _ExtractCLPath(output)
return cl_paths
def VerifyMissingSources(sources, build_dir, generator_flags, gyp_to_ninja):
"""Emulate behavior of msvs_error_on_missing_sources present in the msvs
- generator: Check that all regular source files, i.e. not created at run time,
- exist on disk. Missing files cause needless recompilation when building via
- VS, and we want this check to match for people/bots that build using ninja,
- so they're not surprised when the VS build fails."""
+ generator: Check that all regular source files, i.e. not created at run time,
+ exist on disk. Missing files cause needless recompilation when building via
+ VS, and we want this check to match for people/bots that build using ninja,
+ so they're not surprised when the VS build fails."""
if int(generator_flags.get("msvs_error_on_missing_sources", 0)):
no_specials = filter(lambda x: "$" not in x, sources)
relative = [os.path.join(build_dir, gyp_to_ninja(s)) for s in no_specials]
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/ninja_syntax.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/ninja_syntax.py
index 14212358082..0e3e86c7430 100644
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/ninja_syntax.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/ninja_syntax.py
@@ -16,7 +16,7 @@ def escape_path(word):
return word.replace("$ ", "$$ ").replace(" ", "$ ").replace(":", "$:")
-class Writer(object):
+class Writer:
def __init__(self, output, width=78):
self.output = output
self.width = width
@@ -33,7 +33,7 @@ class Writer(object):
return
if isinstance(value, list):
value = " ".join(filter(None, value)) # Filter out empty strings.
- self._line("%s = %s" % (key, value), indent)
+ self._line(f"{key} = {value}", indent)
def pool(self, name, depth):
self._line("pool %s" % name)
@@ -89,7 +89,7 @@ class Writer(object):
all_inputs.extend(order_only)
self._line(
- "build %s: %s" % (" ".join(out_outputs), " ".join([rule] + all_inputs))
+ "build {}: {}".format(" ".join(out_outputs), " ".join([rule] + all_inputs))
)
if variables:
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/simple_copy.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/simple_copy.py
index e01106f9c48..729cec06362 100644
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/simple_copy.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/simple_copy.py
@@ -36,10 +36,7 @@ def _deepcopy_atomic(x):
return x
-try:
- types = bool, float, int, str, type, type(None), long, unicode
-except NameError: # Python 3
- types = bool, float, int, str, type, type(None)
+types = bool, float, int, str, type, type(None)
for x in types:
d[x] = _deepcopy_atomic
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py
index 758e9f5c456..638eee40029 100755
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2012 Google Inc. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
@@ -9,7 +9,6 @@
These functions are executed via gyp-win-tool when using the ninja generator.
"""
-from __future__ import print_function
import os
import re
@@ -20,7 +19,6 @@ import string
import sys
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
-PY3 = bytes != str
# A regex matching an argument corresponding to the output filename passed to
# link.exe.
@@ -34,7 +32,7 @@ def main(args):
sys.exit(exit_code)
-class WinTool(object):
+class WinTool:
"""This class performs all the Windows tooling steps. The methods can either
be executed directly, or dispatched from an argument list."""
@@ -141,9 +139,7 @@ class WinTool(object):
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
)
- out, _ = link.communicate()
- if PY3:
- out = out.decode("utf-8")
+ out = link.communicate()[0].decode("utf-8")
for line in out.splitlines():
if (
not line.startswith(" Creating library ")
@@ -223,17 +219,18 @@ class WinTool(object):
our_manifest = "%(out)s.manifest" % variables
# Load and normalize the manifests. mt.exe sometimes removes whitespace,
# and sometimes doesn't unfortunately.
- with open(our_manifest, "r") as our_f:
- with open(assert_manifest, "r") as assert_f:
- our_data = our_f.read().translate(None, string.whitespace)
- assert_data = assert_f.read().translate(None, string.whitespace)
+ with open(our_manifest) as our_f:
+ with open(assert_manifest) as assert_f:
+ translator = str.maketrans('', '', string.whitespace)
+ our_data = our_f.read().translate(translator)
+ assert_data = assert_f.read().translate(translator)
if our_data != assert_data:
os.unlink(out)
def dump(filename):
print(filename, file=sys.stderr)
print("-----", file=sys.stderr)
- with open(filename, "r") as f:
+ with open(filename) as f:
print(f.read(), file=sys.stderr)
print("-----", file=sys.stderr)
@@ -256,9 +253,7 @@ class WinTool(object):
popen = subprocess.Popen(
args, shell=True, env=env, stdout=subprocess.PIPE, stderr=subprocess.STDOUT
)
- out, _ = popen.communicate()
- if PY3:
- out = out.decode("utf-8")
+ out = popen.communicate()[0].decode("utf-8")
for line in out.splitlines():
if line and "manifest authoring warning 81010002" not in line:
print(line)
@@ -302,16 +297,14 @@ class WinTool(object):
popen = subprocess.Popen(
args, shell=True, env=env, stdout=subprocess.PIPE, stderr=subprocess.STDOUT
)
- out, _ = popen.communicate()
- if PY3:
- out = out.decode("utf-8")
+ out = popen.communicate()[0].decode("utf-8")
# Filter junk out of stdout, and write filtered versions. Output we want
# to filter is pairs of lines that look like this:
# Processing C:\Program Files (x86)\Microsoft SDKs\...\include\objidl.idl
# objidl.idl
lines = out.splitlines()
prefixes = ("Processing ", "64 bit Processing ")
- processing = set(os.path.basename(x) for x in lines if x.startswith(prefixes))
+ processing = {os.path.basename(x) for x in lines if x.startswith(prefixes)}
for line in lines:
if not line.startswith(prefixes) and line not in processing:
print(line)
@@ -323,9 +316,7 @@ class WinTool(object):
popen = subprocess.Popen(
args, shell=True, env=env, stdout=subprocess.PIPE, stderr=subprocess.STDOUT
)
- out, _ = popen.communicate()
- if PY3:
- out = out.decode("utf-8")
+ out = popen.communicate()[0].decode("utf-8")
for line in out.splitlines():
if (
not line.startswith("Copyright (C) Microsoft Corporation")
@@ -343,9 +334,7 @@ class WinTool(object):
popen = subprocess.Popen(
args, shell=True, env=env, stdout=subprocess.PIPE, stderr=subprocess.STDOUT
)
- out, _ = popen.communicate()
- if PY3:
- out = out.decode("utf-8")
+ out = popen.communicate()[0].decode("utf-8")
for line in out.splitlines():
if (
not line.startswith("Microsoft (R) Windows (R) Resource Compiler")
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py
index 8af2b39f9a1..a75d8eeab7b 100644
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py
@@ -7,7 +7,6 @@ This module contains classes that help to emulate xcodebuild behavior on top of
other build systems, such as make and ninja.
"""
-from __future__ import print_function
import copy
import gyp.common
@@ -19,8 +18,6 @@ import subprocess
import sys
from gyp.common import GypError
-PY3 = bytes != str
-
# Populated lazily by XcodeVersion, for efficiency, and to fix an issue when
# "xcodebuild" is called too quickly (it has been found to return incorrect
# version number).
@@ -40,7 +37,7 @@ def XcodeArchsVariableMapping(archs, archs_including_64_bit=None):
return mapping
-class XcodeArchsDefault(object):
+class XcodeArchsDefault:
"""A class to resolve ARCHS variable from xcode_settings, resolving Xcode
macros and implementing filtering by VALID_ARCHS. The expansion of macros
depends on the SDKROOT used ("macosx", "iphoneos", "iphonesimulator") and
@@ -148,7 +145,7 @@ def GetXcodeArchsDefault():
return XCODE_ARCHS_DEFAULT_CACHE
-class XcodeSettings(object):
+class XcodeSettings:
"""A class that understands the gyp 'xcode_settings' object."""
# Populated lazily by _SdkPath(). Shared by all XcodeSettings, so cached
@@ -281,7 +278,7 @@ class XcodeSettings(object):
else:
return "." + self.spec.get("product_extension", "app")
else:
- assert False, "Don't know extension for '%s', target '%s'" % (
+ assert False, "Don't know extension for '{}', target '{}'".format(
self.spec["type"],
self.spec["target_name"],
)
@@ -654,28 +651,32 @@ class XcodeSettings(object):
self._WarnUnimplemented("MACH_O_TYPE")
self._WarnUnimplemented("PRODUCT_TYPE")
- if arch is not None:
- archs = [arch]
- else:
- assert self.configname
- archs = self.GetActiveArchs(self.configname)
- if len(archs) != 1:
- # TODO: Supporting fat binaries will be annoying.
- self._WarnUnimplemented("ARCHS")
- archs = ["i386"]
- cflags.append("-arch " + archs[0])
-
- if archs[0] in ("i386", "x86_64"):
- if self._Test("GCC_ENABLE_SSE3_EXTENSIONS", "YES", default="NO"):
- cflags.append("-msse3")
- if self._Test(
- "GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS", "YES", default="NO"
- ):
- cflags.append("-mssse3") # Note 3rd 's'.
- if self._Test("GCC_ENABLE_SSE41_EXTENSIONS", "YES", default="NO"):
- cflags.append("-msse4.1")
- if self._Test("GCC_ENABLE_SSE42_EXTENSIONS", "YES", default="NO"):
- cflags.append("-msse4.2")
+ # If GYP_CROSSCOMPILE (--cross-compiling), disable architecture-specific
+ # additions and assume these will be provided as required via CC_host,
+ # CXX_host, CC_target and CXX_target.
+ if not gyp.common.CrossCompileRequested():
+ if arch is not None:
+ archs = [arch]
+ else:
+ assert self.configname
+ archs = self.GetActiveArchs(self.configname)
+ if len(archs) != 1:
+ # TODO: Supporting fat binaries will be annoying.
+ self._WarnUnimplemented("ARCHS")
+ archs = ["i386"]
+ cflags.append("-arch " + archs[0])
+
+ if archs[0] in ("i386", "x86_64"):
+ if self._Test("GCC_ENABLE_SSE3_EXTENSIONS", "YES", default="NO"):
+ cflags.append("-msse3")
+ if self._Test(
+ "GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS", "YES", default="NO"
+ ):
+ cflags.append("-mssse3") # Note 3rd 's'.
+ if self._Test("GCC_ENABLE_SSE41_EXTENSIONS", "YES", default="NO"):
+ cflags.append("-msse4.1")
+ if self._Test("GCC_ENABLE_SSE42_EXTENSIONS", "YES", default="NO"):
+ cflags.append("-msse4.2")
cflags += self._Settings().get("WARNING_CFLAGS", [])
@@ -938,16 +939,17 @@ class XcodeSettings(object):
+ gyp_to_build_path(self._Settings()["ORDER_FILE"])
)
- if arch is not None:
- archs = [arch]
- else:
- assert self.configname
- archs = self.GetActiveArchs(self.configname)
- if len(archs) != 1:
- # TODO: Supporting fat binaries will be annoying.
- self._WarnUnimplemented("ARCHS")
- archs = ["i386"]
- ldflags.append("-arch " + archs[0])
+ if not gyp.common.CrossCompileRequested():
+ if arch is not None:
+ archs = [arch]
+ else:
+ assert self.configname
+ archs = self.GetActiveArchs(self.configname)
+ if len(archs) != 1:
+ # TODO: Supporting fat binaries will be annoying.
+ self._WarnUnimplemented("ARCHS")
+ archs = ["i386"]
+ ldflags.append("-arch " + archs[0])
# Xcode adds the product directory by default.
# Rewrite -L. to -L./ to work around http://www.openradar.me/25313838
@@ -1083,7 +1085,7 @@ class XcodeSettings(object):
if not quiet:
result.append("echo STRIP\\(%s\\)" % self.spec["target_name"])
- result.append("strip %s %s" % (strip_flags, output_binary))
+ result.append(f"strip {strip_flags} {output_binary}")
self.configname = None
return result
@@ -1105,7 +1107,7 @@ class XcodeSettings(object):
):
if not quiet:
result.append("echo DSYMUTIL\\(%s\\)" % self.spec["target_name"])
- result.append("dsymutil %s -o %s" % (output_binary, output + ".dSYM"))
+ result.append("dsymutil {} -o {}".format(output_binary, output + ".dSYM"))
self.configname = None
return result
@@ -1138,7 +1140,7 @@ class XcodeSettings(object):
source = os.path.join("${BUILT_PRODUCTS_DIR}", product_name)
test_host = os.path.dirname(settings.get("TEST_HOST"))
xctest_destination = os.path.join(test_host, "PlugIns", product_name)
- postbuilds.extend(["ditto %s %s" % (source, xctest_destination)])
+ postbuilds.extend([f"ditto {source} {xctest_destination}"])
key = self._GetIOSCodeSignIdentityKey(settings)
if not key:
@@ -1165,7 +1167,7 @@ class XcodeSettings(object):
for framework in frameworks:
source = os.path.join(platform_root, framework)
destination = os.path.join(frameworks_dir, os.path.basename(framework))
- postbuilds.extend(["ditto %s %s" % (source, destination)])
+ postbuilds.extend([f"ditto {source} {destination}"])
# Then re-sign everything with 'preserve=True'
postbuilds.extend(
@@ -1366,7 +1368,7 @@ class XcodeSettings(object):
return ""
-class MacPrefixHeader(object):
+class MacPrefixHeader:
"""A class that helps with emulating Xcode's GCC_PREFIX_HEADER feature.
This feature consists of several pieces:
@@ -1556,9 +1558,7 @@ def GetStdoutQuiet(cmdlist):
Ignores the stderr.
Raises |GypError| if the command return with a non-zero return code."""
job = subprocess.Popen(cmdlist, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- out = job.communicate()[0]
- if PY3:
- out = out.decode("utf-8")
+ out = job.communicate()[0].decode("utf-8")
if job.returncode != 0:
raise GypError("Error %d running %s" % (job.returncode, cmdlist[0]))
return out.rstrip("\n")
@@ -1568,9 +1568,7 @@ def GetStdout(cmdlist):
"""Returns the content of standard output returned by invoking |cmdlist|.
Raises |GypError| if the command return with a non-zero return code."""
job = subprocess.Popen(cmdlist, stdout=subprocess.PIPE)
- out = job.communicate()[0]
- if PY3:
- out = out.decode("utf-8")
+ out = job.communicate()[0].decode("utf-8")
if job.returncode != 0:
sys.stderr.write(out + "\n")
raise GypError("Error %d running %s" % (job.returncode, cmdlist[0]))
@@ -1866,7 +1864,7 @@ def _TopologicallySortedEnvVarKeys(env):
# definition contains all variables it references in a single string.
# We can then reverse the result of the topological sort at the end.
# Since: reverse(topsort(DAG)) = topsort(reverse_edges(DAG))
- matches = set([v for v in regex.findall(env[node]) if v in env])
+ matches = {v for v in regex.findall(env[node]) if v in env}
for dependee in matches:
assert "${" not in dependee, "Nested variables not supported: " + dependee
return matches
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_ninja.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_ninja.py
index 10ddcbccd03..bb74eacbeaf 100644
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_ninja.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_ninja.py
@@ -43,11 +43,11 @@ def _WriteWorkspace(main_gyp, sources_gyp, params):
workspace_file = os.path.join(workspace_path, "contents.xcworkspacedata")
try:
- with open(workspace_file, "r") as input_file:
+ with open(workspace_file) as input_file:
input_string = input_file.read()
if input_string == output_string:
return
- except IOError:
+ except OSError:
# Ignore errors if the file doesn't exist.
pass
@@ -214,7 +214,7 @@ def CreateWrapper(target_list, target_dicts, data, params):
if IsValidTargetForWrapper(target_extras, executable_target_pattern, spec):
# Add to new_target_list.
target_name = spec.get("target_name")
- new_target_name = "%s:%s#target" % (main_gyp, target_name)
+ new_target_name = f"{main_gyp}:{target_name}#target"
new_target_list.append(new_target_name)
# Add to new_target_dicts.
@@ -282,7 +282,7 @@ def CreateWrapper(target_list, target_dicts, data, params):
# Put sources_to_index in it's own gyp.
sources_gyp = os.path.join(os.path.dirname(main_gyp), sources_target_name + ".gyp")
- fully_qualified_target_name = "%s:%s#target" % (sources_gyp, sources_target_name)
+ fully_qualified_target_name = f"{sources_gyp}:{sources_target_name}#target"
# Add to new_target_list, new_target_dicts and new_data.
new_target_list.append(fully_qualified_target_name)
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py
index d90dd99dcce..076eea37211 100644
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py
@@ -138,19 +138,17 @@ a project file is output.
"""
import gyp.common
+from functools import cmp_to_key
import hashlib
+from operator import attrgetter
import posixpath
import re
import struct
import sys
-try:
- basestring, cmp, unicode
-except NameError: # Python 3
- basestring = unicode = str
- def cmp(x, y):
- return (x > y) - (x < y)
+def cmp(x, y):
+ return (x > y) - (x < y)
# See XCObject._EncodeString. This pattern is used to determine when a string
@@ -199,7 +197,7 @@ def ConvertVariablesToShellSyntax(input_string):
return re.sub(r"\$\((.*?)\)", "${\\1}", input_string)
-class XCObject(object):
+class XCObject:
"""The abstract base of all class types used in Xcode project files.
Class variables:
@@ -301,8 +299,8 @@ class XCObject(object):
try:
name = self.Name()
except NotImplementedError:
- return "<%s at 0x%x>" % (self.__class__.__name__, id(self))
- return "<%s %r at 0x%x>" % (self.__class__.__name__, name, id(self))
+ return f"<{self.__class__.__name__} at 0x{id(self):x}>"
+ return f"<{self.__class__.__name__} {name!r} at 0x{id(self):x}>"
def Copy(self):
"""Make a copy of this object.
@@ -325,7 +323,7 @@ class XCObject(object):
that._properties[key] = new_value
else:
that._properties[key] = value
- elif isinstance(value, (basestring, int)):
+ elif isinstance(value, (str, int)):
that._properties[key] = value
elif isinstance(value, list):
if is_strong:
@@ -427,6 +425,8 @@ class XCObject(object):
"""
hash.update(struct.pack(">i", len(data)))
+ if isinstance(data, str):
+ data = data.encode("utf-8")
hash.update(data)
if seed_hash is None:
@@ -616,7 +616,7 @@ class XCObject(object):
comment = value.Comment()
elif isinstance(value, str):
printable += self._EncodeString(value)
- elif isinstance(value, basestring):
+ elif isinstance(value, str):
printable += self._EncodeString(value.encode("utf-8"))
elif isinstance(value, int):
printable += str(value)
@@ -791,7 +791,7 @@ class XCObject(object):
)
for item in value:
if not isinstance(item, property_type) and not (
- isinstance(item, basestring) and property_type == str
+ isinstance(item, str) and property_type == str
):
# Accept unicode where str is specified. str is treated as
# UTF-8-encoded.
@@ -806,7 +806,7 @@ class XCObject(object):
+ item.__class__.__name__
)
elif not isinstance(value, property_type) and not (
- isinstance(value, basestring) and property_type == str
+ isinstance(value, str) and property_type == str
):
# Accept unicode where str is specified. str is treated as
# UTF-8-encoded.
@@ -827,7 +827,7 @@ class XCObject(object):
self._properties[property] = value.Copy()
else:
self._properties[property] = value
- elif isinstance(value, (basestring, int)):
+ elif isinstance(value, (str, int)):
self._properties[property] = value
elif isinstance(value, list):
if is_strong:
@@ -1487,7 +1487,7 @@ class PBXGroup(XCHierarchicalElement):
def SortGroup(self):
self._properties["children"] = sorted(
- self._properties["children"], cmp=lambda x, y: x.Compare(y)
+ self._properties["children"], key=cmp_to_key(lambda x, y: x.Compare(y))
)
# Recurse.
@@ -2185,7 +2185,7 @@ class PBXCopyFilesBuildPhase(XCBuildPhase):
relative_path = path[1:]
else:
raise ValueError(
- "Can't use path %s in a %s" % (path, self.__class__.__name__)
+ f"Can't use path {path} in a {self.__class__.__name__}"
)
self._properties["dstPath"] = relative_path
@@ -2250,8 +2250,8 @@ class PBXContainerItemProxy(XCObject):
def __repr__(self):
props = self._properties
- name = "%s.gyp:%s" % (props["containerPortal"].Name(), props["remoteInfo"])
- return "<%s %r at 0x%x>" % (self.__class__.__name__, name, id(self))
+ name = "{}.gyp:{}".format(props["containerPortal"].Name(), props["remoteInfo"])
+ return f"<{self.__class__.__name__} {name!r} at 0x{id(self):x}>"
def Name(self):
# Admittedly not the best name, but it's what Xcode uses.
@@ -2288,7 +2288,7 @@ class PBXTargetDependency(XCObject):
def __repr__(self):
name = self._properties.get("name") or self._properties["target"].Name()
- return "<%s %r at 0x%x>" % (self.__class__.__name__, name, id(self))
+ return f"<{self.__class__.__name__} {name!r} at 0x{id(self):x}>"
def Name(self):
# Admittedly not the best name, but it's what Xcode uses.
@@ -2895,7 +2895,7 @@ class PBXProject(XCContainerPortal):
# according to their defined order.
self._properties["mainGroup"]._properties["children"] = sorted(
self._properties["mainGroup"]._properties["children"],
- cmp=lambda x, y: x.CompareRootGroup(y),
+ key=cmp_to_key(lambda x, y: x.CompareRootGroup(y)),
)
# Sort everything else by putting group before files, and going
@@ -2990,9 +2990,7 @@ class PBXProject(XCContainerPortal):
# Xcode seems to sort this list case-insensitively
self._properties["projectReferences"] = sorted(
self._properties["projectReferences"],
- cmp=lambda x, y: cmp(
- x["ProjectRef"].Name().lower(), y["ProjectRef"].Name().lower()
- ),
+ key=lambda x: x["ProjectRef"].Name().lower
)
else:
# The link already exists. Pull out the relevnt data.
@@ -3124,7 +3122,8 @@ class PBXProject(XCContainerPortal):
product_group = ref_dict["ProductGroup"]
product_group._properties["children"] = sorted(
product_group._properties["children"],
- cmp=lambda x, y, rp=remote_products: CompareProducts(x, y, rp),
+ key=cmp_to_key(
+ lambda x, y, rp=remote_products: CompareProducts(x, y, rp)),
)
@@ -3159,7 +3158,7 @@ class XCProjectFile(XCObject):
else:
self._XCPrint(file, 0, "{\n")
for property, value in sorted(
- self._properties.items(), cmp=lambda x, y: cmp(x, y)
+ self._properties.items()
):
if property == "objects":
self._PrintObjects(file)
@@ -3187,7 +3186,7 @@ class XCProjectFile(XCObject):
self._XCPrint(file, 0, "\n")
self._XCPrint(file, 0, "/* Begin " + class_name + " section */\n")
for object in sorted(
- objects_by_class[class_name], cmp=lambda x, y: cmp(x.id, y.id)
+ objects_by_class[class_name], key=attrgetter("id")
):
object.Print(file)
self._XCPrint(file, 0, "/* End " + class_name + " section */\n")
diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xml_fix.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xml_fix.py
index 0a945322b45..53019636694 100644
--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xml_fix.py
+++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xml_fix.py
@@ -39,12 +39,12 @@ def _Replacement_writexml(self, writer, indent="", addindent="", newl=""):
writer.write(">%s" % newl)
for node in self.childNodes:
node.writexml(writer, indent + addindent, addindent, newl)
- writer.write("%s</%s>%s" % (indent, self.tagName, newl))
+ writer.write(f"{indent}</{self.tagName}>{newl}")
else:
writer.write("/>%s" % newl)
-class XmlFix(object):
+class XmlFix:
"""Object to manage temporary patching of xml.dom.minidom."""
def __init__(self):
diff --git a/deps/npm/node_modules/node-gyp/gyp/setup.py b/deps/npm/node_modules/node-gyp/gyp/setup.py
index d1869c1b520..0ce46123cc6 100644
--- a/deps/npm/node_modules/node-gyp/gyp/setup.py
+++ b/deps/npm/node_modules/node-gyp/gyp/setup.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2009 Google Inc. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
@@ -15,7 +15,7 @@ with open(path.join(here, "README.md")) as in_file:
setup(
name="gyp-next",
- version="0.6.2",
+ version="0.9.6",
description="A fork of the GYP build system for use in the Node.js projects",
long_description=long_description,
long_description_content_type="text/markdown",
@@ -25,7 +25,7 @@ setup(
package_dir={"": "pylib"},
packages=["gyp", "gyp.generator"],
entry_points={"console_scripts": ["gyp=gyp:script_main"]},
- python_requires=">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*",
+ python_requires=">=3.6",
classifiers=[
"Development Status :: 3 - Alpha",
"Environment :: Console",
@@ -33,12 +33,10 @@ setup(
"License :: OSI Approved :: BSD License",
"Natural Language :: English",
"Programming Language :: Python",
- "Programming Language :: Python :: 2",
- "Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
- "Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
+ "Programming Language :: Python :: 3.9",
],
)
diff --git a/deps/npm/node_modules/node-gyp/gyp/test_gyp.py b/deps/npm/node_modules/node-gyp/gyp/test_gyp.py
index 382e75272d8..9ba264170f4 100755
--- a/deps/npm/node_modules/node-gyp/gyp/test_gyp.py
+++ b/deps/npm/node_modules/node-gyp/gyp/test_gyp.py
@@ -1,11 +1,10 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2012 Google Inc. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""gyptest.py -- test runner for GYP tests."""
-from __future__ import print_function
import argparse
import os
@@ -141,10 +140,7 @@ def main(argv=None):
if not args.quiet:
runner.print_results()
- if runner.failures:
- return 1
- else:
- return 0
+ return 1 if runner.failures else 0
def print_configuration_info():
@@ -153,8 +149,8 @@ def print_configuration_info():
sys.path.append(os.path.abspath("test/lib"))
import TestMac
- print(" Mac %s %s" % (platform.mac_ver()[0], platform.mac_ver()[2]))
- print(" Xcode %s" % TestMac.Xcode.Version())
+ print(f" Mac {platform.mac_ver()[0]} {platform.mac_ver()[2]}")
+ print(f" Xcode {TestMac.Xcode.Version()}")
elif sys.platform == "win32":
sys.path.append(os.path.abspath("pylib"))
import gyp.MSVSVersion
@@ -163,12 +159,12 @@ def print_configuration_info():
print(" MSVS %s" % gyp.MSVSVersion.SelectVisualStudioVersion().Description())
elif sys.platform in ("linux", "linux2"):
print(" Linux %s" % " ".join(platform.linux_distribution()))
- print(" Python %s" % platform.python_version())
- print(" PYTHONPATH=%s" % os.environ["PYTHONPATH"])
+ print(f" Python {platform.python_version()}")
+ print(f" PYTHONPATH={os.environ['PYTHONPATH']}")
print()
-class Runner(object):
+class Runner:
def __init__(self, formats, tests, gyp_options, verbose):
self.formats = formats
self.tests = tests
@@ -217,19 +213,15 @@ class Runner(object):
res = "skipped"
elif proc.returncode:
res = "failed"
- self.failures.append("(%s) %s" % (test, fmt))
+ self.failures.append(f"({test}) {fmt}")
else:
res = "passed"
- res_msg = " %s %.3fs" % (res, took)
+ res_msg = f" {res} {took:.3f}s"
self.print_(res_msg)
- if (
- stdout
- and not stdout.endswith("PASSED\n")
- and not (stdout.endswith("NO RESULT\n"))
- ):
+ if stdout and not stdout.endswith(("PASSED\n", "NO RESULT\n")):
print()
- print("\n".join(" %s" % line for line in stdout.splitlines()))
+ print("\n".join(f" {line}" for line in stdout.splitlines()))
elif not self.isatty:
print()
diff --git a/deps/npm/node_modules/node-gyp/gyp/tools/README b/deps/npm/node_modules/node-gyp/gyp/tools/README
index 712e4efbb7a..84a73d15214 100644
--- a/deps/npm/node_modules/node-gyp/gyp/tools/README
+++ b/deps/npm/node_modules/node-gyp/gyp/tools/README
@@ -5,7 +5,7 @@ pretty_vcproj:
For example, if I want to diff the base.vcproj project:
- pretty_vcproj.py z:\dev\src-chrome\src\base\build\base.vcproj "$(SolutionDir)=z:\dev\src-chrome\src\chrome\\" "$(CHROMIUM_BUILD)=" "$(CHROME_BUILD_TYPE)=" > orignal.txt
+ pretty_vcproj.py z:\dev\src-chrome\src\base\build\base.vcproj "$(SolutionDir)=z:\dev\src-chrome\src\chrome\\" "$(CHROMIUM_BUILD)=" "$(CHROME_BUILD_TYPE)=" > original.txt
pretty_vcproj.py z:\dev\src-chrome\src\base\base_gyp.vcproj "$(SolutionDir)=z:\dev\src-chrome\src\chrome\\" "$(CHROMIUM_BUILD)=" "$(CHROME_BUILD_TYPE)=" > gyp.txt
And you can use your favorite diff tool to see the changes.
diff --git a/deps/npm/node_modules/node-gyp/gyp/tools/emacs/gyp-tests.el b/deps/npm/node_modules/node-gyp/gyp/tools/emacs/gyp-tests.el
index 11b84978860..07afc58a93b 100644
--- a/deps/npm/node_modules/node-gyp/gyp/tools/emacs/gyp-tests.el
+++ b/deps/npm/node_modules/node-gyp/gyp/tools/emacs/gyp-tests.el
@@ -30,7 +30,7 @@
"For the purposes of face comparison, we're not interested in the
differences between certain faces. For example, the difference between
font-lock-comment-delimiter and font-lock-comment-face."
- (case face
+ (cl-case face
((font-lock-comment-delimiter-face) font-lock-comment-face)
(t face)))
diff --git a/deps/npm/node_modules/node-gyp/gyp/tools/emacs/gyp.el b/deps/npm/node_modules/node-gyp/gyp/tools/emacs/gyp.el
index b98b155ceda..042ff3a925c 100644
--- a/deps/npm/node_modules/node-gyp/gyp/tools/emacs/gyp.el
+++ b/deps/npm/node_modules/node-gyp/gyp/tools/emacs/gyp.el
@@ -213,7 +213,7 @@
string-start)
(setq string-start (gyp-parse-to limit))
(if string-start
- (setq group (case (gyp-section-at-point)
+ (setq group (cl-case (gyp-section-at-point)
('dependencies 1)
('variables 2)
('conditions 2)
diff --git a/deps/npm/node_modules/node-gyp/gyp/tools/graphviz.py b/deps/npm/node_modules/node-gyp/gyp/tools/graphviz.py
index 1f3acf37fcc..f19426b69fa 100755
--- a/deps/npm/node_modules/node-gyp/gyp/tools/graphviz.py
+++ b/deps/npm/node_modules/node-gyp/gyp/tools/graphviz.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2011 Google Inc. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
@@ -8,7 +8,6 @@
generate input suitable for graphviz to render a dependency graph of
targets."""
-from __future__ import print_function
import collections
import json
@@ -66,7 +65,7 @@ def WriteGraph(edges):
target = targets[0]
build_file, target_name, toolset = ParseTarget(target)
print(
- ' "%s" [shape=box, label="%s\\n%s"]' % (target, filename, target_name)
+ f' "{target}" [shape=box, label="{filename}\\n{target_name}"]'
)
else:
# Group multiple nodes together in a subgraph.
@@ -74,14 +73,14 @@ def WriteGraph(edges):
print(' label = "%s"' % filename)
for target in targets:
build_file, target_name, toolset = ParseTarget(target)
- print(' "%s" [label="%s"]' % (target, target_name))
+ print(f' "{target}" [label="{target_name}"]')
print(" }")
# Now that we've placed all the nodes within subgraphs, output all
# the edges between nodes.
for src, dsts in edges.items():
for dst in dsts:
- print(' "%s" -> "%s"' % (src, dst))
+ print(f' "{src}" -> "{dst}"')
print("}")
diff --git a/deps/npm/node_modules/node-gyp/gyp/tools/pretty_gyp.py b/deps/npm/node_modules/node-gyp/gyp/tools/pretty_gyp.py
index 7313b4fe1b6..4ffa4445518 100755
--- a/deps/npm/node_modules/node-gyp/gyp/tools/pretty_gyp.py
+++ b/deps/npm/node_modules/node-gyp/gyp/tools/pretty_gyp.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2012 Google Inc. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
@@ -6,7 +6,6 @@
"""Pretty-prints the contents of a GYP file."""
-from __future__ import print_function
import sys
import re
@@ -34,7 +33,7 @@ def mask_comments(input):
def quote_replace(matchobj):
- return "%s%s%s%s" % (
+ return "{}{}{}{}".format(
matchobj.group(1),
matchobj.group(2),
"x" * len(matchobj.group(3)),
diff --git a/deps/npm/node_modules/node-gyp/gyp/tools/pretty_sln.py b/deps/npm/node_modules/node-gyp/gyp/tools/pretty_sln.py
index 2b1cb1de747..6ca0cd12a7b 100755
--- a/deps/npm/node_modules/node-gyp/gyp/tools/pretty_sln.py
+++ b/deps/npm/node_modules/node-gyp/gyp/tools/pretty_sln.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2012 Google Inc. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
@@ -12,7 +12,6 @@
Then it outputs a possible build order.
"""
-from __future__ import print_function
import os
import re
diff --git a/deps/npm/node_modules/node-gyp/gyp/tools/pretty_vcproj.py b/deps/npm/node_modules/node-gyp/gyp/tools/pretty_vcproj.py
index b171fae6cf4..00d32debda5 100755
--- a/deps/npm/node_modules/node-gyp/gyp/tools/pretty_vcproj.py
+++ b/deps/npm/node_modules/node-gyp/gyp/tools/pretty_vcproj.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2012 Google Inc. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
@@ -12,7 +12,6 @@
It outputs the resulting xml to stdout.
"""
-from __future__ import print_function
import os
import sys
@@ -21,27 +20,22 @@ from xml.dom.minidom import parse
from xml.dom.minidom import Node
__author__ = "nsylvain (Nicolas Sylvain)"
-
-try:
- cmp
-except NameError:
-
- def cmp(x, y):
- return (x > y) - (x < y)
+ARGUMENTS = None
+REPLACEMENTS = dict()
-REPLACEMENTS = dict()
-ARGUMENTS = None
+def cmp(x, y):
+ return (x > y) - (x < y)
-class CmpTuple(object):
+class CmpTuple:
"""Compare function between 2 tuple."""
def __call__(self, x, y):
return cmp(x[0], y[0])
-class CmpNode(object):
+class CmpNode:
"""Compare function between 2 xml nodes."""
def __call__(self, x, y):
@@ -72,7 +66,7 @@ class CmpNode(object):
def PrettyPrintNode(node, indent=0):
if node.nodeType == Node.TEXT_NODE:
if node.data.strip():
- print("%s%s" % (" " * indent, node.data.strip()))
+ print("{}{}".format(" " * indent, node.data.strip()))
return
if node.childNodes:
@@ -84,23 +78,23 @@ def PrettyPrintNode(node, indent=0):
# Print the main tag
if attr_count == 0:
- print("%s<%s>" % (" " * indent, node.nodeName))
+ print("{}<{}>".format(" " * indent, node.nodeName))
else:
- print("%s<%s" % (" " * indent, node.nodeName))
+ print("{}<{}".format(" " * indent, node.nodeName))
all_attributes = []
for (name, value) in node.attributes.items():
all_attributes.append((name, value))
all_attributes.sort(CmpTuple())
for (name, value) in all_attributes:
- print('%s %s="%s"' % (" " * indent, name, value))
+ print('{} {}="{}"'.format(" " * indent, name, value))
print("%s>" % (" " * indent))
if node.nodeValue:
- print("%s %s" % (" " * indent, node.nodeValue))
+ print("{} {}".format(" " * indent, node.nodeValue))
for sub_node in node.childNodes:
PrettyPrintNode(sub_node, indent=indent + 2)
- print("%s</%s>" % (" " * indent, node.nodeName))
+ print("{}</{}>".format(" " * indent, node.nodeName))
def FlattenFilter(node):
diff --git a/deps/npm/node_modules/node-gyp/lib/configure.js b/deps/npm/node_modules/node-gyp/lib/configure.js
index d4342b9d76a..038ccbf20f1 100644
--- a/deps/npm/node_modules/node-gyp/lib/configure.js
+++ b/deps/npm/node_modules/node-gyp/lib/configure.js
@@ -76,7 +76,9 @@ function configure (gyp, argv, callback) {
if (err) {
return callback(err)
}
- log.verbose('build dir', '"build" dir needed to be created?', isNew)
+ log.verbose(
+ 'build dir', '"build" dir needed to be created?', isNew ? 'Yes' : 'No'
+ )
if (win) {
findVisualStudio(release.semver, gyp.opts.msvs_version,
createConfigFile)
@@ -96,7 +98,7 @@ function configure (gyp, argv, callback) {
log.verbose('build/' + configFilename, 'creating config file')
- var config = process.config || {}
+ var config = process.config ? JSON.parse(JSON.stringify(process.config)) : {}
var defaults = config.target_defaults
var variables = config.variables
diff --git a/deps/npm/node_modules/node-gyp/lib/find-python.js b/deps/npm/node_modules/node-gyp/lib/find-python.js
index af269de2fc6..a445e825b9d 100644
--- a/deps/npm/node_modules/node-gyp/lib/find-python.js
+++ b/deps/npm/node_modules/node-gyp/lib/find-python.js
@@ -1,6 +1,5 @@
'use strict'
-const path = require('path')
const log = require('npmlog')
const semver = require('semver')
const cp = require('child_process')
@@ -8,6 +7,38 @@ const extend = require('util')._extend // eslint-disable-line
const win = process.platform === 'win32'
const logWithPrefix = require('./util').logWithPrefix
+const systemDrive = process.env.SystemDrive || 'C:'
+const username = process.env.USERNAME || process.env.USER || getOsUserInfo()
+const localAppData = process.env.LOCALAPPDATA || `${systemDrive}\\${username}\\AppData\\Local`
+const foundLocalAppData = process.env.LOCALAPPDATA || username
+const programFiles = process.env.ProgramW6432 || process.env.ProgramFiles || `${systemDrive}\\Program Files`
+const programFilesX86 = process.env['ProgramFiles(x86)'] || `${programFiles} (x86)`
+
+const winDefaultLocationsArray = []
+for (const majorMinor of ['39', '38', '37', '36']) {
+ if (foundLocalAppData) {
+ winDefaultLocationsArray.push(
+ `${localAppData}\\Programs\\Python\\Python${majorMinor}\\python.exe`,
+ `${programFiles}\\Python${majorMinor}\\python.exe`,
+ `${localAppData}\\Programs\\Python\\Python${majorMinor}-32\\python.exe`,
+ `${programFiles}\\Python${majorMinor}-32\\python.exe`,
+ `${programFilesX86}\\Python${majorMinor}-32\\python.exe`
+ )
+ } else {
+ winDefaultLocationsArray.push(
+ `${programFiles}\\Python${majorMinor}\\python.exe`,
+ `${programFiles}\\Python${majorMinor}-32\\python.exe`,
+ `${programFilesX86}\\Python${majorMinor}-32\\python.exe`
+ )
+ }
+}
+
+function getOsUserInfo () {
+ try {
+ return require('os').userInfo().username
+ } catch (e) {}
+}
+
function PythonFinder (configPython, callback) {
this.callback = callback
this.configPython = configPython
@@ -18,17 +49,14 @@ PythonFinder.prototype = {
log: logWithPrefix(log, 'find Python'),
argsExecutable: ['-c', 'import sys; print(sys.executable);'],
argsVersion: ['-c', 'import sys; print("%s.%s.%s" % sys.version_info[:3]);'],
- semverRange: '2.7.x || >=3.5.0',
+ semverRange: '>=3.6.0',
// These can be overridden for testing:
execFile: cp.execFile,
env: process.env,
win: win,
pyLauncher: 'py.exe',
- winDefaultLocations: [
- path.join(process.env.SystemDrive || 'C:', 'Python37', 'python.exe'),
- path.join(process.env.SystemDrive || 'C:', 'Python27', 'python.exe')
- ],
+ winDefaultLocations: winDefaultLocationsArray,
// Logs a message at verbose level, but also saves it to be displayed later
// at error level if an error occurs. This should help diagnose the problem.
@@ -96,11 +124,6 @@ PythonFinder.prototype = {
before: () => { this.addLog('checking if "python" can be used') },
check: this.checkCommand,
arg: 'python'
- },
- {
- before: () => { this.addLog('checking if "python2" can be used') },
- check: this.checkCommand,
- arg: 'python2'
}
]
@@ -119,7 +142,7 @@ PythonFinder.prototype = {
checks.push({
before: () => {
this.addLog(
- 'checking if the py launcher can be used to find Python')
+ 'checking if the py launcher can be used to find Python 3')
},
check: this.checkPyLauncher
})
@@ -188,10 +211,15 @@ PythonFinder.prototype = {
// Distributions of Python on Windows by default install with the "py.exe"
// Python launcher which is more likely to exist than the Python executable
// being in the $PATH.
+ // Because the Python launcher supports Python 2 and Python 3, we should
+ // explicitly request a Python 3 version. This is done by supplying "-3" as
+ // the first command line argument. Since "py.exe -3" would be an invalid
+ // executable for "execFile", we have to use the launcher to figure out
+ // where the actual "python.exe" executable is located.
checkPyLauncher: function checkPyLauncher (errorCallback) {
this.log.verbose(
- `- executing "${this.pyLauncher}" to get Python executable path`)
- this.run(this.pyLauncher, this.argsExecutable, false,
+ `- executing "${this.pyLauncher}" to get Python 3 executable path`)
+ this.run(this.pyLauncher, ['-3', ...this.argsExecutable], false,
function (err, execPath) {
// Possible outcomes: same as checkCommand
if (err) {
diff --git a/deps/npm/node_modules/node-gyp/lib/find-visualstudio.js b/deps/npm/node_modules/node-gyp/lib/find-visualstudio.js
index 9c6dad90f8a..f2cce327e7c 100644
--- a/deps/npm/node_modules/node-gyp/lib/find-visualstudio.js
+++ b/deps/npm/node_modules/node-gyp/lib/find-visualstudio.js
@@ -399,7 +399,7 @@ VisualStudioFinder.prototype = {
})
},
- // After finding a usable version of Visual Stuido:
+ // After finding a usable version of Visual Studio:
// - add it to validVersions to be displayed at the end if a specific
// version was requested and not found;
// - check if this is the version that was requested.
diff --git a/deps/npm/node_modules/node-gyp/lib/install.js b/deps/npm/node_modules/node-gyp/lib/install.js
index f9fa2b34bd3..99f6d8592a3 100644
--- a/deps/npm/node_modules/node-gyp/lib/install.js
+++ b/deps/npm/node_modules/node-gyp/lib/install.js
@@ -4,55 +4,42 @@ const fs = require('graceful-fs')
const os = require('os')
const tar = require('tar')
const path = require('path')
+const util = require('util')
+const stream = require('stream')
const crypto = require('crypto')
const log = require('npmlog')
const semver = require('semver')
-const request = require('request')
+const fetch = require('make-fetch-happen')
const processRelease = require('./process-release')
const win = process.platform === 'win32'
-const getProxyFromURI = require('./proxy')
+const streamPipeline = util.promisify(stream.pipeline)
-function install (fs, gyp, argv, callback) {
- var release = processRelease(argv, gyp, process.version, process.release)
+/**
+ * @param {typeof import('graceful-fs')} fs
+ */
- // ensure no double-callbacks happen
- function cb (err) {
- if (cb.done) {
- return
- }
- cb.done = true
- if (err) {
- log.warn('install', 'got an error, rolling back install')
- // roll-back the install if anything went wrong
- gyp.commands.remove([release.versionDir], function () {
- callback(err)
- })
- } else {
- callback(null, release.version)
- }
- }
+async function install (fs, gyp, argv) {
+ const release = processRelease(argv, gyp, process.version, process.release)
// Determine which node dev files version we are installing
log.verbose('install', 'input version string %j', release.version)
if (!release.semver) {
// could not parse the version string with semver
- return callback(new Error('Invalid version number: ' + release.version))
+ throw new Error('Invalid version number: ' + release.version)
}
if (semver.lt(release.version, '0.8.0')) {
- return callback(new Error('Minimum target version is `0.8.0` or greater. Got: ' + release.version))
+ throw new Error('Minimum target version is `0.8.0` or greater. Got: ' + release.version)
}
// 0.x.y-pre versions are not published yet and cannot be installed. Bail.
if (release.semver.prerelease[0] === 'pre') {
log.verbose('detected "pre" node version', release.version)
- if (gyp.opts.nodedir) {
- log.verbose('--nodedir flag was passed; skipping install', gyp.opts.nodedir)
- callback()
- } else {
- callback(new Error('"pre" versions of node cannot be installed, use the --nodedir flag instead'))
+ if (!gyp.opts.nodedir) {
+ throw new Error('"pre" versions of node cannot be installed, use the --nodedir flag instead')
}
+ log.verbose('--nodedir flag was passed; skipping install', gyp.opts.nodedir)
return
}
@@ -60,296 +47,225 @@ function install (fs, gyp, argv, callback) {
log.verbose('install', 'installing version: %s', release.versionDir)
// the directory where the dev files will be installed
- var devDir = path.resolve(gyp.devDir, release.versionDir)
+ const devDir = path.resolve(gyp.devDir, release.versionDir)
// If '--ensure' was passed, then don't *always* install the version;
// check if it is already installed, and only install when needed
if (gyp.opts.ensure) {
log.verbose('install', '--ensure was passed, so won\'t reinstall if already installed')
- fs.stat(devDir, function (err) {
- if (err) {
- if (err.code === 'ENOENT') {
- log.verbose('install', 'version not already installed, continuing with install', release.version)
- go()
- } else if (err.code === 'EACCES') {
- eaccesFallback(err)
- } else {
- cb(err)
+ try {
+ await fs.promises.stat(devDir)
+ } catch (err) {
+ if (err.code === 'ENOENT') {
+ log.verbose('install', 'version not already installed, continuing with install', release.version)
+ try {
+ return await go()
+ } catch (err) {
+ return rollback(err)
}
- return
+ } else if (err.code === 'EACCES') {
+ return eaccesFallback(err)
}
- log.verbose('install', 'version is already installed, need to check "installVersion"')
- var installVersionFile = path.resolve(devDir, 'installVersion')
- fs.readFile(installVersionFile, 'ascii', function (err, ver) {
- if (err && err.code !== 'ENOENT') {
- return cb(err)
- }
- var installVersion = parseInt(ver, 10) || 0
- log.verbose('got "installVersion"', installVersion)
- log.verbose('needs "installVersion"', gyp.package.installVersion)
- if (installVersion < gyp.package.installVersion) {
- log.verbose('install', 'version is no good; reinstalling')
- go()
- } else {
- log.verbose('install', 'version is good')
- cb()
- }
- })
- })
+ throw err
+ }
+ log.verbose('install', 'version is already installed, need to check "installVersion"')
+ const installVersionFile = path.resolve(devDir, 'installVersion')
+ let installVersion = 0
+ try {
+ const ver = await fs.promises.readFile(installVersionFile, 'ascii')
+ installVersion = parseInt(ver, 10) || 0
+ } catch (err) {
+ if (err.code !== 'ENOENT') {
+ throw err
+ }
+ }
+ log.verbose('got "installVersion"', installVersion)
+ log.verbose('needs "installVersion"', gyp.package.installVersion)
+ if (installVersion < gyp.package.installVersion) {
+ log.verbose('install', 'version is no good; reinstalling')
+ try {
+ return await go()
+ } catch (err) {
+ return rollback(err)
+ }
+ }
+ log.verbose('install', 'version is good')
} else {
- go()
- }
-
- function getContentSha (res, callback) {
- var shasum = crypto.createHash('sha256')
- res.on('data', function (chunk) {
- shasum.update(chunk)
- }).on('end', function () {
- callback(null, shasum.digest('hex'))
- })
+ try {
+ return await go()
+ } catch (err) {
+ return rollback(err)
+ }
}
- function go () {
+ async function go () {
log.verbose('ensuring nodedir is created', devDir)
// first create the dir for the node dev files
- fs.mkdir(devDir, { recursive: true }, function (err, created) {
- if (err) {
- if (err.code === 'EACCES') {
- eaccesFallback(err)
- } else {
- cb(err)
- }
- return
- }
+ try {
+ const created = await fs.promises.mkdir(devDir, { recursive: true })
if (created) {
log.verbose('created nodedir', created)
}
-
- // now download the node tarball
- var tarPath = gyp.opts.tarball
- var badDownload = false
- var extractCount = 0
- var contentShasums = {}
- var expectShasums = {}
-
- // checks if a file to be extracted from the tarball is valid.
- // only .h header files and the gyp files get extracted
- function isValid (path) {
- var isValid = valid(path)
- if (isValid) {
- log.verbose('extracted file from tarball', path)
- extractCount++
- } else {
- // invalid
- log.silly('ignoring from tarball', path)
- }
- return isValid
+ } catch (err) {
+ if (err.code === 'EACCES') {
+ return eaccesFallback(err)
}
- // download the tarball and extract!
- if (tarPath) {
- return tar.extract({
- file: tarPath,
- strip: 1,
- filter: isValid,
- cwd: devDir
- }).then(afterTarball, cb)
- }
+ throw err
+ }
- try {
- var req = download(gyp, process.env, release.tarballUrl)
- } catch (e) {
- return cb(e)
+ // now download the node tarball
+ const tarPath = gyp.opts.tarball
+ let extractCount = 0
+ const contentShasums = {}
+ const expectShasums = {}
+
+ // checks if a file to be extracted from the tarball is valid.
+ // only .h header files and the gyp files get extracted
+ function isValid (path) {
+ const isValid = valid(path)
+ if (isValid) {
+ log.verbose('extracted file from tarball', path)
+ extractCount++
+ } else {
+ // invalid
+ log.silly('ignoring from tarball', path)
}
+ return isValid
+ }
- // something went wrong downloading the tarball?
- req.on('error', function (err) {
- if (err.code === 'ENOTFOUND') {
- return cb(new Error('This is most likely not a problem with node-gyp or the package itself and\n' +
- 'is related to network connectivity. In most cases you are behind a proxy or have bad \n' +
- 'network settings.'))
- }
- badDownload = true
- cb(err)
- })
+ // download the tarball and extract!
- req.on('close', function () {
- if (extractCount === 0) {
- cb(new Error('Connection closed while downloading tarball file'))
- }
+ if (tarPath) {
+ await tar.extract({
+ file: tarPath,
+ strip: 1,
+ filter: isValid,
+ cwd: devDir
})
+ } else {
+ try {
+ const res = await download(gyp, release.tarballUrl)
- req.on('response', function (res) {
- if (res.statusCode !== 200) {
- badDownload = true
- cb(new Error(res.statusCode + ' response downloading ' + release.tarballUrl))
- return
+ if (res.status !== 200) {
+ throw new Error(`${res.status} response downloading ${release.tarballUrl}`)
}
- // content checksum
- getContentSha(res, function (_, checksum) {
- var filename = path.basename(release.tarballUrl).trim()
- contentShasums[filename] = checksum
- log.verbose('content checksum', filename, checksum)
- })
-
- // start unzipping and untaring
- res.pipe(tar.extract({
- strip: 1,
- cwd: devDir,
- filter: isValid
- }).on('close', afterTarball).on('error', cb))
- })
- // invoked after the tarball has finished being extracted
- function afterTarball () {
- if (badDownload) {
- return
- }
- if (extractCount === 0) {
- return cb(new Error('There was a fatal problem while downloading/extracting the tarball'))
+ await streamPipeline(
+ res.body,
+ // content checksum
+ new ShaSum((_, checksum) => {
+ const filename = path.basename(release.tarballUrl).trim()
+ contentShasums[filename] = checksum
+ log.verbose('content checksum', filename, checksum)
+ }),
+ tar.extract({
+ strip: 1,
+ cwd: devDir,
+ filter: isValid
+ })
+ )
+ } catch (err) {
+ // something went wrong downloading the tarball?
+ if (err.code === 'ENOTFOUND') {
+ throw new Error('This is most likely not a problem with node-gyp or the package itself and\n' +
+ 'is related to network connectivity. In most cases you are behind a proxy or have bad \n' +
+ 'network settings.')
}
- log.verbose('tarball', 'done parsing tarball')
- var async = 0
+ throw err
+ }
+ }
- if (win) {
- // need to download node.lib
- async++
- downloadNodeLib(deref)
- }
+ // invoked after the tarball has finished being extracted
+ if (extractCount === 0) {
+ throw new Error('There was a fatal problem while downloading/extracting the tarball')
+ }
- // write the "installVersion" file
- async++
- var installVersionPath = path.resolve(devDir, 'installVersion')
- fs.writeFile(installVersionPath, gyp.package.installVersion + '\n', deref)
+ log.verbose('tarball', 'done parsing tarball')
+
+ const installVersionPath = path.resolve(devDir, 'installVersion')
+ await Promise.all([
+ // need to download node.lib
+ ...(win ? downloadNodeLib() : []),
+ // write the "installVersion" file
+ fs.promises.writeFile(installVersionPath, gyp.package.installVersion + '\n'),
+ // Only download SHASUMS.txt if we downloaded something in need of SHA verification
+ ...(!tarPath || win ? [downloadShasums()] : [])
+ ])
+
+ log.verbose('download contents checksum', JSON.stringify(contentShasums))
+ // check content shasums
+ for (const k in contentShasums) {
+ log.verbose('validating download checksum for ' + k, '(%s == %s)', contentShasums[k], expectShasums[k])
+ if (contentShasums[k] !== expectShasums[k]) {
+ throw new Error(k + ' local checksum ' + contentShasums[k] + ' not match remote ' + expectShasums[k])
+ }
+ }
- // Only download SHASUMS.txt if we downloaded something in need of SHA verification
- if (!tarPath || win) {
- // download SHASUMS.txt
- async++
- downloadShasums(deref)
- }
+ async function downloadShasums () {
+ log.verbose('check download content checksum, need to download `SHASUMS256.txt`...')
+ log.verbose('checksum url', release.shasumsUrl)
- if (async === 0) {
- // no async tasks required
- cb()
- }
+ const res = await download(gyp, release.shasumsUrl)
- function deref (err) {
- if (err) {
- return cb(err)
- }
+ if (res.status !== 200) {
+ throw new Error(`${res.status} status code downloading checksum`)
+ }
- async--
- if (!async) {
- log.verbose('download contents checksum', JSON.stringify(contentShasums))
- // check content shasums
- for (var k in contentShasums) {
- log.verbose('validating download checksum for ' + k, '(%s == %s)', contentShasums[k], expectShasums[k])
- if (contentShasums[k] !== expectShasums[k]) {
- cb(new Error(k + ' local checksum ' + contentShasums[k] + ' not match remote ' + expectShasums[k]))
- return
- }
- }
- cb()
- }
+ for (const line of (await res.text()).trim().split('\n')) {
+ const items = line.trim().split(/\s+/)
+ if (items.length !== 2) {
+ return
}
+
+ // 0035d18e2dcf9aad669b1c7c07319e17abfe3762 ./node-v0.11.4.tar.gz
+ const name = items[1].replace(/^\.\//, '')
+ expectShasums[name] = items[0]
}
- function downloadShasums (done) {
- log.verbose('check download content checksum, need to download `SHASUMS256.txt`...')
- log.verbose('checksum url', release.shasumsUrl)
- try {
- var req = download(gyp, process.env, release.shasumsUrl)
- } catch (e) {
- return cb(e)
- }
+ log.verbose('checksum data', JSON.stringify(expectShasums))
+ }
- req.on('error', done)
- req.on('response', function (res) {
- if (res.statusCode !== 200) {
- done(new Error(res.statusCode + ' status code downloading checksum'))
- return
+ function downloadNodeLib () {
+ log.verbose('on Windows; need to download `' + release.name + '.lib`...')
+ const archs = ['ia32', 'x64', 'arm64']
+ return archs.map(async (arch) => {
+ const dir = path.resolve(devDir, arch)
+ const targetLibPath = path.resolve(dir, release.name + '.lib')
+ const { libUrl, libPath } = release[arch]
+ const name = `${arch} ${release.name}.lib`
+ log.verbose(name, 'dir', dir)
+ log.verbose(name, 'url', libUrl)
+
+ await fs.promises.mkdir(dir, { recursive: true })
+ log.verbose('streaming', name, 'to:', targetLibPath)
+
+ const res = await download(gyp, libUrl)
+
+ if (res.status === 403 || res.status === 404) {
+ if (arch === 'arm64') {
+ // Arm64 is a newer platform on Windows and not all node distributions provide it.
+ log.verbose(`${name} was not found in ${libUrl}`)
+ } else {
+ log.warn(`${name} was not found in ${libUrl}`)
}
+ return
+ } else if (res.status !== 200) {
+ throw new Error(`${res.status} status code downloading ${name}`)
+ }
- var chunks = []
- res.on('data', function (chunk) {
- chunks.push(chunk)
- })
- res.on('end', function () {
- var lines = Buffer.concat(chunks).toString().trim().split('\n')
- lines.forEach(function (line) {
- var items = line.trim().split(/\s+/)
- if (items.length !== 2) {
- return
- }
-
- // 0035d18e2dcf9aad669b1c7c07319e17abfe3762 ./node-v0.11.4.tar.gz
- var name = items[1].replace(/^\.\//, '')
- expectShasums[name] = items[0]
- })
-
- log.verbose('checksum data', JSON.stringify(expectShasums))
- done()
- })
- })
- }
-
- function downloadNodeLib (done) {
- log.verbose('on Windows; need to download `' + release.name + '.lib`...')
- var archs = ['ia32', 'x64', 'arm64']
- var async = archs.length
- archs.forEach(function (arch) {
- var dir = path.resolve(devDir, arch)
- var targetLibPath = path.resolve(dir, release.name + '.lib')
- var libUrl = release[arch].libUrl
- var libPath = release[arch].libPath
- var name = arch + ' ' + release.name + '.lib'
- log.verbose(name, 'dir', dir)
- log.verbose(name, 'url', libUrl)
-
- fs.mkdir(dir, { recursive: true }, function (err) {
- if (err) {
- return done(err)
- }
- log.verbose('streaming', name, 'to:', targetLibPath)
-
- try {
- var req = download(gyp, process.env, libUrl, cb)
- } catch (e) {
- return cb(e)
- }
-
- req.on('error', done)
- req.on('response', function (res) {
- if (res.statusCode === 403 || res.statusCode === 404) {
- if (arch === 'arm64') {
- // Arm64 is a newer platform on Windows and not all node distributions provide it.
- log.verbose(`${name} was not found in ${libUrl}`)
- } else {
- log.warn(`${name} was not found in ${libUrl}`)
- }
- return
- } else if (res.statusCode !== 200) {
- done(new Error(res.statusCode + ' status code downloading ' + name))
- return
- }
-
- getContentSha(res, function (_, checksum) {
- contentShasums[libPath] = checksum
- log.verbose('content checksum', libPath, checksum)
- })
-
- var ws = fs.createWriteStream(targetLibPath)
- ws.on('error', cb)
- req.pipe(ws)
- })
- req.on('end', function () { --async || done() })
- })
- })
- } // downloadNodeLib()
- }) // mkdir()
+ return streamPipeline(
+ res.body,
+ new ShaSum((_, checksum) => {
+ contentShasums[libPath] = checksum
+ log.verbose('content checksum', libPath, checksum)
+ }),
+ fs.createWriteStream(targetLibPath)
+ )
+ })
+ } // downloadNodeLib()
} // go()
/**
@@ -358,10 +274,17 @@ function install (fs, gyp, argv, callback) {
function valid (file) {
// header files
- var extname = path.extname(file)
+ const extname = path.extname(file)
return extname === '.h' || extname === '.gypi'
}
+ async function rollback (err) {
+ log.warn('install', 'got an error, rolling back install')
+ // roll-back the install if anything went wrong
+ await util.promisify(gyp.commands.remove)([release.versionDir])
+ throw err
+ }
+
/**
* The EACCES fallback is a workaround for npm's `sudo` behavior, where
* it drops the permissions before invoking any child processes (like
@@ -371,14 +294,14 @@ function install (fs, gyp, argv, callback) {
* the compilation will succeed...
*/
- function eaccesFallback (err) {
- var noretry = '--node_gyp_internal_noretry'
+ async function eaccesFallback (err) {
+ const noretry = '--node_gyp_internal_noretry'
if (argv.indexOf(noretry) !== -1) {
- return cb(err)
+ throw err
}
- var tmpdir = os.tmpdir()
+ const tmpdir = os.tmpdir()
gyp.devDir = path.resolve(tmpdir, '.node-gyp')
- var userString = ''
+ let userString = ''
try {
// os.userInfo can fail on some systems, it's not critical here
userString = ` ("${os.userInfo().username}")`
@@ -389,59 +312,65 @@ function install (fs, gyp, argv, callback) {
log.verbose('tmpdir == cwd', 'automatically will remove dev files after to save disk space')
gyp.todo.push({ name: 'remove', args: argv })
}
- gyp.commands.install([noretry].concat(argv), cb)
+ return util.promisify(gyp.commands.install)([noretry].concat(argv))
+ }
+}
+
+class ShaSum extends stream.Transform {
+ constructor (callback) {
+ super()
+ this._callback = callback
+ this._digester = crypto.createHash('sha256')
+ }
+
+ _transform (chunk, _, callback) {
+ this._digester.update(chunk)
+ callback(null, chunk)
+ }
+
+ _flush (callback) {
+ this._callback(null, this._digester.digest('hex'))
+ callback()
}
}
-function download (gyp, env, url) {
+async function download (gyp, url) {
log.http('GET', url)
- var requestOpts = {
- uri: url,
+ const requestOpts = {
headers: {
- 'User-Agent': 'node-gyp v' + gyp.version + ' (node ' + process.version + ')',
+ 'User-Agent': `node-gyp v${gyp.version} (node ${process.version})`,
Connection: 'keep-alive'
- }
+ },
+ proxy: gyp.opts.proxy,
+ noProxy: gyp.opts.noproxy
}
- var cafile = gyp.opts.cafile
+ const cafile = gyp.opts.cafile
if (cafile) {
- requestOpts.ca = readCAFile(cafile)
- }
-
- // basic support for a proxy server
- var proxyUrl = getProxyFromURI(gyp, env, url)
- if (proxyUrl) {
- if (/^https?:\/\//i.test(proxyUrl)) {
- log.verbose('download', 'using proxy url: "%s"', proxyUrl)
- requestOpts.proxy = proxyUrl
- } else {
- log.warn('download', 'ignoring invalid "proxy" config setting: "%s"', proxyUrl)
- }
+ requestOpts.ca = await readCAFile(cafile)
}
- var req = request(requestOpts)
- req.on('response', function (res) {
- log.http(res.statusCode, url)
- })
+ const res = await fetch(url, requestOpts)
+ log.http(res.status, res.url)
- return req
+ return res
}
-function readCAFile (filename) {
+async function readCAFile (filename) {
// The CA file can contain multiple certificates so split on certificate
// boundaries. [\S\s]*? is used to match everything including newlines.
- var ca = fs.readFileSync(filename, 'utf8')
- var re = /(-----BEGIN CERTIFICATE-----[\S\s]*?-----END CERTIFICATE-----)/g
+ const ca = await fs.promises.readFile(filename, 'utf8')
+ const re = /(-----BEGIN CERTIFICATE-----[\S\s]*?-----END CERTIFICATE-----)/g
return ca.match(re)
}
module.exports = function (gyp, argv, callback) {
- return install(fs, gyp, argv, callback)
+ install(fs, gyp, argv).then(callback.bind(undefined, null), callback)
}
module.exports.test = {
- download: download,
- install: install,
- readCAFile: readCAFile
+ download,
+ install,
+ readCAFile
}
module.exports.usage = 'Install node development files for the specified node version.'
diff --git a/deps/npm/node_modules/node-gyp/lib/proxy.js b/deps/npm/node_modules/node-gyp/lib/proxy.js
deleted file mode 100644
index 92d9ed2f7f0..00000000000
--- a/deps/npm/node_modules/node-gyp/lib/proxy.js
+++ /dev/null
@@ -1,92 +0,0 @@
-'use strict'
-// Taken from https://github.com/request/request/blob/212570b/lib/getProxyFromURI.js
-
-const url = require('url')
-
-function formatHostname (hostname) {
- // canonicalize the hostname, so that 'oogle.com' won't match 'google.com'
- return hostname.replace(/^\.*/, '.').toLowerCase()
-}
-
-function parseNoProxyZone (zone) {
- zone = zone.trim().toLowerCase()
-
- var zoneParts = zone.split(':', 2)
- var zoneHost = formatHostname(zoneParts[0])
- var zonePort = zoneParts[1]
- var hasPort = zone.indexOf(':') > -1
-
- return { hostname: zoneHost, port: zonePort, hasPort: hasPort }
-}
-
-function uriInNoProxy (uri, noProxy) {
- var port = uri.port || (uri.protocol === 'https:' ? '443' : '80')
- var hostname = formatHostname(uri.hostname)
- var noProxyList = noProxy.split(',')
-
- // iterate through the noProxyList until it finds a match.
- return noProxyList.map(parseNoProxyZone).some(function (noProxyZone) {
- var isMatchedAt = hostname.indexOf(noProxyZone.hostname)
- var hostnameMatched = (
- isMatchedAt > -1 &&
- (isMatchedAt === hostname.length - noProxyZone.hostname.length)
- )
-
- if (noProxyZone.hasPort) {
- return (port === noProxyZone.port) && hostnameMatched
- }
-
- return hostnameMatched
- })
-}
-
-function getProxyFromURI (gyp, env, uri) {
- // If a string URI/URL was given, parse it into a URL object
- if (typeof uri === 'string') {
- // eslint-disable-next-line
- uri = url.parse(uri)
- }
-
- // Decide the proper request proxy to use based on the request URI object and the
- // environmental variables (NO_PROXY, HTTP_PROXY, etc.)
- // respect NO_PROXY environment variables (see: https://lynx.invisible-island.net/lynx2.8.7/breakout/lynx_help/keystrokes/environments.html)
-
- var noProxy = gyp.opts.noproxy || env.NO_PROXY || env.no_proxy || env.npm_config_noproxy || ''
-
- // if the noProxy is a wildcard then return null
-
- if (noProxy === '*') {
- return null
- }
-
- // if the noProxy is not empty and the uri is found return null
-
- if (noProxy !== '' && uriInNoProxy(uri, noProxy)) {
- return null
- }
-
- // Check for HTTP or HTTPS Proxy in environment Else default to null
-
- if (uri.protocol === 'http:') {
- return gyp.opts.proxy ||
- env.HTTP_PROXY ||
- env.http_proxy ||
- env.npm_config_proxy || null
- }
-
- if (uri.protocol === 'https:') {
- return gyp.opts.proxy ||
- env.HTTPS_PROXY ||
- env.https_proxy ||
- env.HTTP_PROXY ||
- env.http_proxy ||
- env.npm_config_proxy || null
- }
-
- // if none of that works, return null
- // (What uri protocol are you using then?)
-
- return null
-}
-
-module.exports = getProxyFromURI
diff --git a/deps/npm/node_modules/node-gyp/macOS_Catalina.md b/deps/npm/node_modules/node-gyp/macOS_Catalina.md
index ca2fd234733..4fe0f29b21e 100644
--- a/deps/npm/node_modules/node-gyp/macOS_Catalina.md
+++ b/deps/npm/node_modules/node-gyp/macOS_Catalina.md
@@ -40,7 +40,7 @@ To see if `Xcode Command Line Tools` is installed in a way that will work with `
curl -sL https://github.com/nodejs/node-gyp/raw/master/macOS_Catalina_acid_test.sh | bash
```
-If test succeeded, _you are done_! You should be ready to install `node-gyp`.
+If test succeeded, _you are done_! You should be ready to [install](https://github.com/nodejs/node-gyp#installation) `node-gyp`.
If test failed, there is a problem with your Xcode Command Line Tools installation. [Continue to Solutions](#Solutions).
@@ -89,7 +89,7 @@ There are three ways to install the Xcode libraries `node-gyp` needs on macOS. P
### I did all that and the acid test still does not pass :-(
1. `sudo rm -rf $(xcode-select -print-path)` # Enter root password. No output is normal.
2. `sudo rm -rf /Library/Developer/CommandLineTools` # Enter root password.
-3. `xcode-select --reset`
+3. `sudo xcode-select --reset`
4. `xcode-select --install`
5. If the [_acid test_ steps above](#The-acid-test) still does _not_ pass then...
6. `npm explore npm -g -- npm install node-gyp@latest`
diff --git a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/LICENSE b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/LICENSE
new file mode 100644
index 00000000000..8d28acf866d
--- /dev/null
+++ b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/LICENSE
@@ -0,0 +1,16 @@
+ISC License
+
+Copyright (c) npm, Inc.
+
+Permission to use, copy, modify, and/or distribute this software for
+any purpose with or without fee is hereby granted, provided that the
+above copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE COPYRIGHT HOLDER DISCLAIMS
+ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE
+USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/agent.js b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/agent.js
new file mode 100644
index 00000000000..e27eb4f3a80
--- /dev/null
+++ b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/agent.js
@@ -0,0 +1,209 @@
+'use strict'
+const LRU = require('lru-cache')
+const url = require('url')
+const isLambda = require('is-lambda')
+
+const AGENT_CACHE = new LRU({ max: 50 })
+let HttpsAgent
+let HttpAgent
+
+module.exports = getAgent
+
+const getAgentTimeout = timeout =>
+ typeof timeout !== 'number' || !timeout ? 0 : timeout + 1
+
+const getMaxSockets = maxSockets => maxSockets || 15
+
+function getAgent (uri, opts) {
+ const parsedUri = new url.URL(typeof uri === 'string' ? uri : uri.url)
+ const isHttps = parsedUri.protocol === 'https:'
+ const pxuri = getProxyUri(parsedUri.href, opts)
+
+ // If opts.timeout is zero, set the agentTimeout to zero as well. A timeout
+ // of zero disables the timeout behavior (OS limits still apply). Else, if
+ // opts.timeout is a non-zero value, set it to timeout + 1, to ensure that
+ // the node-fetch-npm timeout will always fire first, giving us more
+ // consistent errors.
+ const agentTimeout = getAgentTimeout(opts.timeout)
+ const agentMaxSockets = getMaxSockets(opts.maxSockets)
+
+ const key = [
+ `https:${isHttps}`,
+ pxuri
+ ? `proxy:${pxuri.protocol}//${pxuri.host}:${pxuri.port}`
+ : '>no-proxy<',
+ `local-address:${opts.localAddress || '>no-local-address<'}`,
+ `strict-ssl:${isHttps ? !!opts.strictSSL : '>no-strict-ssl<'}`,
+ `ca:${(isHttps && opts.ca) || '>no-ca<'}`,
+ `cert:${(isHttps && opts.cert) || '>no-cert<'}`,
+ `key:${(isHttps && opts.key) || '>no-key<'}`,
+ `timeout:${agentTimeout}`,
+ `maxSockets:${agentMaxSockets}`,
+ ].join(':')
+
+ if (opts.agent != null) { // `agent: false` has special behavior!
+ return opts.agent
+ }
+
+ // keep alive in AWS lambda makes no sense
+ const lambdaAgent = !isLambda ? null
+ : isHttps ? require('https').globalAgent
+ : require('http').globalAgent
+
+ if (isLambda && !pxuri)
+ return lambdaAgent
+
+ if (AGENT_CACHE.peek(key))
+ return AGENT_CACHE.get(key)
+
+ if (pxuri) {
+ const pxopts = isLambda ? {
+ ...opts,
+ agent: lambdaAgent,
+ } : opts
+ const proxy = getProxy(pxuri, pxopts, isHttps)
+ AGENT_CACHE.set(key, proxy)
+ return proxy
+ }
+
+ if (!HttpsAgent) {
+ HttpAgent = require('agentkeepalive')
+ HttpsAgent = HttpAgent.HttpsAgent
+ }
+
+ const agent = isHttps ? new HttpsAgent({
+ maxSockets: agentMaxSockets,
+ ca: opts.ca,
+ cert: opts.cert,
+ key: opts.key,
+ localAddress: opts.localAddress,
+ rejectUnauthorized: opts.strictSSL,
+ timeout: agentTimeout,
+ }) : new HttpAgent({
+ maxSockets: agentMaxSockets,
+ localAddress: opts.localAddress,
+ timeout: agentTimeout,
+ })
+ AGENT_CACHE.set(key, agent)
+ return agent
+}
+
+function checkNoProxy (uri, opts) {
+ const host = new url.URL(uri).hostname.split('.').reverse()
+ let noproxy = (opts.noProxy || getProcessEnv('no_proxy'))
+ if (typeof noproxy === 'string')
+ noproxy = noproxy.split(/\s*,\s*/g)
+
+ return noproxy && noproxy.some(no => {
+ const noParts = no.split('.').filter(x => x).reverse()
+ if (!noParts.length)
+ return false
+ for (let i = 0; i < noParts.length; i++) {
+ if (host[i] !== noParts[i])
+ return false
+ }
+ return true
+ })
+}
+
+module.exports.getProcessEnv = getProcessEnv
+
+function getProcessEnv (env) {
+ if (!env)
+ return
+
+ let value
+
+ if (Array.isArray(env)) {
+ for (const e of env) {
+ value = process.env[e] ||
+ process.env[e.toUpperCase()] ||
+ process.env[e.toLowerCase()]
+ if (typeof value !== 'undefined')
+ break
+ }
+ }
+
+ if (typeof env === 'string') {
+ value = process.env[env] ||
+ process.env[env.toUpperCase()] ||
+ process.env[env.toLowerCase()]
+ }
+
+ return value
+}
+
+module.exports.getProxyUri = getProxyUri
+function getProxyUri (uri, opts) {
+ const protocol = new url.URL(uri).protocol
+
+ const proxy = opts.proxy ||
+ (
+ protocol === 'https:' &&
+ getProcessEnv('https_proxy')
+ ) ||
+ (
+ protocol === 'http:' &&
+ getProcessEnv(['https_proxy', 'http_proxy', 'proxy'])
+ )
+ if (!proxy)
+ return null
+
+ const parsedProxy = (typeof proxy === 'string') ? new url.URL(proxy) : proxy
+
+ return !checkNoProxy(uri, opts) && parsedProxy
+}
+
+const getAuth = u =>
+ u.username && u.password ? `${u.username}:${u.password}`
+ : u.username ? u.username
+ : null
+
+const getPath = u => u.pathname + u.search + u.hash
+
+let HttpProxyAgent
+let HttpsProxyAgent
+let SocksProxyAgent
+module.exports.getProxy = getProxy
+function getProxy (proxyUrl, opts, isHttps) {
+ const popts = {
+ host: proxyUrl.hostname,
+ port: proxyUrl.port,
+ protocol: proxyUrl.protocol,
+ path: getPath(proxyUrl),
+ auth: getAuth(proxyUrl),
+ ca: opts.ca,
+ cert: opts.cert,
+ key: opts.key,
+ timeout: getAgentTimeout(opts.timeout),
+ localAddress: opts.localAddress,
+ maxSockets: getMaxSockets(opts.maxSockets),
+ rejectUnauthorized: opts.strictSSL,
+ }
+
+ if (proxyUrl.protocol === 'http:' || proxyUrl.protocol === 'https:') {
+ if (!isHttps) {
+ if (!HttpProxyAgent)
+ HttpProxyAgent = require('http-proxy-agent')
+
+ return new HttpProxyAgent(popts)
+ } else {
+ if (!HttpsProxyAgent)
+ HttpsProxyAgent = require('https-proxy-agent')
+
+ return new HttpsProxyAgent(popts)
+ }
+ } else if (proxyUrl.protocol.startsWith('socks')) {
+ if (!SocksProxyAgent)
+ SocksProxyAgent = require('socks-proxy-agent')
+
+ return new SocksProxyAgent(popts)
+ } else {
+ throw Object.assign(
+ new Error(`unsupported proxy protocol: '${proxyUrl.protocol}'`),
+ {
+ url: proxyUrl.href,
+ }
+ )
+ }
+}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/cache.js b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/cache.js
new file mode 100644
index 00000000000..234e3a41d05
--- /dev/null
+++ b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/cache.js
@@ -0,0 +1,260 @@
+'use strict'
+
+const fetch = require('minipass-fetch')
+const cacache = require('cacache')
+const ssri = require('ssri')
+const url = require('url')
+
+const Minipass = require('minipass')
+const MinipassFlush = require('minipass-flush')
+const MinipassCollect = require('minipass-collect')
+const MinipassPipeline = require('minipass-pipeline')
+
+const MAX_MEM_SIZE = 5 * 1024 * 1024 // 5MB
+
+// some headers should never be stored in the cache, either because
+// they're a security footgun to leave lying around, or because we
+// just don't need them taking up space.
+// set to undefined so they're omitted from the JSON.stringify
+const pruneHeaders = {
+ authorization: undefined,
+ 'npm-session': undefined,
+ 'set-cookie': undefined,
+ 'cf-ray': undefined,
+ 'cf-cache-status': undefined,
+ 'cf-request-id': undefined,
+ 'x-fetch-attempts': undefined,
+}
+
+function cacheKey (req) {
+ const parsed = new url.URL(req.url)
+ return `make-fetch-happen:request-cache:${
+ url.format({
+ protocol: parsed.protocol,
+ slashes: true,
+ port: parsed.port,
+ hostname: parsed.hostname,
+ pathname: parsed.pathname,
+ search: parsed.search,
+ })
+ }`
+}
+
+// This is a cacache-based implementation of the Cache standard,
+// using node-fetch.
+// docs: https://developer.mozilla.org/en-US/docs/Web/API/Cache
+//
+module.exports = class Cache {
+ constructor (path, opts) {
+ this._path = path
+ this.Promise = (opts && opts.Promise) || Promise
+ }
+
+ static get pruneHeaders () {
+ // exposed for testing, not modifiable
+ return { ...pruneHeaders }
+ }
+
+ // Returns a Promise that resolves to the response associated with the first
+ // matching request in the Cache object.
+ match (req, opts) {
+ const key = cacheKey(req)
+ return cacache.get.info(this._path, key).then(info => {
+ return info && cacache.get.hasContent(
+ this._path, info.integrity, opts
+ ).then(exists => exists && info)
+ }).then(info => {
+ if (info && info.metadata && matchDetails(req, {
+ url: info.metadata.url,
+ reqHeaders: new fetch.Headers(info.metadata.reqHeaders),
+ resHeaders: new fetch.Headers(info.metadata.resHeaders),
+ cacheIntegrity: info.integrity,
+ integrity: opts && opts.integrity,
+ })) {
+ const resHeaders = new fetch.Headers(info.metadata.resHeaders)
+ addCacheHeaders(resHeaders, this._path, key, info.integrity, info.time)
+ if (req.method === 'HEAD') {
+ return new fetch.Response(null, {
+ url: req.url,
+ headers: resHeaders,
+ status: 200,
+ })
+ }
+ const cachePath = this._path
+ // avoid opening cache file handles until a user actually tries to
+ // read from it.
+ const body = new Minipass()
+ const fitInMemory = info.size < MAX_MEM_SIZE
+ const removeOnResume = () => body.removeListener('resume', onResume)
+ const onResume =
+ opts.memoize !== false && fitInMemory
+ ? () => {
+ const c = cacache.get.stream.byDigest(cachePath, info.integrity, {
+ memoize: opts.memoize,
+ })
+ c.on('error', /* istanbul ignore next */ err => {
+ body.emit('error', err)
+ })
+ c.pipe(body)
+ }
+ : () => {
+ removeOnResume()
+ cacache.get.byDigest(cachePath, info.integrity, {
+ memoize: opts.memoize,
+ })
+ .then(data => body.end(data))
+ .catch(/* istanbul ignore next */ err => {
+ body.emit('error', err)
+ })
+ }
+ body.once('resume', onResume)
+ body.once('end', () => removeOnResume)
+ return this.Promise.resolve(new fetch.Response(body, {
+ url: req.url,
+ headers: resHeaders,
+ status: 200,
+ size: info.size,
+ }))
+ }
+ })
+ }
+
+ // Takes both a request and its response and adds it to the given cache.
+ put (req, response, opts) {
+ opts = opts || {}
+ const size = response.headers.get('content-length')
+ const fitInMemory = !!size && opts.memoize !== false && size < MAX_MEM_SIZE
+ const ckey = cacheKey(req)
+ const cacheOpts = {
+ algorithms: opts.algorithms,
+ metadata: {
+ url: req.url,
+ reqHeaders: {
+ ...req.headers.raw(),
+ ...pruneHeaders,
+ },
+ resHeaders: {
+ ...response.headers.raw(),
+ ...pruneHeaders,
+ },
+ },
+ size,
+ memoize: fitInMemory && opts.memoize,
+ }
+ if (req.method === 'HEAD' || response.status === 304) {
+ // Update metadata without writing
+ return cacache.get.info(this._path, ckey).then(info => {
+ // Providing these will bypass content write
+ cacheOpts.integrity = info.integrity
+ addCacheHeaders(
+ response.headers, this._path, ckey, info.integrity, info.time
+ )
+
+ return new MinipassPipeline(
+ cacache.get.stream.byDigest(this._path, info.integrity, cacheOpts),
+ cacache.put.stream(this._path, ckey, cacheOpts)
+ ).promise().then(() => {
+ return response
+ })
+ })
+ }
+ const oldBody = response.body
+ // the flush is the last thing in the pipeline. Build the pipeline
+ // back-to-front so we don't consume the data before we use it!
+ // We unshift in either a tee-stream to the cache put stream,
+ // or a collecter that dumps it to cache in one go, then the
+ // old body to bring in the data.
+ const newBody = new MinipassPipeline(new MinipassFlush({
+ flush () {
+ return cacheWritePromise
+ },
+ }))
+
+ let cacheWriteResolve, cacheWriteReject
+ const cacheWritePromise = new Promise((resolve, reject) => {
+ cacheWriteResolve = resolve
+ cacheWriteReject = reject
+ })
+ const cachePath = this._path
+
+ if (fitInMemory) {
+ const collecter = new MinipassCollect.PassThrough()
+ collecter.on('collect', data => {
+ cacache.put(
+ cachePath,
+ ckey,
+ data,
+ cacheOpts
+ ).then(cacheWriteResolve, cacheWriteReject)
+ })
+ newBody.unshift(collecter)
+ } else {
+ const tee = new Minipass()
+ const cacheStream = cacache.put.stream(
+ cachePath,
+ ckey,
+ cacheOpts
+ )
+ tee.pipe(cacheStream)
+ cacheStream.promise().then(cacheWriteResolve, cacheWriteReject)
+ newBody.unshift(tee)
+ }
+
+ newBody.unshift(oldBody)
+ return Promise.resolve(new fetch.Response(newBody, response))
+ }
+
+ // Finds the Cache entry whose key is the request, and if found, deletes the
+ // Cache entry and returns a Promise that resolves to true. If no Cache entry
+ // is found, it returns false.
+ 'delete' (req, opts) {
+ opts = opts || {}
+ if (typeof opts.memoize === 'object') {
+ if (opts.memoize.reset)
+ opts.memoize.reset()
+ else if (opts.memoize.clear)
+ opts.memoize.clear()
+ else {
+ Object.keys(opts.memoize).forEach(k => {
+ opts.memoize[k] = null
+ })
+ }
+ }
+ return cacache.rm.entry(
+ this._path,
+ cacheKey(req)
+ // TODO - true/false
+ ).then(() => false)
+ }
+}
+
+function matchDetails (req, cached) {
+ const reqUrl = new url.URL(req.url)
+ const cacheUrl = new url.URL(cached.url)
+ const vary = cached.resHeaders.get('Vary')
+ // https://tools.ietf.org/html/rfc7234#section-4.1
+ if (vary) {
+ if (vary.match(/\*/))
+ return false
+ else {
+ const fieldsMatch = vary.split(/\s*,\s*/).every(field => {
+ return cached.reqHeaders.get(field) === req.headers.get(field)
+ })
+ if (!fieldsMatch)
+ return false
+ }
+ }
+ if (cached.integrity)
+ return ssri.parse(cached.integrity).match(cached.cacheIntegrity)
+
+ reqUrl.hash = null
+ cacheUrl.hash = null
+ return url.format(reqUrl) === url.format(cacheUrl)
+}
+
+function addCacheHeaders (resHeaders, path, key, hash, time) {
+ resHeaders.set('X-Local-Cache', encodeURIComponent(path))
+ resHeaders.set('X-Local-Cache-Key', encodeURIComponent(key))
+ resHeaders.set('X-Local-Cache-Hash', encodeURIComponent(hash))
+ resHeaders.set('X-Local-Cache-Time', new Date(time).toUTCString())
+}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/index.js b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/index.js
new file mode 100644
index 00000000000..54f72049c1d
--- /dev/null
+++ b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/index.js
@@ -0,0 +1,457 @@
+'use strict'
+
+const url = require('url')
+const fetch = require('minipass-fetch')
+const pkg = require('./package.json')
+const retry = require('promise-retry')
+let ssri
+
+const Minipass = require('minipass')
+const MinipassPipeline = require('minipass-pipeline')
+const getAgent = require('./agent')
+const setWarning = require('./warning')
+
+const configureOptions = require('./utils/configure-options')
+const iterableToObject = require('./utils/iterable-to-object')
+const makePolicy = require('./utils/make-policy')
+
+const isURL = /^https?:/
+const USER_AGENT = `${pkg.name}/${pkg.version} (+https://npm.im/${pkg.name})`
+
+const RETRY_ERRORS = [
+ 'ECONNRESET', // remote socket closed on us
+ 'ECONNREFUSED', // remote host refused to open connection
+ 'EADDRINUSE', // failed to bind to a local port (proxy?)
+ 'ETIMEDOUT', // someone in the transaction is WAY TOO SLOW
+ // Known codes we do NOT retry on:
+ // ENOTFOUND (getaddrinfo failure. Either bad hostname, or offline)
+]
+
+const RETRY_TYPES = [
+ 'request-timeout',
+]
+
+// https://fetch.spec.whatwg.org/#http-network-or-cache-fetch
+module.exports = cachingFetch
+cachingFetch.defaults = function (_uri, _opts) {
+ const fetch = this
+ if (typeof _uri === 'object') {
+ _opts = _uri
+ _uri = null
+ }
+
+ function defaultedFetch (uri, opts) {
+ const finalOpts = Object.assign({}, _opts || {}, opts || {})
+ return fetch(uri || _uri, finalOpts)
+ }
+
+ defaultedFetch.defaults = fetch.defaults
+ defaultedFetch.delete = fetch.delete
+ return defaultedFetch
+}
+
+cachingFetch.delete = cacheDelete
+function cacheDelete (uri, opts) {
+ opts = configureOptions(opts)
+ if (opts.cacheManager) {
+ const req = new fetch.Request(uri, {
+ method: opts.method,
+ headers: opts.headers,
+ })
+ return opts.cacheManager.delete(req, opts)
+ }
+}
+
+function initializeSsri () {
+ if (!ssri)
+ ssri = require('ssri')
+}
+
+function cachingFetch (uri, _opts) {
+ const opts = configureOptions(_opts)
+
+ if (opts.integrity) {
+ initializeSsri()
+ // if verifying integrity, fetch must not decompress
+ opts.compress = false
+ }
+
+ const isCachable = (
+ (
+ opts.method === 'GET' ||
+ opts.method === 'HEAD'
+ ) &&
+ Boolean(opts.cacheManager) &&
+ opts.cache !== 'no-store' &&
+ opts.cache !== 'reload'
+ )
+
+ if (isCachable) {
+ const req = new fetch.Request(uri, {
+ method: opts.method,
+ headers: opts.headers,
+ })
+
+ return opts.cacheManager.match(req, opts).then(res => {
+ if (res) {
+ const warningCode = (res.headers.get('Warning') || '').match(/^\d+/)
+ if (warningCode && +warningCode >= 100 && +warningCode < 200) {
+ // https://tools.ietf.org/html/rfc7234#section-4.3.4
+ //
+ // If a stored response is selected for update, the cache MUST:
+ //
+ // * delete any Warning header fields in the stored response with
+ // warn-code 1xx (see Section 5.5);
+ //
+ // * retain any Warning header fields in the stored response with
+ // warn-code 2xx;
+ //
+ res.headers.delete('Warning')
+ }
+
+ if (opts.cache === 'default' && !isStale(req, res))
+ return res
+
+ if (opts.cache === 'default' || opts.cache === 'no-cache')
+ return conditionalFetch(req, res, opts)
+
+ if (opts.cache === 'force-cache' || opts.cache === 'only-if-cached') {
+ // 112 Disconnected operation
+ // SHOULD be included if the cache is intentionally disconnected from
+ // the rest of the network for a period of time.
+ // (https://tools.ietf.org/html/rfc2616#section-14.46)
+ setWarning(res, 112, 'Disconnected operation')
+ return res
+ }
+ }
+
+ if (!res && opts.cache === 'only-if-cached') {
+ const errorMsg = `request to ${
+ uri
+ } failed: cache mode is 'only-if-cached' but no cached response available.`
+
+ const err = new Error(errorMsg)
+ err.code = 'ENOTCACHED'
+ throw err
+ }
+
+ // Missing cache entry, or mode is default (if stale), reload, no-store
+ return remoteFetch(req.url, opts)
+ })
+ }
+ return remoteFetch(uri, opts)
+}
+
+// https://tools.ietf.org/html/rfc7234#section-4.2
+function isStale (req, res) {
+ const _req = {
+ url: req.url,
+ method: req.method,
+ headers: iterableToObject(req.headers),
+ }
+
+ const policy = makePolicy(req, res)
+
+ const responseTime = res.headers.get('x-local-cache-time') ||
+ /* istanbul ignore next - would be weird to get a 'stale'
+ * response that didn't come from cache with a cache time header */
+ (res.headers.get('date') || 0)
+
+ policy._responseTime = new Date(responseTime)
+
+ const bool = !policy.satisfiesWithoutRevalidation(_req)
+ const headers = policy.responseHeaders()
+ if (headers.warning && /^113\b/.test(headers.warning)) {
+ // Possible to pick up a rfc7234 warning at this point.
+ // This is kind of a weird place to stick this, should probably go
+ // in cachingFetch. But by putting it here, we save an extra
+ // CachePolicy object construction.
+ res.headers.append('warning', headers.warning)
+ }
+ return bool
+}
+
+function mustRevalidate (res) {
+ return (res.headers.get('cache-control') || '').match(/must-revalidate/i)
+}
+
+function conditionalFetch (req, cachedRes, opts) {
+ const _req = {
+ url: req.url,
+ method: req.method,
+ headers: Object.assign({}, opts.headers || {}),
+ }
+
+ const policy = makePolicy(req, cachedRes)
+ opts.headers = policy.revalidationHeaders(_req)
+
+ return remoteFetch(req.url, opts)
+ .then(condRes => {
+ const revalidatedPolicy = policy.revalidatedPolicy(_req, {
+ status: condRes.status,
+ headers: iterableToObject(condRes.headers),
+ })
+
+ if (condRes.status >= 500 && !mustRevalidate(cachedRes)) {
+ // 111 Revalidation failed
+ // MUST be included if a cache returns a stale response because an
+ // attempt to revalidate the response failed, due to an inability to
+ // reach the server.
+ // (https://tools.ietf.org/html/rfc2616#section-14.46)
+ setWarning(cachedRes, 111, 'Revalidation failed')
+ return cachedRes
+ }
+
+ if (condRes.status === 304) { // 304 Not Modified
+ // Create a synthetic response from the cached body and original req
+ const synthRes = new fetch.Response(cachedRes.body, condRes)
+ return opts.cacheManager.put(req, synthRes, opts)
+ .then(newRes => {
+ // Get the list first, because if we delete while iterating,
+ // it'll throw off the count and not make it through all
+ // of them.
+ const newHeaders = revalidatedPolicy.policy.responseHeaders()
+ const toDelete = [...newRes.headers.keys()]
+ .filter(k => !newHeaders[k])
+ for (const key of toDelete)
+ newRes.headers.delete(key)
+
+ for (const [key, val] of Object.entries(newHeaders))
+ newRes.headers.set(key, val)
+
+ return newRes
+ })
+ }
+
+ return condRes
+ })
+ .then(res => res)
+ .catch(err => {
+ if (mustRevalidate(cachedRes))
+ throw err
+ else {
+ // 111 Revalidation failed
+ // MUST be included if a cache returns a stale response because an
+ // attempt to revalidate the response failed, due to an inability to
+ // reach the server.
+ // (https://tools.ietf.org/html/rfc2616#section-14.46)
+ setWarning(cachedRes, 111, 'Revalidation failed')
+ // 199 Miscellaneous warning
+ // The warning text MAY include arbitrary information to be presented to
+ // a human user, or logged. A system receiving this warning MUST NOT take
+ // any automated action, besides presenting the warning to the user.
+ // (https://tools.ietf.org/html/rfc2616#section-14.46)
+ setWarning(
+ cachedRes,
+ 199,
+ `Miscellaneous Warning ${err.code}: ${err.message}`
+ )
+
+ return cachedRes
+ }
+ })
+}
+
+function remoteFetchHandleIntegrity (res, integrity) {
+ if (res.status !== 200)
+ return res // Error responses aren't subject to integrity checks.
+
+ const oldBod = res.body
+ const newBod = ssri.integrityStream({
+ integrity,
+ })
+ return new fetch.Response(new MinipassPipeline(oldBod, newBod), res)
+}
+
+function remoteFetch (uri, opts) {
+ const agent = getAgent(uri, opts)
+ const headers = opts.headers instanceof fetch.Headers
+ ? opts.headers
+ : new fetch.Headers(opts.headers)
+ if (!headers.get('connection'))
+ headers.set('connection', agent ? 'keep-alive' : 'close')
+
+ if (!headers.get('user-agent'))
+ headers.set('user-agent', USER_AGENT)
+
+ const reqOpts = {
+ agent,
+ body: opts.body,
+ compress: opts.compress,
+ follow: opts.follow,
+ headers,
+ method: opts.method,
+ redirect: 'manual',
+ size: opts.size,
+ counter: opts.counter,
+ timeout: opts.timeout,
+ ca: opts.ca,
+ cert: opts.cert,
+ key: opts.key,
+ rejectUnauthorized: opts.strictSSL,
+ }
+
+ return retry(
+ (retryHandler, attemptNum) => {
+ const req = new fetch.Request(uri, reqOpts)
+ return fetch(req)
+ .then((res) => {
+ if (opts.integrity)
+ res = remoteFetchHandleIntegrity(res, opts.integrity)
+
+ res.headers.set('x-fetch-attempts', attemptNum)
+
+ const isStream = Minipass.isStream(req.body)
+
+ if (opts.cacheManager) {
+ const isMethodGetHead = (
+ req.method === 'GET' ||
+ req.method === 'HEAD'
+ )
+
+ const isCachable = (
+ opts.cache !== 'no-store' &&
+ isMethodGetHead &&
+ makePolicy(req, res).storable() &&
+ res.status === 200 // No other statuses should be stored!
+ )
+
+ if (isCachable)
+ return opts.cacheManager.put(req, res, opts)
+
+ if (!isMethodGetHead) {
+ return opts.cacheManager.delete(req).then(() => {
+ if (res.status >= 500 && req.method !== 'POST' && !isStream) {
+ if (typeof opts.onRetry === 'function')
+ opts.onRetry(res)
+
+ return retryHandler(res)
+ }
+
+ return res
+ })
+ }
+ }
+
+ const isRetriable = (
+ req.method !== 'POST' &&
+ !isStream &&
+ (
+ res.status === 408 || // Request Timeout
+ res.status === 420 || // Enhance Your Calm (usually Twitter rate-limit)
+ res.status === 429 || // Too Many Requests ("standard" rate-limiting)
+ res.status >= 500 // Assume server errors are momentary hiccups
+ )
+ )
+
+ if (isRetriable) {
+ if (typeof opts.onRetry === 'function')
+ opts.onRetry(res)
+
+ return retryHandler(res)
+ }
+
+ if (!fetch.isRedirect(res.status))
+ return res
+
+ if (opts.redirect === 'manual')
+ return res
+
+ // if (!fetch.isRedirect(res.status) || opts.redirect === 'manual') {
+ // return res
+ // }
+
+ // handle redirects - matches behavior of fetch: https://github.com/bitinn/node-fetch
+ if (opts.redirect === 'error') {
+ const err = new fetch.FetchError(`redirect mode is set to error: ${uri}`, 'no-redirect', { code: 'ENOREDIRECT' })
+ throw err
+ }
+
+ if (!res.headers.get('location')) {
+ const err = new fetch.FetchError(`redirect location header missing at: ${uri}`, 'no-location', { code: 'EINVALIDREDIRECT' })
+ throw err
+ }
+
+ if (req.counter >= req.follow) {
+ const err = new fetch.FetchError(`maximum redirect reached at: ${uri}`, 'max-redirect', { code: 'EMAXREDIRECT' })
+ throw err
+ }
+
+ const resolvedUrlParsed = new url.URL(res.headers.get('location'), req.url)
+ const resolvedUrl = url.format(resolvedUrlParsed)
+ const redirectURL = (isURL.test(res.headers.get('location')))
+ ? new url.URL(res.headers.get('location'))
+ : resolvedUrlParsed
+
+ // Comment below is used under the following license:
+ // Copyright (c) 2010-2012 Mikeal Rogers
+ // Licensed under the Apache License, Version 2.0 (the "License");
+ // you may not use this file except in compliance with the License.
+ // You may obtain a copy of the License at
+ // http://www.apache.org/licenses/LICENSE-2.0
+ // Unless required by applicable law or agreed to in writing,
+ // software distributed under the License is distributed on an "AS
+ // IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ // express or implied. See the License for the specific language
+ // governing permissions and limitations under the License.
+
+ // Remove authorization if changing hostnames (but not if just
+ // changing ports or protocols). This matches the behavior of request:
+ // https://github.com/request/request/blob/b12a6245/lib/redirect.js#L134-L138
+ if (new url.URL(req.url).hostname !== redirectURL.hostname)
+ req.headers.delete('authorization')
+
+ // for POST request with 301/302 response, or any request with 303 response,
+ // use GET when following redirect
+ if (
+ res.status === 303 ||
+ (
+ req.method === 'POST' &&
+ (
+ res.status === 301 ||
+ res.status === 302
+ )
+ )
+ ) {
+ opts.method = 'GET'
+ opts.body = null
+ req.headers.delete('content-length')
+ }
+
+ opts.headers = {}
+ req.headers.forEach((value, name) => {
+ opts.headers[name] = value
+ })
+
+ opts.counter = ++req.counter
+ return cachingFetch(resolvedUrl, opts)
+ })
+ .catch(err => {
+ const code = (err.code === 'EPROMISERETRY')
+ ? err.retried.code
+ : err.code
+
+ const isRetryError = (
+ RETRY_ERRORS.indexOf(code) === -1 &&
+ RETRY_TYPES.indexOf(err.type) === -1
+ )
+
+ if (req.method === 'POST' || isRetryError)
+ throw err
+
+ if (typeof opts.onRetry === 'function')
+ opts.onRetry(err)
+
+ return retryHandler(err)
+ })
+ },
+ opts.retry
+ ).catch(err => {
+ if (err.status >= 400 && err.type !== 'system') {
+ // this is an HTTP response "error" that we care about
+ return err
+ }
+
+ throw err
+ })
+}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/package.json b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/package.json
new file mode 100644
index 00000000000..7e854dcdf08
--- /dev/null
+++ b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/package.json
@@ -0,0 +1,72 @@
+{
+ "name": "make-fetch-happen",
+ "version": "8.0.14",
+ "description": "Opinionated, caching, retrying fetch client",
+ "main": "index.js",
+ "files": [
+ "*.js",
+ "lib",
+ "utils"
+ ],
+ "scripts": {
+ "preversion": "npm t",
+ "postversion": "npm publish",
+ "prepublishOnly": "git push --follow-tags",
+ "test": "tap test/*.js",
+ "posttest": "npm run lint",
+ "eslint": "eslint",
+ "lint": "npm run eslint -- *.js utils test",
+ "lintfix": "npm run lint -- --fix"
+ },
+ "repository": "https://github.com/npm/make-fetch-happen",
+ "keywords": [
+ "http",
+ "request",
+ "fetch",
+ "mean girls",
+ "caching",
+ "cache",
+ "subresource integrity"
+ ],
+ "author": {
+ "name": "Kat Marchán",
+ "email": "kzm@zkat.tech",
+ "twitter": "maybekatz"
+ },
+ "license": "ISC",
+ "dependencies": {
+ "agentkeepalive": "^4.1.3",
+ "cacache": "^15.0.5",
+ "http-cache-semantics": "^4.1.0",
+ "http-proxy-agent": "^4.0.1",
+ "https-proxy-agent": "^5.0.0",
+ "is-lambda": "^1.0.1",
+ "lru-cache": "^6.0.0",
+ "minipass": "^3.1.3",
+ "minipass-collect": "^1.0.2",
+ "minipass-fetch": "^1.3.2",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.4",
+ "promise-retry": "^2.0.1",
+ "socks-proxy-agent": "^5.0.0",
+ "ssri": "^8.0.0"
+ },
+ "devDependencies": {
+ "eslint": "^7.14.0",
+ "eslint-plugin-import": "^2.22.1",
+ "eslint-plugin-node": "^11.1.0",
+ "eslint-plugin-promise": "^4.2.1",
+ "eslint-plugin-standard": "^5.0.0",
+ "mkdirp": "^1.0.4",
+ "nock": "^11.9.1",
+ "npmlog": "^4.1.2",
+ "require-inject": "^1.4.2",
+ "rimraf": "^2.7.1",
+ "safe-buffer": "^5.2.1",
+ "standard-version": "^7.1.0",
+ "tap": "^14.11.0"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/utils/configure-options.js b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/utils/configure-options.js
new file mode 100644
index 00000000000..75ea5d15ecd
--- /dev/null
+++ b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/utils/configure-options.js
@@ -0,0 +1,32 @@
+'use strict'
+
+const initializeCache = require('./initialize-cache')
+
+module.exports = function configureOptions (_opts) {
+ const opts = Object.assign({}, _opts || {})
+ opts.method = (opts.method || 'GET').toUpperCase()
+
+ if (!opts.retry) {
+ // opts.retry was falsy; set default
+ opts.retry = { retries: 0 }
+ } else {
+ if (typeof opts.retry !== 'object') {
+ // Shorthand
+ if (typeof opts.retry === 'number')
+ opts.retry = { retries: opts.retry }
+
+ if (typeof opts.retry === 'string') {
+ const value = parseInt(opts.retry, 10)
+ opts.retry = (value) ? { retries: value } : { retries: 0 }
+ }
+ } else {
+ // Set default retries
+ opts.retry = Object.assign({}, { retries: 0 }, opts.retry)
+ }
+ }
+
+ if (opts.cacheManager)
+ initializeCache(opts)
+
+ return opts
+}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/utils/initialize-cache.js b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/utils/initialize-cache.js
new file mode 100644
index 00000000000..9f96bf56226
--- /dev/null
+++ b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/utils/initialize-cache.js
@@ -0,0 +1,26 @@
+'use strict'
+
+const isHeaderConditional = require('./is-header-conditional')
+// Default cacache-based cache
+const Cache = require('../cache')
+
+module.exports = function initializeCache (opts) {
+ /**
+ * NOTE: `opts.cacheManager` is the path to cache
+ * We're making the assumption that if `opts.cacheManager` *isn't* a string,
+ * it's a cache object
+ */
+ if (typeof opts.cacheManager === 'string') {
+ // Need to make a cache object
+ opts.cacheManager = new Cache(opts.cacheManager, opts)
+ }
+
+ opts.cache = opts.cache || 'default'
+
+ if (opts.cache === 'default' && isHeaderConditional(opts.headers)) {
+ // If header list contains `If-Modified-Since`, `If-None-Match`,
+ // `If-Unmodified-Since`, `If-Match`, or `If-Range`, fetch will set cache
+ // mode to "no-store" if it is "default".
+ opts.cache = 'no-store'
+ }
+}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/utils/is-header-conditional.js b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/utils/is-header-conditional.js
new file mode 100644
index 00000000000..5081e0ce127
--- /dev/null
+++ b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/utils/is-header-conditional.js
@@ -0,0 +1,17 @@
+'use strict'
+
+module.exports = function isHeaderConditional (headers) {
+ if (!headers || typeof headers !== 'object')
+ return false
+
+ const modifiers = [
+ 'if-modified-since',
+ 'if-none-match',
+ 'if-unmodified-since',
+ 'if-match',
+ 'if-range',
+ ]
+
+ return Object.keys(headers)
+ .some(h => modifiers.indexOf(h.toLowerCase()) !== -1)
+}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/utils/iterable-to-object.js b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/utils/iterable-to-object.js
new file mode 100644
index 00000000000..1fe5ba65448
--- /dev/null
+++ b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/utils/iterable-to-object.js
@@ -0,0 +1,9 @@
+'use strict'
+
+module.exports = function iterableToObject (iter) {
+ const obj = {}
+ for (const k of iter.keys())
+ obj[k] = iter.get(k)
+
+ return obj
+}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/utils/make-policy.js b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/utils/make-policy.js
new file mode 100644
index 00000000000..5e884847dd8
--- /dev/null
+++ b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/utils/make-policy.js
@@ -0,0 +1,19 @@
+'use strict'
+
+const CachePolicy = require('http-cache-semantics')
+
+const iterableToObject = require('./iterable-to-object')
+
+module.exports = function makePolicy (req, res) {
+ const _req = {
+ url: req.url,
+ method: req.method,
+ headers: iterableToObject(req.headers),
+ }
+ const _res = {
+ status: res.status,
+ headers: iterableToObject(res.headers),
+ }
+
+ return new CachePolicy(_req, _res, { shared: false })
+}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/warning.js b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/warning.js
new file mode 100644
index 00000000000..2b96024714e
--- /dev/null
+++ b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/warning.js
@@ -0,0 +1,24 @@
+const url = require('url')
+
+module.exports = setWarning
+
+function setWarning (reqOrRes, code, message, replace) {
+ // Warning = "Warning" ":" 1#warning-value
+ // warning-value = warn-code SP warn-agent SP warn-text [SP warn-date]
+ // warn-code = 3DIGIT
+ // warn-agent = ( host [ ":" port ] ) | pseudonym
+ // ; the name or pseudonym of the server adding
+ // ; the Warning header, for use in debugging
+ // warn-text = quoted-string
+ // warn-date = <"> HTTP-date <">
+ // (https://tools.ietf.org/html/rfc2616#section-14.46)
+ const host = new url.URL(reqOrRes.url).host
+ const jsonMessage = JSON.stringify(message)
+ const jsonDate = JSON.stringify(new Date().toUTCString())
+ const header = replace ? 'set' : 'append'
+
+ reqOrRes.headers[header](
+ 'Warning',
+ `${code} ${host} ${jsonMessage} ${jsonDate}`
+ )
+}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/socks-proxy-agent/dist/agent.d.ts b/deps/npm/node_modules/node-gyp/node_modules/socks-proxy-agent/dist/agent.d.ts
new file mode 100644
index 00000000000..52341a1b55d
--- /dev/null
+++ b/deps/npm/node_modules/node-gyp/node_modules/socks-proxy-agent/dist/agent.d.ts
@@ -0,0 +1,21 @@
+/// <reference types="node" />
+import net from 'net';
+import { Agent, ClientRequest, RequestOptions } from 'agent-base';
+import { SocksProxyAgentOptions } from '.';
+/**
+ * The `SocksProxyAgent`.
+ *
+ * @api public
+ */
+export default class SocksProxyAgent extends Agent {
+ private lookup;
+ private proxy;
+ constructor(_opts: string | SocksProxyAgentOptions);
+ /**
+ * Initiates a SOCKS connection to the specified SOCKS proxy server,
+ * which in turn connects to the specified remote host and port.
+ *
+ * @api protected
+ */
+ callback(req: ClientRequest, opts: RequestOptions): Promise<net.Socket>;
+}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/socks-proxy-agent/dist/agent.js b/deps/npm/node_modules/node-gyp/node_modules/socks-proxy-agent/dist/agent.js
new file mode 100644
index 00000000000..7af0d62f80d
--- /dev/null
+++ b/deps/npm/node_modules/node-gyp/node_modules/socks-proxy-agent/dist/agent.js
@@ -0,0 +1,180 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const dns_1 = __importDefault(require("dns"));
+const tls_1 = __importDefault(require("tls"));
+const url_1 = __importDefault(require("url"));
+const debug_1 = __importDefault(require("debug"));
+const agent_base_1 = require("agent-base");
+const socks_1 = require("socks");
+const debug = debug_1.default('socks-proxy-agent');
+function dnsLookup(host) {
+ return new Promise((resolve, reject) => {
+ dns_1.default.lookup(host, (err, res) => {
+ if (err) {
+ reject(err);
+ }
+ else {
+ resolve(res);
+ }
+ });
+ });
+}
+function parseSocksProxy(opts) {
+ let port = 0;
+ let lookup = false;
+ let type = 5;
+ // Prefer `hostname` over `host`, because of `url.parse()`
+ const host = opts.hostname || opts.host;
+ if (!host) {
+ throw new TypeError('No "host"');
+ }
+ if (typeof opts.port === 'number') {
+ port = opts.port;
+ }
+ else if (typeof opts.port === 'string') {
+ port = parseInt(opts.port, 10);
+ }
+ // From RFC 1928, Section 3: https://tools.ietf.org/html/rfc1928#section-3
+ // "The SOCKS service is conventionally located on TCP port 1080"
+ if (!port) {
+ port = 1080;
+ }
+ // figure out if we want socks v4 or v5, based on the "protocol" used.
+ // Defaults to 5.
+ if (opts.protocol) {
+ switch (opts.protocol.replace(':', '')) {
+ case 'socks4':
+ lookup = true;
+ // pass through
+ case 'socks4a':
+ type = 4;
+ break;
+ case 'socks5':
+ lookup = true;
+ // pass through
+ case 'socks': // no version specified, default to 5h
+ case 'socks5h':
+ type = 5;
+ break;
+ default:
+ throw new TypeError(`A "socks" protocol must be specified! Got: ${opts.protocol}`);
+ }
+ }
+ if (typeof opts.type !== 'undefined') {
+ if (opts.type === 4 || opts.type === 5) {
+ type = opts.type;
+ }
+ else {
+ throw new TypeError(`"type" must be 4 or 5, got: ${opts.type}`);
+ }
+ }
+ const proxy = {
+ host,
+ port,
+ type
+ };
+ let userId = opts.userId || opts.username;
+ let password = opts.password;
+ if (opts.auth) {
+ const auth = opts.auth.split(':');
+ userId = auth[0];
+ password = auth[1];
+ }
+ if (userId) {
+ Object.defineProperty(proxy, 'userId', {
+ value: userId,
+ enumerable: false
+ });
+ }
+ if (password) {
+ Object.defineProperty(proxy, 'password', {
+ value: password,
+ enumerable: false
+ });
+ }
+ return { lookup, proxy };
+}
+/**
+ * The `SocksProxyAgent`.
+ *
+ * @api public
+ */
+class SocksProxyAgent extends agent_base_1.Agent {
+ constructor(_opts) {
+ let opts;
+ if (typeof _opts === 'string') {
+ opts = url_1.default.parse(_opts);
+ }
+ else {
+ opts = _opts;
+ }
+ if (!opts) {
+ throw new TypeError('a SOCKS proxy server `host` and `port` must be specified!');
+ }
+ super(opts);
+ const parsedProxy = parseSocksProxy(opts);
+ this.lookup = parsedProxy.lookup;
+ this.proxy = parsedProxy.proxy;
+ }
+ /**
+ * Initiates a SOCKS connection to the specified SOCKS proxy server,
+ * which in turn connects to the specified remote host and port.
+ *
+ * @api protected
+ */
+ callback(req, opts) {
+ return __awaiter(this, void 0, void 0, function* () {
+ const { lookup, proxy } = this;
+ let { host, port, timeout } = opts;
+ if (!host) {
+ throw new Error('No `host` defined!');
+ }
+ if (lookup) {
+ // Client-side DNS resolution for "4" and "5" socks proxy versions.
+ host = yield dnsLookup(host);
+ }
+ const socksOpts = {
+ proxy,
+ destination: { host, port },
+ command: 'connect',
+ timeout
+ };
+ debug('Creating socks proxy connection: %o', socksOpts);
+ const { socket } = yield socks_1.SocksClient.createConnection(socksOpts);
+ debug('Successfully created socks proxy connection');
+ if (opts.secureEndpoint) {
+ // The proxy is connecting to a TLS server, so upgrade
+ // this socket connection to a TLS connection.
+ debug('Upgrading socket connection to TLS');
+ const servername = opts.servername || host;
+ return tls_1.default.connect(Object.assign(Object.assign({}, omit(opts, 'host', 'hostname', 'path', 'port')), { socket,
+ servername }));
+ }
+ return socket;
+ });
+ }
+}
+exports.default = SocksProxyAgent;
+function omit(obj, ...keys) {
+ const ret = {};
+ let key;
+ for (key in obj) {
+ if (!keys.includes(key)) {
+ ret[key] = obj[key];
+ }
+ }
+ return ret;
+}
+//# sourceMappingURL=agent.js.map \ No newline at end of file
diff --git a/deps/npm/node_modules/node-gyp/node_modules/socks-proxy-agent/dist/agent.js.map b/deps/npm/node_modules/node-gyp/node_modules/socks-proxy-agent/dist/agent.js.map
new file mode 100644
index 00000000000..f36e1f8bba1
--- /dev/null
+++ b/deps/npm/node_modules/node-gyp/node_modules/socks-proxy-agent/dist/agent.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"} \ No newline at end of file
diff --git a/deps/npm/node_modules/node-gyp/node_modules/socks-proxy-agent/dist/index.d.ts b/deps/npm/node_modules/node-gyp/node_modules/socks-proxy-agent/dist/index.d.ts
new file mode 100644
index 00000000000..8fe0e58884a
--- /dev/null
+++ b/deps/npm/node_modules/node-gyp/node_modules/socks-proxy-agent/dist/index.d.ts
@@ -0,0 +1,19 @@
+/// <reference types="node" />
+import { Url } from 'url';
+import { SocksProxy } from 'socks';
+import { AgentOptions } from 'agent-base';
+import _SocksProxyAgent from './agent';
+declare function createSocksProxyAgent(opts: string | createSocksProxyAgent.SocksProxyAgentOptions): _SocksProxyAgent;
+declare namespace createSocksProxyAgent {
+ interface BaseSocksProxyAgentOptions {
+ host?: string | null;
+ port?: string | number | null;
+ username?: string | null;
+ }
+ export interface SocksProxyAgentOptions extends AgentOptions, BaseSocksProxyAgentOptions, Partial<Omit<Url & SocksProxy, keyof BaseSocksProxyAgentOptions>> {
+ }
+ export type SocksProxyAgent = _SocksProxyAgent;
+ export const SocksProxyAgent: typeof _SocksProxyAgent;
+ export {};
+}
+export = createSocksProxyAgent;
diff --git a/deps/npm/node_modules/node-gyp/node_modules/socks-proxy-agent/dist/index.js b/deps/npm/node_modules/node-gyp/node_modules/socks-proxy-agent/dist/index.js
new file mode 100644
index 00000000000..dd1e49a77e4
--- /dev/null
+++ b/deps/npm/node_modules/node-gyp/node_modules/socks-proxy-agent/dist/index.js
@@ -0,0 +1,14 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+const agent_1 = __importDefault(require("./agent"));
+function createSocksProxyAgent(opts) {
+ return new agent_1.default(opts);
+}
+(function (createSocksProxyAgent) {
+ createSocksProxyAgent.SocksProxyAgent = agent_1.default;
+ createSocksProxyAgent.prototype = agent_1.default.prototype;
+})(createSocksProxyAgent || (createSocksProxyAgent = {}));
+module.exports = createSocksProxyAgent;
+//# sourceMappingURL=index.js.map \ No newline at end of file
diff --git a/deps/npm/node_modules/node-gyp/node_modules/socks-proxy-agent/dist/index.js.map b/deps/npm/node_modules/node-gyp/node_modules/socks-proxy-agent/dist/index.js.map
new file mode 100644
index 00000000000..56fa84868a1
--- /dev/null
+++ b/deps/npm/node_modules/node-gyp/node_modules/socks-proxy-agent/dist/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAGA,oDAAuC;AAEvC,SAAS,qBAAqB,CAC7B,IAA2D;IAE3D,OAAO,IAAI,eAAgB,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAED,WAAU,qBAAqB;IAajB,qCAAe,GAAG,eAAgB,CAAC;IAEhD,qBAAqB,CAAC,SAAS,GAAG,eAAgB,CAAC,SAAS,CAAC;AAC9D,CAAC,EAhBS,qBAAqB,KAArB,qBAAqB,QAgB9B;AAED,iBAAS,qBAAqB,CAAC"} \ No newline at end of file
diff --git a/deps/npm/node_modules/node-gyp/node_modules/socks-proxy-agent/package.json b/deps/npm/node_modules/node-gyp/node_modules/socks-proxy-agent/package.json
new file mode 100644
index 00000000000..bdb8367fbc5
--- /dev/null
+++ b/deps/npm/node_modules/node-gyp/node_modules/socks-proxy-agent/package.json
@@ -0,0 +1,64 @@
+{
+ "name": "socks-proxy-agent",
+ "version": "5.0.1",
+ "description": "A SOCKS proxy `http.Agent` implementation for HTTP and HTTPS",
+ "main": "dist/index",
+ "typings": "dist/index",
+ "files": [
+ "dist"
+ ],
+ "scripts": {
+ "prebuild": "rimraf dist",
+ "build": "tsc",
+ "test": "mocha --reporter spec",
+ "test-lint": "eslint src --ext .js,.ts",
+ "prepublishOnly": "npm run build"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/TooTallNate/node-socks-proxy-agent.git"
+ },
+ "keywords": [
+ "socks",
+ "socks4",
+ "socks4a",
+ "socks5",
+ "socks5h",
+ "proxy",
+ "http",
+ "https",
+ "agent"
+ ],
+ "author": "Nathan Rajlich <nathan@tootallnate.net> (http://n8.io/)",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/TooTallNate/node-socks-proxy-agent/issues"
+ },
+ "dependencies": {
+ "agent-base": "^6.0.2",
+ "debug": "4",
+ "socks": "^2.3.3"
+ },
+ "devDependencies": {
+ "@types/debug": "4",
+ "@types/node": "^12.12.11",
+ "@typescript-eslint/eslint-plugin": "1.6.0",
+ "@typescript-eslint/parser": "1.1.0",
+ "eslint": "5.16.0",
+ "eslint-config-airbnb": "17.1.0",
+ "eslint-config-prettier": "4.1.0",
+ "eslint-import-resolver-typescript": "1.1.1",
+ "eslint-plugin-import": "2.16.0",
+ "eslint-plugin-jsx-a11y": "6.2.1",
+ "eslint-plugin-react": "7.12.4",
+ "mocha": "^6.2.2",
+ "proxy": "1",
+ "raw-body": "^2.3.2",
+ "rimraf": "^3.0.0",
+ "socksv5": "TooTallNate/socksv5#fix/dstSock-close-event",
+ "typescript": "^3.5.3"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+}
diff --git a/deps/npm/node_modules/node-gyp/package.json b/deps/npm/node_modules/node-gyp/package.json
index 8e256f01702..ec5c3c5529a 100644
--- a/deps/npm/node_modules/node-gyp/package.json
+++ b/deps/npm/node_modules/node-gyp/package.json
@@ -11,7 +11,7 @@
"bindings",
"gyp"
],
- "version": "7.1.2",
+ "version": "8.2.0",
"installVersion": 9,
"author": "Nathan Rajlich <nathan@tootallnate.net> (http://tootallnate.net)",
"repository": {
@@ -24,13 +24,13 @@
"dependencies": {
"env-paths": "^2.2.0",
"glob": "^7.1.4",
- "graceful-fs": "^4.2.3",
+ "graceful-fs": "^4.2.6",
+ "make-fetch-happen": "^8.0.14",
"nopt": "^5.0.0",
"npmlog": "^4.1.2",
- "request": "^2.88.2",
"rimraf": "^3.0.2",
- "semver": "^7.3.2",
- "tar": "^6.0.2",
+ "semver": "^7.3.5",
+ "tar": "^6.1.2",
"which": "^2.0.2"
},
"engines": {
diff --git a/deps/npm/node_modules/node-gyp/test/fixtures/test-charmap.py b/deps/npm/node_modules/node-gyp/test/fixtures/test-charmap.py
index b338f915bc3..63aa77bb482 100644
--- a/deps/npm/node_modules/node-gyp/test/fixtures/test-charmap.py
+++ b/deps/npm/node_modules/node-gyp/test/fixtures/test-charmap.py
@@ -1,30 +1,31 @@
-from __future__ import print_function
import sys
import locale
try:
- reload(sys)
+ reload(sys)
except NameError: # Python 3
- pass
+ pass
+
def main():
- encoding = locale.getdefaultlocale()[1]
- if not encoding:
- return False
+ encoding = locale.getdefaultlocale()[1]
+ if not encoding:
+ return False
- try:
- sys.setdefaultencoding(encoding)
- except AttributeError: # Python 3
- pass
+ try:
+ sys.setdefaultencoding(encoding)
+ except AttributeError: # Python 3
+ pass
+
+ textmap = {
+ "cp936": "\u4e2d\u6587",
+ "cp1252": "Lat\u012Bna",
+ "cp932": "\u306b\u307b\u3093\u3054",
+ }
+ if encoding in textmap:
+ print(textmap[encoding])
+ return True
- textmap = {
- 'cp936': u'\u4e2d\u6587',
- 'cp1252': u'Lat\u012Bna',
- 'cp932': u'\u306b\u307b\u3093\u3054'
- }
- if encoding in textmap:
- print(textmap[encoding])
- return True
-if __name__ == '__main__':
- print(main())
+if __name__ == "__main__":
+ print(main())
diff --git a/deps/npm/node_modules/node-gyp/test/test-download.js b/deps/npm/node_modules/node-gyp/test/test-download.js
index fe373e3280c..71a3c0d092d 100644
--- a/deps/npm/node_modules/node-gyp/test/test-download.js
+++ b/deps/npm/node_modules/node-gyp/test/test-download.js
@@ -1,8 +1,9 @@
'use strict'
-const test = require('tap').test
+const { test } = require('tap')
const fs = require('fs')
const path = require('path')
+const util = require('util')
const http = require('http')
const https = require('https')
const install = require('../lib/install')
@@ -14,191 +15,142 @@ const log = require('npmlog')
log.level = 'warn'
-test('download over http', function (t) {
+test('download over http', async (t) => {
t.plan(2)
- var server = http.createServer(function (req, res) {
- t.strictEqual(req.headers['user-agent'],
- 'node-gyp v42 (node ' + process.version + ')')
+ const server = http.createServer((req, res) => {
+ t.strictEqual(req.headers['user-agent'], `node-gyp v42 (node ${process.version})`)
res.end('ok')
- server.close()
})
- var host = 'localhost'
- server.listen(0, host, function () {
- var port = this.address().port
- var gyp = {
- opts: {},
- version: '42'
- }
- var url = 'http://' + host + ':' + port
- var req = install.test.download(gyp, {}, url)
- req.on('response', function (res) {
- var body = ''
- res.setEncoding('utf8')
- res.on('data', function (data) {
- body += data
- })
- res.on('end', function () {
- t.strictEqual(body, 'ok')
- })
- })
- })
+ t.tearDown(() => new Promise((resolve) => server.close(resolve)))
+
+ const host = 'localhost'
+ await new Promise((resolve) => server.listen(0, host, resolve))
+ const { port } = server.address()
+ const gyp = {
+ opts: {},
+ version: '42'
+ }
+ const url = `http://${host}:${port}`
+ const res = await install.test.download(gyp, url)
+ t.strictEqual(await res.text(), 'ok')
})
-test('download over https with custom ca', function (t) {
+test('download over https with custom ca', async (t) => {
t.plan(3)
- var cert = fs.readFileSync(path.join(__dirname, 'fixtures/server.crt'), 'utf8')
- var key = fs.readFileSync(path.join(__dirname, 'fixtures/server.key'), 'utf8')
+ const cafile = path.join(__dirname, '/fixtures/ca.crt')
+ const [cert, key, ca] = await Promise.all([
+ fs.promises.readFile(path.join(__dirname, 'fixtures/server.crt'), 'utf8'),
+ fs.promises.readFile(path.join(__dirname, 'fixtures/server.key'), 'utf8'),
+ install.test.readCAFile(cafile)
+ ])
- var cafile = path.join(__dirname, '/fixtures/ca.crt')
- var ca = install.test.readCAFile(cafile)
t.strictEqual(ca.length, 1)
- var options = { ca: ca, cert: cert, key: key }
- var server = https.createServer(options, function (req, res) {
- t.strictEqual(req.headers['user-agent'],
- 'node-gyp v42 (node ' + process.version + ')')
+ const options = { ca: ca, cert: cert, key: key }
+ const server = https.createServer(options, (req, res) => {
+ t.strictEqual(req.headers['user-agent'], `node-gyp v42 (node ${process.version})`)
res.end('ok')
- server.close()
})
- server.on('clientError', function (err) {
- throw err
- })
+ t.tearDown(() => new Promise((resolve) => server.close(resolve)))
- var host = 'localhost'
- server.listen(8000, host, function () {
- var port = this.address().port
- var gyp = {
- opts: { cafile: cafile },
- version: '42'
- }
- var url = 'https://' + host + ':' + port
- var req = install.test.download(gyp, {}, url)
- req.on('response', function (res) {
- var body = ''
- res.setEncoding('utf8')
- res.on('data', function (data) {
- body += data
- })
- res.on('end', function () {
- t.strictEqual(body, 'ok')
- })
- })
- })
+ server.on('clientError', (err) => { throw err })
+
+ const host = 'localhost'
+ await new Promise((resolve) => server.listen(0, host, resolve))
+ const { port } = server.address()
+ const gyp = {
+ opts: { cafile },
+ version: '42'
+ }
+ const url = `https://${host}:${port}`
+ const res = await install.test.download(gyp, url)
+ t.strictEqual(await res.text(), 'ok')
})
-test('download over http with proxy', function (t) {
+test('download over http with proxy', async (t) => {
t.plan(2)
- var server = http.createServer(function (req, res) {
- t.strictEqual(req.headers['user-agent'],
- 'node-gyp v42 (node ' + process.version + ')')
+ const server = http.createServer((_, res) => {
res.end('ok')
- pserver.close(function () {
- server.close()
- })
})
- var pserver = http.createServer(function (req, res) {
- t.strictEqual(req.headers['user-agent'],
- 'node-gyp v42 (node ' + process.version + ')')
+ const pserver = http.createServer((req, res) => {
+ t.strictEqual(req.headers['user-agent'], `node-gyp v42 (node ${process.version})`)
res.end('proxy ok')
- server.close(function () {
- pserver.close()
- })
})
- var host = 'localhost'
- server.listen(0, host, function () {
- var port = this.address().port
- pserver.listen(port + 1, host, function () {
- var gyp = {
- opts: {
- proxy: 'http://' + host + ':' + (port + 1)
- },
- version: '42'
- }
- var url = 'http://' + host + ':' + port
- var req = install.test.download(gyp, {}, url)
- req.on('response', function (res) {
- var body = ''
- res.setEncoding('utf8')
- res.on('data', function (data) {
- body += data
- })
- res.on('end', function () {
- t.strictEqual(body, 'proxy ok')
- })
- })
- })
- })
+ t.tearDown(() => Promise.all([
+ new Promise((resolve) => server.close(resolve)),
+ new Promise((resolve) => pserver.close(resolve))
+ ]))
+
+ const host = 'localhost'
+ await new Promise((resolve) => server.listen(0, host, resolve))
+ const { port } = server.address()
+ await new Promise((resolve) => pserver.listen(port + 1, host, resolve))
+ const gyp = {
+ opts: {
+ proxy: `http://${host}:${port + 1}`,
+ noproxy: 'bad'
+ },
+ version: '42'
+ }
+ const url = `http://${host}:${port}`
+ const res = await install.test.download(gyp, url)
+ t.strictEqual(await res.text(), 'proxy ok')
})
-test('download over http with noproxy', function (t) {
+test('download over http with noproxy', async (t) => {
t.plan(2)
- var server = http.createServer(function (req, res) {
- t.strictEqual(req.headers['user-agent'],
- 'node-gyp v42 (node ' + process.version + ')')
+ const server = http.createServer((req, res) => {
+ t.strictEqual(req.headers['user-agent'], `node-gyp v42 (node ${process.version})`)
res.end('ok')
- pserver.close(function () {
- server.close()
- })
})
- var pserver = http.createServer(function (req, res) {
- t.strictEqual(req.headers['user-agent'],
- 'node-gyp v42 (node ' + process.version + ')')
+ const pserver = http.createServer((_, res) => {
res.end('proxy ok')
- server.close(function () {
- pserver.close()
- })
})
- var host = 'localhost'
- server.listen(0, host, function () {
- var port = this.address().port
- pserver.listen(port + 1, host, function () {
- var gyp = {
- opts: {
- proxy: 'http://' + host + ':' + (port + 1),
- noproxy: 'localhost'
- },
- version: '42'
- }
- var url = 'http://' + host + ':' + port
- var req = install.test.download(gyp, {}, url)
- req.on('response', function (res) {
- var body = ''
- res.setEncoding('utf8')
- res.on('data', function (data) {
- body += data
- })
- res.on('end', function () {
- t.strictEqual(body, 'ok')
- })
- })
- })
- })
+ t.tearDown(() => Promise.all([
+ new Promise((resolve) => server.close(resolve)),
+ new Promise((resolve) => pserver.close(resolve))
+ ]))
+
+ const host = 'localhost'
+ await new Promise((resolve) => server.listen(0, host, resolve))
+ const { port } = server.address()
+ await new Promise((resolve) => pserver.listen(port + 1, host, resolve))
+ const gyp = {
+ opts: {
+ proxy: `http://${host}:${port + 1}`,
+ noproxy: host
+ },
+ version: '42'
+ }
+ const url = `http://${host}:${port}`
+ const res = await install.test.download(gyp, url)
+ t.strictEqual(await res.text(), 'ok')
})
-test('download with missing cafile', function (t) {
+test('download with missing cafile', async (t) => {
t.plan(1)
- var gyp = {
+ const gyp = {
opts: { cafile: 'no.such.file' }
}
try {
- install.test.download(gyp, {}, 'http://bad/')
+ await install.test.download(gyp, {}, 'http://bad/')
} catch (e) {
t.ok(/no.such.file/.test(e.message))
}
})
-test('check certificate splitting', function (t) {
- var cas = install.test.readCAFile(path.join(__dirname, 'fixtures/ca-bundle.crt'))
+test('check certificate splitting', async (t) => {
+ const cas = await install.test.readCAFile(path.join(__dirname, 'fixtures/ca-bundle.crt'))
t.plan(2)
t.strictEqual(cas.length, 2)
t.notStrictEqual(cas[0], cas[1])
@@ -206,7 +158,7 @@ test('check certificate splitting', function (t) {
// only run this test if we are running a version of Node with predictable version path behavior
-test('download headers (actual)', function (t) {
+test('download headers (actual)', async (t) => {
if (process.env.FAST_TEST ||
process.release.name !== 'node' ||
semver.prerelease(process.version) !== null ||
@@ -214,55 +166,42 @@ test('download headers (actual)', function (t) {
return t.skip('Skipping actual download of headers due to test environment configuration')
}
- t.plan(17)
+ t.plan(12)
const expectedDir = path.join(devDir, process.version.replace(/^v/, ''))
- rimraf(expectedDir, (err) => {
- t.ifError(err)
-
- const prog = gyp()
- prog.parseArgv([])
- prog.devDir = devDir
- log.level = 'warn'
- install(prog, [], (err) => {
- t.ifError(err)
-
- fs.readFile(path.join(expectedDir, 'installVersion'), 'utf8', (err, data) => {
- t.ifError(err)
- t.strictEqual(data, '9\n', 'correct installVersion')
- })
-
- fs.readdir(path.join(expectedDir, 'include/node'), (err, list) => {
- t.ifError(err)
-
- t.ok(list.includes('common.gypi'))
- t.ok(list.includes('config.gypi'))
- t.ok(list.includes('node.h'))
- t.ok(list.includes('node_version.h'))
- t.ok(list.includes('openssl'))
- t.ok(list.includes('uv'))
- t.ok(list.includes('uv.h'))
- t.ok(list.includes('v8-platform.h'))
- t.ok(list.includes('v8.h'))
- t.ok(list.includes('zlib.h'))
- })
-
- fs.readFile(path.join(expectedDir, 'include/node/node_version.h'), 'utf8', (err, contents) => {
- t.ifError(err)
-
- const lines = contents.split('\n')
-
- // extract the 3 version parts from the defines to build a valid version string and
- // and check them against our current env version
- const version = ['major', 'minor', 'patch'].reduce((version, type) => {
- const re = new RegExp(`^#define\\sNODE_${type.toUpperCase()}_VERSION`)
- const line = lines.find((l) => re.test(l))
- const i = line ? parseInt(line.replace(/^[^0-9]+([0-9]+).*$/, '$1'), 10) : 'ERROR'
- return `${version}${type !== 'major' ? '.' : 'v'}${i}`
- }, '')
-
- t.strictEqual(version, process.version)
- })
- })
- })
+ await util.promisify(rimraf)(expectedDir)
+
+ const prog = gyp()
+ prog.parseArgv([])
+ prog.devDir = devDir
+ log.level = 'warn'
+ await util.promisify(install)(prog, [])
+
+ const data = await fs.promises.readFile(path.join(expectedDir, 'installVersion'), 'utf8')
+ t.strictEqual(data, '9\n', 'correct installVersion')
+
+ const list = await fs.promises.readdir(path.join(expectedDir, 'include/node'))
+ t.ok(list.includes('common.gypi'))
+ t.ok(list.includes('config.gypi'))
+ t.ok(list.includes('node.h'))
+ t.ok(list.includes('node_version.h'))
+ t.ok(list.includes('openssl'))
+ t.ok(list.includes('uv'))
+ t.ok(list.includes('uv.h'))
+ t.ok(list.includes('v8-platform.h'))
+ t.ok(list.includes('v8.h'))
+ t.ok(list.includes('zlib.h'))
+
+ const lines = (await fs.promises.readFile(path.join(expectedDir, 'include/node/node_version.h'), 'utf8')).split('\n')
+
+ // extract the 3 version parts from the defines to build a valid version string and
+ // and check them against our current env version
+ const version = ['major', 'minor', 'patch'].reduce((version, type) => {
+ const re = new RegExp(`^#define\\sNODE_${type.toUpperCase()}_VERSION`)
+ const line = lines.find((l) => re.test(l))
+ const i = line ? parseInt(line.replace(/^[^0-9]+([0-9]+).*$/, '$1'), 10) : 'ERROR'
+ return `${version}${type !== 'major' ? '.' : 'v'}${i}`
+ }, '')
+
+ t.strictEqual(version, process.version)
})
diff --git a/deps/npm/node_modules/node-gyp/test/test-find-python.js b/deps/npm/node_modules/node-gyp/test/test-find-python.js
index 6be887f7eb3..67d0b2664f0 100644
--- a/deps/npm/node_modules/node-gyp/test/test-find-python.js
+++ b/deps/npm/node_modules/node-gyp/test/test-find-python.js
@@ -16,13 +16,8 @@ test('find python', function (t) {
t.strictEqual(err, null)
var proc = execFile(found, ['-V'], function (err, stdout, stderr) {
t.strictEqual(err, null)
- if (/Python 2/.test(stderr)) {
- t.strictEqual(stdout, '')
- t.ok(/Python 2/.test(stderr))
- } else {
- t.ok(/Python 3/.test(stdout))
- t.strictEqual(stderr, '')
- }
+ t.ok(/Python 3/.test(stdout))
+ t.strictEqual(stderr, '')
})
proc.stdout.setEncoding('utf-8')
proc.stderr.setEncoding('utf-8')
@@ -66,7 +61,7 @@ test('find python - python', function (t) {
poison(f, 'execFile')
t.strictEqual(program, '/path/python')
t.ok(/sys\.version_info/.test(args[1]))
- cb(null, '2.7.15')
+ cb(null, '3.9.1')
}
t.strictEqual(program,
process.platform === 'win32' ? '"python"' : 'python')
@@ -146,13 +141,14 @@ test('find python - no python2, no python, unix', function (t) {
})
test('find python - no python, use python launcher', function (t) {
- t.plan(3)
+ t.plan(4)
var f = new TestPythonFinder(null, done)
f.win = true
f.execFile = function (program, args, opts, cb) {
if (program === 'py.exe') {
+ t.notEqual(args.indexOf('-3'), -1)
t.notEqual(args.indexOf('-c'), -1)
return cb(null, 'Z:\\snake.exe')
}
@@ -162,7 +158,7 @@ test('find python - no python, use python launcher', function (t) {
cb(new Error('not found'))
} else if (/sys\.version_info/.test(args[args.length - 1])) {
if (program === 'Z:\\snake.exe') {
- cb(null, '2.7.14')
+ cb(null, '3.9.0')
} else {
t.fail()
}
@@ -181,9 +177,9 @@ test('find python - no python, use python launcher', function (t) {
test('find python - no python, no python launcher, good guess', function (t) {
t.plan(2)
- var re = /C:[\\/]Python37[\\/]python[.]exe/
var f = new TestPythonFinder(null, done)
f.win = true
+ const expectedProgram = f.winDefaultLocations[0]
f.execFile = function (program, args, opts, cb) {
if (program === 'py.exe') {
@@ -191,7 +187,7 @@ test('find python - no python, no python launcher, good guess', function (t) {
}
if (/sys\.executable/.test(args[args.length - 1])) {
cb(new Error('not found'))
- } else if (re.test(program) &&
+ } else if (program === expectedProgram &&
/sys\.version_info/.test(args[args.length - 1])) {
cb(null, '3.7.3')
} else {
@@ -202,7 +198,7 @@ test('find python - no python, no python launcher, good guess', function (t) {
function done (err, python) {
t.strictEqual(err, null)
- t.ok(re.test(python))
+ t.ok(python === expectedProgram)
}
})
diff --git a/deps/npm/node_modules/node-gyp/test/test-install.js b/deps/npm/node_modules/node-gyp/test/test-install.js
index c3317155e0f..5039dc992eb 100644
--- a/deps/npm/node_modules/node-gyp/test/test-install.js
+++ b/deps/npm/node_modules/node-gyp/test/test-install.js
@@ -1,38 +1,46 @@
'use strict'
-const test = require('tap').test
-const install = require('../lib/install').test.install
+const { test } = require('tap')
+const { test: { install } } = require('../lib/install')
+const log = require('npmlog')
-require('npmlog').level = 'error' // we expect a warning
+log.level = 'error' // we expect a warning
-test('EACCES retry once', function (t) {
+test('EACCES retry once', async (t) => {
t.plan(3)
- var fs = {}
- fs.stat = function (path, cb) {
- var err = new Error()
- err.code = 'EACCES'
- cb(err)
- t.ok(true)
+ const fs = {
+ promises: {
+ stat (_) {
+ const err = new Error()
+ err.code = 'EACCES'
+ t.ok(true)
+ throw err
+ }
+ }
}
- var gyp = {}
- gyp.devDir = __dirname
- gyp.opts = {}
- gyp.opts.ensure = true
- gyp.commands = {}
- gyp.commands.install = function (argv, cb) {
- install(fs, gyp, argv, cb)
- }
- gyp.commands.remove = function (argv, cb) {
- cb()
+ const Gyp = {
+ devDir: __dirname,
+ opts: {
+ ensure: true
+ },
+ commands: {
+ install (argv, cb) {
+ install(fs, Gyp, argv).then(cb, cb)
+ },
+ remove (_, cb) {
+ cb()
+ }
+ }
}
- gyp.commands.install([], function (err) {
+ try {
+ await install(fs, Gyp, [])
+ } catch (err) {
t.ok(true)
if (/"pre" versions of node cannot be installed/.test(err.message)) {
t.ok(true)
- t.ok(true)
}
- })
+ }
})
diff --git a/deps/npm/node_modules/node-gyp/update-gyp.py b/deps/npm/node_modules/node-gyp/update-gyp.py
index aa2bcb9eb99..bb84f071a61 100755
--- a/deps/npm/node_modules/node-gyp/update-gyp.py
+++ b/deps/npm/node_modules/node-gyp/update-gyp.py
@@ -4,14 +4,13 @@ import argparse
import os
import shutil
import subprocess
-import sys
import tarfile
import tempfile
import urllib.request
BASE_URL = "https://github.com/nodejs/gyp-next/archive/"
CHECKOUT_PATH = os.path.dirname(os.path.realpath(__file__))
-CHECKOUT_GYP_PATH = os.path.join(CHECKOUT_PATH, 'gyp')
+CHECKOUT_GYP_PATH = os.path.join(CHECKOUT_PATH, "gyp")
parser = argparse.ArgumentParser()
parser.add_argument("tag", help="gyp tag to update to")
@@ -21,25 +20,27 @@ tar_url = BASE_URL + args.tag + ".tar.gz"
changed_files = subprocess.check_output(["git", "diff", "--name-only"]).strip()
if changed_files:
- raise Exception("Can't update gyp while you have uncommitted changes in node-gyp")
+ raise Exception("Can't update gyp while you have uncommitted changes in node-gyp")
with tempfile.TemporaryDirectory() as tmp_dir:
- tar_file = os.path.join(tmp_dir, 'gyp.tar.gz')
- unzip_target = os.path.join(tmp_dir, 'gyp')
- with open(tar_file, 'wb') as f:
- print("Downloading gyp-next@" + args.tag + " into temporary directory...")
- print("From: " + tar_url)
- with urllib.request.urlopen(tar_url) as in_file:
- f.write(in_file.read())
-
- print("Unzipping...")
- with tarfile.open(tar_file, "r:gz") as tar_ref:
- tar_ref.extractall(unzip_target)
-
- print("Moving to current checkout (" + CHECKOUT_PATH + ")...")
- if os.path.exists(CHECKOUT_GYP_PATH):
- shutil.rmtree(CHECKOUT_GYP_PATH)
- shutil.move(os.path.join(unzip_target, os.listdir(unzip_target)[0]), CHECKOUT_GYP_PATH)
+ tar_file = os.path.join(tmp_dir, "gyp.tar.gz")
+ unzip_target = os.path.join(tmp_dir, "gyp")
+ with open(tar_file, "wb") as f:
+ print("Downloading gyp-next@" + args.tag + " into temporary directory...")
+ print("From: " + tar_url)
+ with urllib.request.urlopen(tar_url) as in_file:
+ f.write(in_file.read())
+
+ print("Unzipping...")
+ with tarfile.open(tar_file, "r:gz") as tar_ref:
+ tar_ref.extractall(unzip_target)
+
+ print("Moving to current checkout (" + CHECKOUT_PATH + ")...")
+ if os.path.exists(CHECKOUT_GYP_PATH):
+ shutil.rmtree(CHECKOUT_GYP_PATH)
+ shutil.move(
+ os.path.join(unzip_target, os.listdir(unzip_target)[0]), CHECKOUT_GYP_PATH
+ )
subprocess.check_output(["git", "add", "gyp"], cwd=CHECKOUT_PATH)
-subprocess.check_output(["git", "commit", "-m", "gyp: update gyp to " + args.tag])
+subprocess.check_output(["git", "commit", "-m", "feat(gyp): update gyp to " + args.tag])
diff --git a/deps/npm/node_modules/oauth-sign/LICENSE b/deps/npm/node_modules/oauth-sign/LICENSE
deleted file mode 100644
index a4a9aee0c2f..00000000000
--- a/deps/npm/node_modules/oauth-sign/LICENSE
+++ /dev/null
@@ -1,55 +0,0 @@
-Apache License
-
-Version 2.0, January 2004
-
-http://www.apache.org/licenses/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
-"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
-
-"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
-
-"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
-
-"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
-
-"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
-
-"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
-
-"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
-
-"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
-
-"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
-
-"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
-
-2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
-
-You must give any other recipients of the Work or Derivative Works a copy of this License; and
-
-You must cause any modified files to carry prominent notices stating that You changed the files; and
-
-You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
-
-If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
-
-5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS \ No newline at end of file
diff --git a/deps/npm/node_modules/oauth-sign/index.js b/deps/npm/node_modules/oauth-sign/index.js
deleted file mode 100644
index 6482f77b54b..00000000000
--- a/deps/npm/node_modules/oauth-sign/index.js
+++ /dev/null
@@ -1,146 +0,0 @@
-var crypto = require('crypto')
-
-function sha (key, body, algorithm) {
- return crypto.createHmac(algorithm, key).update(body).digest('base64')
-}
-
-function rsa (key, body) {
- return crypto.createSign('RSA-SHA1').update(body).sign(key, 'base64')
-}
-
-function rfc3986 (str) {
- return encodeURIComponent(str)
- .replace(/!/g,'%21')
- .replace(/\*/g,'%2A')
- .replace(/\(/g,'%28')
- .replace(/\)/g,'%29')
- .replace(/'/g,'%27')
-}
-
-// Maps object to bi-dimensional array
-// Converts { foo: 'A', bar: [ 'b', 'B' ]} to
-// [ ['foo', 'A'], ['bar', 'b'], ['bar', 'B'] ]
-function map (obj) {
- var key, val, arr = []
- for (key in obj) {
- val = obj[key]
- if (Array.isArray(val))
- for (var i = 0; i < val.length; i++)
- arr.push([key, val[i]])
- else if (typeof val === 'object')
- for (var prop in val)
- arr.push([key + '[' + prop + ']', val[prop]])
- else
- arr.push([key, val])
- }
- return arr
-}
-
-// Compare function for sort
-function compare (a, b) {
- return a > b ? 1 : a < b ? -1 : 0
-}
-
-function generateBase (httpMethod, base_uri, params) {
- // adapted from https://dev.twitter.com/docs/auth/oauth and
- // https://dev.twitter.com/docs/auth/creating-signature
-
- // Parameter normalization
- // http://tools.ietf.org/html/rfc5849#section-3.4.1.3.2
- var normalized = map(params)
- // 1. First, the name and value of each parameter are encoded
- .map(function (p) {
- return [ rfc3986(p[0]), rfc3986(p[1] || '') ]
- })
- // 2. The parameters are sorted by name, using ascending byte value
- // ordering. If two or more parameters share the same name, they
- // are sorted by their value.
- .sort(function (a, b) {
- return compare(a[0], b[0]) || compare(a[1], b[1])
- })
- // 3. The name of each parameter is concatenated to its corresponding
- // value using an "=" character (ASCII code 61) as a separator, even
- // if the value is empty.
- .map(function (p) { return p.join('=') })
- // 4. The sorted name/value pairs are concatenated together into a
- // single string by using an "&" character (ASCII code 38) as
- // separator.
- .join('&')
-
- var base = [
- rfc3986(httpMethod ? httpMethod.toUpperCase() : 'GET'),
- rfc3986(base_uri),
- rfc3986(normalized)
- ].join('&')
-
- return base
-}
-
-function hmacsign (httpMethod, base_uri, params, consumer_secret, token_secret) {
- var base = generateBase(httpMethod, base_uri, params)
- var key = [
- consumer_secret || '',
- token_secret || ''
- ].map(rfc3986).join('&')
-
- return sha(key, base, 'sha1')
-}
-
-function hmacsign256 (httpMethod, base_uri, params, consumer_secret, token_secret) {
- var base = generateBase(httpMethod, base_uri, params)
- var key = [
- consumer_secret || '',
- token_secret || ''
- ].map(rfc3986).join('&')
-
- return sha(key, base, 'sha256')
-}
-
-function rsasign (httpMethod, base_uri, params, private_key, token_secret) {
- var base = generateBase(httpMethod, base_uri, params)
- var key = private_key || ''
-
- return rsa(key, base)
-}
-
-function plaintext (consumer_secret, token_secret) {
- var key = [
- consumer_secret || '',
- token_secret || ''
- ].map(rfc3986).join('&')
-
- return key
-}
-
-function sign (signMethod, httpMethod, base_uri, params, consumer_secret, token_secret) {
- var method
- var skipArgs = 1
-
- switch (signMethod) {
- case 'RSA-SHA1':
- method = rsasign
- break
- case 'HMAC-SHA1':
- method = hmacsign
- break
- case 'HMAC-SHA256':
- method = hmacsign256
- break
- case 'PLAINTEXT':
- method = plaintext
- skipArgs = 4
- break
- default:
- throw new Error('Signature method not supported: ' + signMethod)
- }
-
- return method.apply(null, [].slice.call(arguments, skipArgs))
-}
-
-exports.hmacsign = hmacsign
-exports.hmacsign256 = hmacsign256
-exports.rsasign = rsasign
-exports.plaintext = plaintext
-exports.sign = sign
-exports.rfc3986 = rfc3986
-exports.generateBase = generateBase \ No newline at end of file
diff --git a/deps/npm/node_modules/oauth-sign/package.json b/deps/npm/node_modules/oauth-sign/package.json
deleted file mode 100644
index 036d2b0bc66..00000000000
--- a/deps/npm/node_modules/oauth-sign/package.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "author": "Mikeal Rogers <mikeal.rogers@gmail.com> (http://www.futurealoof.com)",
- "name": "oauth-sign",
- "description": "OAuth 1 signing. Formerly a vendor lib in mikeal/request, now a standalone module.",
- "version": "0.9.0",
- "license": "Apache-2.0",
- "repository": {
- "url": "https://github.com/mikeal/oauth-sign"
- },
- "main": "index.js",
- "files": [
- "index.js"
- ],
- "dependencies": {},
- "devDependencies": {},
- "optionalDependencies": {},
- "engines": {
- "node": "*"
- },
- "scripts": {
- "test": "node test.js"
- }
-}
diff --git a/deps/npm/node_modules/pacote/package.json b/deps/npm/node_modules/pacote/package.json
index 437bb8f79e1..17933ad128e 100644
--- a/deps/npm/node_modules/pacote/package.json
+++ b/deps/npm/node_modules/pacote/package.json
@@ -1,6 +1,6 @@
{
"name": "pacote",
- "version": "11.3.5",
+ "version": "12.0.0",
"description": "JavaScript package downloader",
"author": "Isaac Z. Schlueter <i@izs.me> (https://izs.me)",
"bin": {
@@ -36,7 +36,7 @@
"@npmcli/git": "^2.1.0",
"@npmcli/installed-package-contents": "^1.0.6",
"@npmcli/promise-spawn": "^1.2.0",
- "@npmcli/run-script": "^1.8.2",
+ "@npmcli/run-script": "^2.0.0",
"cacache": "^15.0.5",
"chownr": "^2.0.0",
"fs-minipass": "^2.1.0",
@@ -54,7 +54,7 @@
"tar": "^6.1.0"
},
"engines": {
- "node": ">=10"
+ "node": "^12.13.0 || ^14.15.0 || >=16"
},
"repository": "git@github.com:npm/pacote"
}
diff --git a/deps/npm/node_modules/performance-now/.tm_properties b/deps/npm/node_modules/performance-now/.tm_properties
deleted file mode 100644
index 4b8eb3f610c..00000000000
--- a/deps/npm/node_modules/performance-now/.tm_properties
+++ /dev/null
@@ -1,7 +0,0 @@
-excludeDirectories = "{.git,node_modules}"
-excludeInFolderSearch = "{excludeDirectories,lib}"
-
-includeFiles = "{.gitignore,.npmignore,.travis.yml}"
-
-[ attr.untitled ]
-fileType = 'source.coffee' \ No newline at end of file
diff --git a/deps/npm/node_modules/performance-now/lib/performance-now.js b/deps/npm/node_modules/performance-now/lib/performance-now.js
deleted file mode 100644
index 37f569da1e0..00000000000
--- a/deps/npm/node_modules/performance-now/lib/performance-now.js
+++ /dev/null
@@ -1,36 +0,0 @@
-// Generated by CoffeeScript 1.12.2
-(function() {
- var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;
-
- if ((typeof performance !== "undefined" && performance !== null) && performance.now) {
- module.exports = function() {
- return performance.now();
- };
- } else if ((typeof process !== "undefined" && process !== null) && process.hrtime) {
- module.exports = function() {
- return (getNanoSeconds() - nodeLoadTime) / 1e6;
- };
- hrtime = process.hrtime;
- getNanoSeconds = function() {
- var hr;
- hr = hrtime();
- return hr[0] * 1e9 + hr[1];
- };
- moduleLoadTime = getNanoSeconds();
- upTime = process.uptime() * 1e9;
- nodeLoadTime = moduleLoadTime - upTime;
- } else if (Date.now) {
- module.exports = function() {
- return Date.now() - loadTime;
- };
- loadTime = Date.now();
- } else {
- module.exports = function() {
- return new Date().getTime() - loadTime;
- };
- loadTime = new Date().getTime();
- }
-
-}).call(this);
-
-//# sourceMappingURL=performance-now.js.map
diff --git a/deps/npm/node_modules/performance-now/lib/performance-now.js.map b/deps/npm/node_modules/performance-now/lib/performance-now.js.map
deleted file mode 100644
index bef83626d87..00000000000
--- a/deps/npm/node_modules/performance-now/lib/performance-now.js.map
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "version": 3,
- "file": "performance-now.js",
- "sourceRoot": "..",
- "sources": [
- "src/performance-now.coffee"
- ],
- "names": [],
- "mappings": ";AAAA;AAAA,MAAA;;EAAA,IAAG,4DAAA,IAAiB,WAAW,CAAC,GAAhC;IACE,MAAM,CAAC,OAAP,GAAiB,SAAA;aAAG,WAAW,CAAC,GAAZ,CAAA;IAAH,EADnB;GAAA,MAEK,IAAG,oDAAA,IAAa,OAAO,CAAC,MAAxB;IACH,MAAM,CAAC,OAAP,GAAiB,SAAA;aAAG,CAAC,cAAA,CAAA,CAAA,GAAmB,YAApB,CAAA,GAAoC;IAAvC;IACjB,MAAA,GAAS,OAAO,CAAC;IACjB,cAAA,GAAiB,SAAA;AACf,UAAA;MAAA,EAAA,GAAK,MAAA,CAAA;aACL,EAAG,CAAA,CAAA,CAAH,GAAQ,GAAR,GAAc,EAAG,CAAA,CAAA;IAFF;IAGjB,cAAA,GAAiB,cAAA,CAAA;IACjB,MAAA,GAAS,OAAO,CAAC,MAAR,CAAA,CAAA,GAAmB;IAC5B,YAAA,GAAe,cAAA,GAAiB,OAR7B;GAAA,MASA,IAAG,IAAI,CAAC,GAAR;IACH,MAAM,CAAC,OAAP,GAAiB,SAAA;aAAG,IAAI,CAAC,GAAL,CAAA,CAAA,GAAa;IAAhB;IACjB,QAAA,GAAW,IAAI,CAAC,GAAL,CAAA,EAFR;GAAA,MAAA;IAIH,MAAM,CAAC,OAAP,GAAiB,SAAA;aAAO,IAAA,IAAA,CAAA,CAAM,CAAC,OAAP,CAAA,CAAJ,GAAuB;IAA1B;IACjB,QAAA,GAAe,IAAA,IAAA,CAAA,CAAM,CAAC,OAAP,CAAA,EALZ;;AAXL"
-} \ No newline at end of file
diff --git a/deps/npm/node_modules/performance-now/package.json b/deps/npm/node_modules/performance-now/package.json
deleted file mode 100644
index 962bfc85ff8..00000000000
--- a/deps/npm/node_modules/performance-now/package.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "name": "performance-now",
- "description": "Implements performance.now (based on process.hrtime).",
- "keywords": [],
- "version": "2.1.0",
- "author": "Braveg1rl <braveg1rl@outlook.com>",
- "license": "MIT",
- "homepage": "https://github.com/braveg1rl/performance-now",
- "bugs": "https://github.com/braveg1rl/performance-now/issues",
- "repository": {
- "type": "git",
- "url": "git://github.com/braveg1rl/performance-now.git"
- },
- "private": false,
- "dependencies": {},
- "devDependencies": {
- "bluebird": "^3.4.7",
- "call-delayed": "^1.0.0",
- "chai": "^3.5.0",
- "chai-increasing": "^1.2.0",
- "coffee-script": "~1.12.2",
- "mocha": "~3.2.0",
- "pre-commit": "^1.2.2"
- },
- "optionalDependencies": {},
- "main": "lib/performance-now.js",
- "scripts": {
- "build": "mkdir -p lib && rm -rf lib/* && node_modules/.bin/coffee --compile -m --output lib/ src/",
- "prepublish": "npm test",
- "pretest": "npm run build",
- "test": "node_modules/.bin/mocha",
- "watch": "node_modules/.bin/coffee --watch --compile --output lib/ src/"
- },
- "typings": "src/index.d.ts"
-}
diff --git a/deps/npm/node_modules/performance-now/src/index.d.ts b/deps/npm/node_modules/performance-now/src/index.d.ts
deleted file mode 100644
index 68dca8eddc8..00000000000
--- a/deps/npm/node_modules/performance-now/src/index.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-// This file describes the package to typescript.
-
-/**
- * Returns the number of milliseconds since the page was loaded (if browser)
- * or the node process was started.
- */
-declare function now(): number;
-export = now;
diff --git a/deps/npm/node_modules/performance-now/src/performance-now.coffee b/deps/npm/node_modules/performance-now/src/performance-now.coffee
deleted file mode 100644
index a8e075a40fe..00000000000
--- a/deps/npm/node_modules/performance-now/src/performance-now.coffee
+++ /dev/null
@@ -1,17 +0,0 @@
-if performance? and performance.now
- module.exports = -> performance.now()
-else if process? and process.hrtime
- module.exports = -> (getNanoSeconds() - nodeLoadTime) / 1e6
- hrtime = process.hrtime
- getNanoSeconds = ->
- hr = hrtime()
- hr[0] * 1e9 + hr[1]
- moduleLoadTime = getNanoSeconds()
- upTime = process.uptime() * 1e9
- nodeLoadTime = moduleLoadTime - upTime
-else if Date.now
- module.exports = -> Date.now() - loadTime
- loadTime = Date.now()
-else
- module.exports = -> new Date().getTime() - loadTime
- loadTime = new Date().getTime()
diff --git a/deps/npm/node_modules/performance-now/test/mocha.opts b/deps/npm/node_modules/performance-now/test/mocha.opts
deleted file mode 100644
index 55d8492707f..00000000000
--- a/deps/npm/node_modules/performance-now/test/mocha.opts
+++ /dev/null
@@ -1,3 +0,0 @@
---require coffee-script/register
---compilers coffee:coffee-script/register
---reporter spec \ No newline at end of file
diff --git a/deps/npm/node_modules/performance-now/test/performance-now.coffee b/deps/npm/node_modules/performance-now/test/performance-now.coffee
deleted file mode 100644
index c99e95cd2cb..00000000000
--- a/deps/npm/node_modules/performance-now/test/performance-now.coffee
+++ /dev/null
@@ -1,43 +0,0 @@
-chai = require "chai"
-chai.use(require "chai-increasing")
-{assert,expect} = chai
-Bluebird = require "bluebird"
-
-now = require "../"
-
-getUptime = -> process.uptime() * 1e3
-
-describe "now", ->
- it "reported time differs at most 1ms from a freshly reported uptime", ->
- assert.isAtMost Math.abs(now()-getUptime()), 1
-
- it "two subsequent calls return an increasing number", ->
- assert.isBelow now(), now()
-
- it "has less than 10 microseconds overhead", ->
- assert.isBelow Math.abs(now() - now()), 0.010
-
- it "can be called 1 million times in under 1 second (averaging under 1 microsecond per call)", ->
- @timeout 1000
- now() for [0...1e6]
- undefined
-
- it "for 10,000 numbers, number n is never bigger than number n-1", ->
- stamps = (now() for [1...10000])
- expect(stamps).to.be.increasing
-
- it "shows that at least 0.2 ms has passed after a timeout of 1 ms", ->
- earlier = now()
- Bluebird.resolve().delay(1).then -> assert.isAbove (now()-earlier), 0.2
-
- it "shows that at most 3 ms has passed after a timeout of 1 ms", ->
- earlier = now()
- Bluebird.resolve().delay(1).then -> assert.isBelow (now()-earlier), 3
-
- it "shows that at least 190ms ms has passed after a timeout of 200ms", ->
- earlier = now()
- Bluebird.resolve().delay(200).then -> assert.isAbove (now()-earlier), 190
-
- it "shows that at most 220 ms has passed after a timeout of 200ms", ->
- earlier = now()
- Bluebird.resolve().delay(200).then -> assert.isBelow (now()-earlier), 220
diff --git a/deps/npm/node_modules/performance-now/test/scripts.coffee b/deps/npm/node_modules/performance-now/test/scripts.coffee
deleted file mode 100644
index 16312f185c8..00000000000
--- a/deps/npm/node_modules/performance-now/test/scripts.coffee
+++ /dev/null
@@ -1,27 +0,0 @@
-Bluebird = require "bluebird"
-exec = require("child_process").execSync
-{assert} = require "chai"
-
-describe "scripts/initital-value.coffee (module.uptime(), expressed in milliseconds)", ->
- result = exec("./test/scripts/initial-value.coffee").toString().trim()
- it "printed #{result}", ->
- it "printed a value above 100", -> assert.isAbove result, 100
- it "printed a value below 350", -> assert.isBelow result, 350
-
-describe "scripts/delayed-require.coffee (sum of uptime and 250 ms delay`)", ->
- result = exec("./test/scripts/delayed-require.coffee").toString().trim()
- it "printed #{result}", ->
- it "printed a value above 350", -> assert.isAbove result, 350
- it "printed a value below 600", -> assert.isBelow result, 600
-
-describe "scripts/delayed-call.coffee (sum of uptime and 250 ms delay`)", ->
- result = exec("./test/scripts/delayed-call.coffee").toString().trim()
- it "printed #{result}", ->
- it "printed a value above 350", -> assert.isAbove result, 350
- it "printed a value below 600", -> assert.isBelow result, 600
-
-describe "scripts/difference.coffee", ->
- result = exec("./test/scripts/difference.coffee").toString().trim()
- it "printed #{result}", ->
- it "printed a value above 0.005", -> assert.isAbove result, 0.005
- it "printed a value below 0.07", -> assert.isBelow result, 0.07
diff --git a/deps/npm/node_modules/performance-now/test/scripts/delayed-call.coffee b/deps/npm/node_modules/performance-now/test/scripts/delayed-call.coffee
deleted file mode 100755
index 0c3bab5949b..00000000000
--- a/deps/npm/node_modules/performance-now/test/scripts/delayed-call.coffee
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/usr/bin/env ./node_modules/.bin/coffee
-
-###
-Expected output is a number above 350 and below 600.
-The time reported is relative to the time the node.js process was started
-this is approximately at `(Date.now() process.uptime() * 1000)`
-###
-
-delay = require "call-delayed"
-now = require "../../lib/performance-now"
-delay 250, -> console.log now().toFixed 3
diff --git a/deps/npm/node_modules/performance-now/test/scripts/delayed-require.coffee b/deps/npm/node_modules/performance-now/test/scripts/delayed-require.coffee
deleted file mode 100755
index 3ddee952f2c..00000000000
--- a/deps/npm/node_modules/performance-now/test/scripts/delayed-require.coffee
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/usr/bin/env ./node_modules/.bin/coffee
-
-###
-Expected output is a number above 350 and below 600.
-The time reported is relative to the time the node.js process was started
-this is approximately at `(Date.now() process.uptime() * 1000)`
-###
-
-delay = require "call-delayed"
-delay 250, ->
- now = require "../../lib/performance-now"
- console.log now().toFixed 3
diff --git a/deps/npm/node_modules/performance-now/test/scripts/difference.coffee b/deps/npm/node_modules/performance-now/test/scripts/difference.coffee
deleted file mode 100755
index 0b5edf6c6b2..00000000000
--- a/deps/npm/node_modules/performance-now/test/scripts/difference.coffee
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/usr/bin/env ./node_modules/.bin/coffee
-
-# Expected output is above 0.005 and below 0.07.
-
-now = require('../../lib/performance-now')
-console.log -(now() - now()).toFixed 3
diff --git a/deps/npm/node_modules/performance-now/test/scripts/initial-value.coffee b/deps/npm/node_modules/performance-now/test/scripts/initial-value.coffee
deleted file mode 100755
index 19ef4e0f3e7..00000000000
--- a/deps/npm/node_modules/performance-now/test/scripts/initial-value.coffee
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/usr/bin/env ./node_modules/.bin/coffee
-
-###
-Expected output is a number above 100 and below 350.
-The time reported is relative to the time the node.js process was started
-this is approximately at `(Date.now() process.uptime() * 1000)`
-###
-
-now = require '../../lib/performance-now'
-console.log now().toFixed 3
diff --git a/deps/npm/node_modules/psl/browserstack-logo.svg b/deps/npm/node_modules/psl/browserstack-logo.svg
deleted file mode 100644
index 195f64d2fea..00000000000
--- a/deps/npm/node_modules/psl/browserstack-logo.svg
+++ /dev/null
@@ -1,90 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- viewBox="0 0 490.1 105.6" style="enable-background:new 0 0 490.1 105.6;" xml:space="preserve">
-<style type="text/css">
- .st0{fill:#F4B960;}
- .st1{fill:#E66F32;}
- .st2{fill:#E43C41;}
- .st3{fill:#BDD041;}
- .st4{fill:#6DB54C;}
- .st5{fill:#AEDAE6;}
- .st6{fill:#56B8DE;}
- .st7{fill:#00B1D5;}
- .st8{fill:url(#SVGID_1_);}
- .st9{fill:#221F1F;}
- .st10{fill:#FFFFFF;}
- .st11{fill:#000111;}
-</style>
-<title>Browserstack-logo-white</title>
-<circle class="st0" cx="52.8" cy="52.8" r="52.8"/>
-<circle class="st1" cx="47.5" cy="47.5" r="47.5"/>
-<circle class="st2" cx="53.8" cy="41.1" r="41.1"/>
-<circle class="st3" cx="57.1" cy="44.4" r="37.8"/>
-<circle class="st4" cx="54.3" cy="47.2" r="35.1"/>
-<circle class="st5" cx="48.8" cy="41.7" r="29.5"/>
-<circle class="st6" cx="53.6" cy="36.8" r="24.7"/>
-<circle class="st7" cx="56.6" cy="39.9" r="21.7"/>
-<radialGradient id="SVGID_1_" cx="53.45" cy="63.02" r="18.57" gradientTransform="matrix(1 0 0 -1 0 106)" gradientUnits="userSpaceOnUse">
- <stop offset="0" style="stop-color:#797979"/>
- <stop offset="1" style="stop-color:#4C4C4C"/>
-</radialGradient>
-<circle class="st8" cx="53.5" cy="43" r="18.6"/>
-<circle class="st9" cx="53.5" cy="43" r="18.6"/>
-<ellipse transform="matrix(0.4094 -0.9123 0.9123 0.4094 2.8913 76.9251)" class="st10" cx="60.9" cy="36.2" rx="5.7" ry="3.7"/>
-<path class="st11" d="M122.5,32.6c0-0.3,0.3-0.6,0.6-0.6c0,0,0,0,0.1,0h16.6c9.5,0,13.9,4.4,13.9,11c0.2,3.7-1.8,7.2-5.2,8.8v0.1
- c3.7,1.5,6.1,5.2,6,9.3c0,8.2-5.6,12.2-15.4,12.2h-16c-0.3,0-0.6-0.2-0.7-0.5c0,0,0,0,0-0.1L122.5,32.6L122.5,32.6z M139.6,49.1
- c3.9,0,6.4-2.2,6.4-5.4s-2.4-5.5-6.4-5.5h-8.9c-0.2,0-0.4,0.1-0.4,0.3c0,0,0,0,0,0.1v10.2c0,0.2,0.1,0.3,0.3,0.4c0,0,0,0,0.1,0
- H139.6L139.6,49.1z M130.6,66.9h9.3c4.3,0,6.8-2.3,6.8-5.8s-2.4-5.7-6.7-5.7h-9.3c-0.2,0-0.4,0.1-0.4,0.3c0,0,0,0,0,0.1v10.7
- C130.3,66.8,130.4,66.9,130.6,66.9C130.6,66.9,130.6,66.9,130.6,66.9L130.6,66.9z"/>
-<path class="st11" d="M159.9,73.3c-0.3,0-0.6-0.2-0.7-0.5c0,0,0,0,0-0.1V44.6c0-0.3,0.3-0.6,0.6-0.6c0,0,0,0,0.1,0h6
- c0.3,0,0.6,0.2,0.7,0.5c0,0,0,0,0,0.1v2.5h0.1c1.5-2.2,4.2-3.8,8.2-3.8c2.4,0,4.8,0.8,6.6,2.4c0.3,0.3,0.4,0.5,0.1,0.8l-3.5,4.1
- c-0.2,0.3-0.6,0.4-0.9,0.2c0,0,0,0-0.1,0c-1.4-0.9-3-1.4-4.7-1.4c-4.1,0-6,2.7-6,7.4v15.9c0,0.3-0.3,0.6-0.6,0.6c0,0,0,0-0.1,0
- H159.9L159.9,73.3z"/>
-<path class="st11" d="M182.9,65.8c-0.8-2.3-1.1-4.8-1.1-7.2c-0.1-2.5,0.3-4.9,1.1-7.2c1.8-5.1,6.6-8.1,13.1-8.1s11.2,3,13,8.1
- c0.8,2.3,1.1,4.8,1.1,7.2c0.1,2.5-0.3,4.9-1.1,7.2c-1.8,5.1-6.6,8.1-13,8.1S184.7,71,182.9,65.8z M201.9,64c0.5-1.7,0.8-3.6,0.7-5.4
- c0.1-1.8-0.1-3.7-0.7-5.4c-0.9-2.5-3.3-4-5.9-3.8c-2.6-0.2-5.1,1.4-6,3.8c-0.5,1.8-0.8,3.6-0.7,5.4c-0.1,1.8,0.1,3.7,0.7,5.4
- c0.9,2.5,3.4,4,6,3.8C198.6,68,201,66.5,201.9,64L201.9,64z"/>
-<path class="st11" d="M241.9,73.3c-0.4,0-0.7-0.3-0.8-0.6L235,53.9h-0.1l-6.2,18.7c-0.1,0.4-0.4,0.6-0.8,0.6h-5.4
- c-0.4,0-0.7-0.3-0.8-0.6l-10-28.1c-0.1-0.2,0-0.5,0.2-0.6c0.1,0,0.2-0.1,0.3,0h6.3c0.4,0,0.8,0.2,0.9,0.6l6.1,19.3h0.1l6-19.3
- c0.1-0.4,0.5-0.6,0.9-0.6h4.7c0.4,0,0.7,0.2,0.9,0.6l6.4,19.3h0.1l5.8-19.3c0.1-0.4,0.5-0.7,0.9-0.6h6.3c0.2-0.1,0.5,0.1,0.5,0.3
- c0,0.1,0,0.2,0,0.3l-10,28.1c-0.1,0.4-0.4,0.6-0.8,0.6L241.9,73.3L241.9,73.3z"/>
-<path class="st11" d="M259.3,69.3c-0.2-0.2-0.3-0.6-0.1-0.8c0,0,0,0,0.1-0.1l3.7-3.6c0.3-0.2,0.7-0.2,0.9,0c2.6,2.1,5.9,3.3,9.3,3.3
- c3.9,0,5.9-1.5,5.9-3.5c0-1.8-1.1-2.9-5.2-3.2l-3.4-0.3c-6.4-0.6-9.7-3.6-9.7-8.6c0-5.7,4.4-9.2,12.3-9.2c4.2-0.1,8.4,1.2,11.9,3.6
- c0.3,0.2,0.3,0.5,0.2,0.8c0,0,0,0,0,0.1l-3.2,3.6c-0.2,0.3-0.6,0.3-0.9,0.1c-2.5-1.5-5.4-2.4-8.3-2.4c-3.1,0-4.8,1.3-4.8,3
- s1.1,2.7,5.2,3.1l3.4,0.3c6.6,0.6,9.8,3.8,9.8,8.6c0,5.8-4.6,9.9-13.3,9.9C268,74,263.2,72.4,259.3,69.3z"/>
-<path class="st11" d="M291.2,65.8c-0.8-2.3-1.2-4.7-1.1-7.2c-0.1-2.5,0.3-4.9,1-7.2c1.8-5.1,6.6-8.1,12.9-8.1c6.5,0,11.2,3.1,13,8.1
- c0.7,2.1,1,4.1,1,8.8c0,0.3-0.3,0.6-0.6,0.6c0,0-0.1,0-0.1,0h-19.5c-0.2,0-0.4,0.1-0.4,0.3c0,0,0,0,0,0.1c0,0.8,0.2,1.5,0.5,2.2
- c1,2.9,3.5,4.4,7.1,4.4c2.7,0.1,5.4-0.9,7.4-2.8c0.2-0.3,0.7-0.4,1-0.1c0,0,0,0,0,0l3.9,3.2c0.2,0.1,0.3,0.5,0.2,0.7
- c0,0.1-0.1,0.1-0.1,0.1c-2.7,2.9-7.2,5-13,5C297.8,73.9,293,70.9,291.2,65.8z M310.4,52.8c-0.9-2.4-3.2-3.8-6.2-3.8
- s-5.4,1.4-6.2,3.8c-0.3,0.8-0.4,1.6-0.4,2.5c0,0.2,0.1,0.3,0.3,0.4c0,0,0,0,0.1,0h12.4c0.2,0,0.4-0.1,0.4-0.3c0,0,0,0,0-0.1
- C310.8,54.5,310.6,53.6,310.4,52.8L310.4,52.8z"/>
-<path class="st11" d="M323.6,73.3c-0.3,0-0.6-0.2-0.7-0.5c0,0,0,0,0-0.1V44.6c0-0.3,0.3-0.6,0.6-0.6c0,0,0,0,0.1,0h6
- c0.3,0,0.6,0.2,0.7,0.5c0,0,0,0,0,0.1v2.5h0.1c1.5-2.2,4.2-3.8,8.2-3.8c2.4,0,4.8,0.8,6.6,2.4c0.3,0.3,0.4,0.5,0.1,0.8l-3.5,4.1
- c-0.2,0.3-0.6,0.4-0.9,0.2c0,0,0,0-0.1,0c-1.4-0.9-3-1.4-4.7-1.4c-4.1,0-6,2.7-6,7.4v15.9c0,0.3-0.3,0.6-0.6,0.6c0,0,0,0-0.1,0
- H323.6L323.6,73.3z"/>
-<path class="st11" d="M346.5,68.5c-0.3-0.2-0.4-0.6-0.2-0.9c0,0,0,0,0,0l4.1-4.4c0.2-0.3,0.6-0.3,0.9-0.1c0,0,0,0,0,0
- c3.5,2.7,7.7,4.2,12.1,4.4c5.3,0,8.4-2.5,8.4-6c0-3-2-4.9-8.1-5.7l-2.4-0.3c-8.6-1.1-13.5-4.9-13.5-11.8c0-7.5,5.9-12.4,15.1-12.4
- c5.1-0.1,10.1,1.4,14.5,4.2c0.3,0.1,0.4,0.4,0.2,0.7c0,0.1-0.1,0.1-0.1,0.2l-3.1,4.5c-0.2,0.3-0.6,0.4-0.9,0.2
- c-3.2-2.1-6.9-3.2-10.7-3.2c-4.5,0-7,2.3-7,5.5c0,2.9,2.2,4.8,8.2,5.6l2.4,0.3c8.6,1.1,13.3,4.9,13.3,12c0,7.3-5.7,12.8-16.8,12.8
- C356.3,73.9,350,71.5,346.5,68.5z"/>
-<path class="st11" d="M393.3,73.8c-6.4,0-8.8-2.9-8.8-8.6V49.8c0-0.2-0.1-0.3-0.3-0.4c0,0,0,0-0.1,0H382c-0.3,0-0.6-0.2-0.7-0.5
- c0,0,0,0,0-0.1v-4.1c0-0.3,0.3-0.6,0.6-0.6c0,0,0,0,0.1,0h2.1c0.2,0,0.4-0.1,0.4-0.3c0,0,0,0,0-0.1v-8c0-0.3,0.3-0.6,0.6-0.6
- c0,0,0,0,0.1,0h6c0.3,0,0.6,0.2,0.7,0.5c0,0,0,0,0,0.1v8c0,0.2,0.1,0.3,0.3,0.4c0,0,0,0,0.1,0h4.2c0.3,0,0.6,0.2,0.7,0.5
- c0,0,0,0,0,0.1v4.1c0,0.3-0.3,0.6-0.6,0.6c0,0,0,0-0.1,0h-4.2c-0.2,0-0.4,0.1-0.4,0.3c0,0,0,0,0,0.1V65c0,2.1,0.9,2.7,3,2.7h1.6
- c0.3,0,0.6,0.2,0.7,0.5c0,0,0,0,0,0.1v4.9c0,0.3-0.3,0.6-0.6,0.6c0,0,0,0-0.1,0L393.3,73.8L393.3,73.8z"/>
-<path class="st11" d="M421.2,73.3c-0.3,0-0.6-0.2-0.7-0.5c0,0,0,0,0-0.1v-2.1h0c-1.5,2-4.5,3.4-8.9,3.4c-5.8,0-10.6-2.8-10.6-8.9
- c0-6.4,4.9-9.3,12.7-9.3h6.4c0.2,0,0.4-0.1,0.4-0.3c0,0,0,0,0-0.1v-1.4c0-3.3-1.7-4.9-7-4.9c-2.6-0.1-5.1,0.6-7.2,2
- c-0.3,0.2-0.7,0.2-0.9-0.1c0,0,0,0,0-0.1l-2.4-4c-0.2-0.2-0.1-0.6,0.1-0.8c0,0,0,0,0,0c2.6-1.7,6-2.9,11.2-2.9
- c9.6,0,13.2,3,13.2,10.2v19.1c0,0.3-0.3,0.6-0.6,0.6c0,0,0,0-0.1,0H421.2L421.2,73.3z M420.4,63.4v-2.2c0-0.2-0.1-0.3-0.3-0.4
- c0,0,0,0-0.1,0h-5.2c-4.7,0-6.8,1.2-6.8,3.9c0,2.4,1.9,3.6,5.5,3.6C417.9,68.4,420.4,66.8,420.4,63.4L420.4,63.4z"/>
-<path class="st11" d="M433.1,65.8c-0.7-2.3-1.1-4.8-1-7.2c-0.1-2.4,0.3-4.9,1-7.2c1.8-5.2,6.7-8.1,13.1-8.1c4.2-0.2,8.2,1.5,11,4.6
- c0.2,0.2,0.2,0.6,0,0.8c0,0,0,0-0.1,0.1l-4.1,3.3c-0.3,0.2-0.7,0.2-0.9-0.1c0,0,0,0,0-0.1c-1.5-1.7-3.6-2.6-5.9-2.5
- c-2.8,0-5,1.3-5.9,3.8c-0.5,1.8-0.8,3.6-0.7,5.4c-0.1,1.8,0.1,3.7,0.7,5.5c0.9,2.5,3.1,3.8,5.9,3.8c2.2,0.1,4.4-0.9,5.9-2.6
- c0.2-0.3,0.6-0.3,0.9-0.1c0,0,0,0,0,0l4.1,3.3c0.3,0.2,0.3,0.5,0.1,0.8c0,0,0,0-0.1,0.1c-2.9,3-6.9,4.6-11,4.5
- C439.8,73.9,435,71.1,433.1,65.8z"/>
-<path class="st11" d="M482.8,73.3c-0.4,0-0.8-0.2-1-0.6l-8-12.3l-4.3,4.6v7.7c0,0.3-0.3,0.6-0.6,0.6c0,0,0,0-0.1,0h-6
- c-0.3,0-0.6-0.2-0.7-0.5c0,0,0,0,0-0.1V32.6c0-0.3,0.3-0.6,0.6-0.6c0,0,0,0,0.1,0h6c0.3,0,0.6,0.2,0.7,0.5c0,0,0,0,0,0.1v23.8
- l10.8-11.8c0.3-0.4,0.8-0.6,1.2-0.6h6.7c0.2,0,0.4,0.1,0.4,0.3c0,0.1,0,0.3-0.1,0.3l-10.1,10.7L490,72.7c0.1,0.2,0.1,0.4,0,0.5
- c-0.1,0.1-0.2,0.1-0.3,0.1H482.8L482.8,73.3z"/>
-</svg>
diff --git a/deps/npm/node_modules/psl/data/rules.json b/deps/npm/node_modules/psl/data/rules.json
deleted file mode 100644
index e19abdc8938..00000000000
--- a/deps/npm/node_modules/psl/data/rules.json
+++ /dev/null
@@ -1,8834 +0,0 @@
-[
-"ac",
-"com.ac",
-"edu.ac",
-"gov.ac",
-"net.ac",
-"mil.ac",
-"org.ac",
-"ad",
-"nom.ad",
-"ae",
-"co.ae",
-"net.ae",
-"org.ae",
-"sch.ae",
-"ac.ae",
-"gov.ae",
-"mil.ae",
-"aero",
-"accident-investigation.aero",
-"accident-prevention.aero",
-"aerobatic.aero",
-"aeroclub.aero",
-"aerodrome.aero",
-"agents.aero",
-"aircraft.aero",
-"airline.aero",
-"airport.aero",
-"air-surveillance.aero",
-"airtraffic.aero",
-"air-traffic-control.aero",
-"ambulance.aero",
-"amusement.aero",
-"association.aero",
-"author.aero",
-"ballooning.aero",
-"broker.aero",
-"caa.aero",
-"cargo.aero",
-"catering.aero",
-"certification.aero",
-"championship.aero",
-"charter.aero",
-"civilaviation.aero",
-"club.aero",
-"conference.aero",
-"consultant.aero",
-"consulting.aero",
-"control.aero",
-"council.aero",
-"crew.aero",
-"design.aero",
-"dgca.aero",
-"educator.aero",
-"emergency.aero",
-"engine.aero",
-"engineer.aero",
-"entertainment.aero",
-"equipment.aero",
-"exchange.aero",
-"express.aero",
-"federation.aero",
-"flight.aero",
-"freight.aero",
-"fuel.aero",
-"gliding.aero",
-"government.aero",
-"groundhandling.aero",
-"group.aero",
-"hanggliding.aero",
-"homebuilt.aero",
-"insurance.aero",
-"journal.aero",
-"journalist.aero",
-"leasing.aero",
-"logistics.aero",
-"magazine.aero",
-"maintenance.aero",
-"media.aero",
-"microlight.aero",
-"modelling.aero",
-"navigation.aero",
-"parachuting.aero",
-"paragliding.aero",
-"passenger-association.aero",
-"pilot.aero",
-"press.aero",
-"production.aero",
-"recreation.aero",
-"repbody.aero",
-"res.aero",
-"research.aero",
-"rotorcraft.aero",
-"safety.aero",
-"scientist.aero",
-"services.aero",
-"show.aero",
-"skydiving.aero",
-"software.aero",
-"student.aero",
-"trader.aero",
-"trading.aero",
-"trainer.aero",
-"union.aero",
-"workinggroup.aero",
-"works.aero",
-"af",
-"gov.af",
-"com.af",
-"org.af",
-"net.af",
-"edu.af",
-"ag",
-"com.ag",
-"org.ag",
-"net.ag",
-"co.ag",
-"nom.ag",
-"ai",
-"off.ai",
-"com.ai",
-"net.ai",
-"org.ai",
-"al",
-"com.al",
-"edu.al",
-"gov.al",
-"mil.al",
-"net.al",
-"org.al",
-"am",
-"co.am",
-"com.am",
-"commune.am",
-"net.am",
-"org.am",
-"ao",
-"ed.ao",
-"gv.ao",
-"og.ao",
-"co.ao",
-"pb.ao",
-"it.ao",
-"aq",
-"ar",
-"com.ar",
-"edu.ar",
-"gob.ar",
-"gov.ar",
-"int.ar",
-"mil.ar",
-"musica.ar",
-"net.ar",
-"org.ar",
-"tur.ar",
-"arpa",
-"e164.arpa",
-"in-addr.arpa",
-"ip6.arpa",
-"iris.arpa",
-"uri.arpa",
-"urn.arpa",
-"as",
-"gov.as",
-"asia",
-"at",
-"ac.at",
-"co.at",
-"gv.at",
-"or.at",
-"au",
-"com.au",
-"net.au",
-"org.au",
-"edu.au",
-"gov.au",
-"asn.au",
-"id.au",
-"info.au",
-"conf.au",
-"oz.au",
-"act.au",
-"nsw.au",
-"nt.au",
-"qld.au",
-"sa.au",
-"tas.au",
-"vic.au",
-"wa.au",
-"act.edu.au",
-"catholic.edu.au",
-"nsw.edu.au",
-"nt.edu.au",
-"qld.edu.au",
-"sa.edu.au",
-"tas.edu.au",
-"vic.edu.au",
-"wa.edu.au",
-"qld.gov.au",
-"sa.gov.au",
-"tas.gov.au",
-"vic.gov.au",
-"wa.gov.au",
-"education.tas.edu.au",
-"schools.nsw.edu.au",
-"aw",
-"com.aw",
-"ax",
-"az",
-"com.az",
-"net.az",
-"int.az",
-"gov.az",
-"org.az",
-"edu.az",
-"info.az",
-"pp.az",
-"mil.az",
-"name.az",
-"pro.az",
-"biz.az",
-"ba",
-"com.ba",
-"edu.ba",
-"gov.ba",
-"mil.ba",
-"net.ba",
-"org.ba",
-"bb",
-"biz.bb",
-"co.bb",
-"com.bb",
-"edu.bb",
-"gov.bb",
-"info.bb",
-"net.bb",
-"org.bb",
-"store.bb",
-"tv.bb",
-"*.bd",
-"be",
-"ac.be",
-"bf",
-"gov.bf",
-"bg",
-"a.bg",
-"b.bg",
-"c.bg",
-"d.bg",
-"e.bg",
-"f.bg",
-"g.bg",
-"h.bg",
-"i.bg",
-"j.bg",
-"k.bg",
-"l.bg",
-"m.bg",
-"n.bg",
-"o.bg",
-"p.bg",
-"q.bg",
-"r.bg",
-"s.bg",
-"t.bg",
-"u.bg",
-"v.bg",
-"w.bg",
-"x.bg",
-"y.bg",
-"z.bg",
-"0.bg",
-"1.bg",
-"2.bg",
-"3.bg",
-"4.bg",
-"5.bg",
-"6.bg",
-"7.bg",
-"8.bg",
-"9.bg",
-"bh",
-"com.bh",
-"edu.bh",
-"net.bh",
-"org.bh",
-"gov.bh",
-"bi",
-"co.bi",
-"com.bi",
-"edu.bi",
-"or.bi",
-"org.bi",
-"biz",
-"bj",
-"asso.bj",
-"barreau.bj",
-"gouv.bj",
-"bm",
-"com.bm",
-"edu.bm",
-"gov.bm",
-"net.bm",
-"org.bm",
-"bn",
-"com.bn",
-"edu.bn",
-"gov.bn",
-"net.bn",
-"org.bn",
-"bo",
-"com.bo",
-"edu.bo",
-"gob.bo",
-"int.bo",
-"org.bo",
-"net.bo",
-"mil.bo",
-"tv.bo",
-"web.bo",
-"academia.bo",
-"agro.bo",
-"arte.bo",
-"blog.bo",
-"bolivia.bo",
-"ciencia.bo",
-"cooperativa.bo",
-"democracia.bo",
-"deporte.bo",
-"ecologia.bo",
-"economia.bo",
-"empresa.bo",
-"indigena.bo",
-"industria.bo",
-"info.bo",
-"medicina.bo",
-"movimiento.bo",
-"musica.bo",
-"natural.bo",
-"nombre.bo",
-"noticias.bo",
-"patria.bo",
-"politica.bo",
-"profesional.bo",
-"plurinacional.bo",
-"pueblo.bo",
-"revista.bo",
-"salud.bo",
-"tecnologia.bo",
-"tksat.bo",
-"transporte.bo",
-"wiki.bo",
-"br",
-"9guacu.br",
-"abc.br",
-"adm.br",
-"adv.br",
-"agr.br",
-"aju.br",
-"am.br",
-"anani.br",
-"aparecida.br",
-"arq.br",
-"art.br",
-"ato.br",
-"b.br",
-"barueri.br",
-"belem.br",
-"bhz.br",
-"bio.br",
-"blog.br",
-"bmd.br",
-"boavista.br",
-"bsb.br",
-"campinagrande.br",
-"campinas.br",
-"caxias.br",
-"cim.br",
-"cng.br",
-"cnt.br",
-"com.br",
-"contagem.br",
-"coop.br",
-"cri.br",
-"cuiaba.br",
-"curitiba.br",
-"def.br",
-"ecn.br",
-"eco.br",
-"edu.br",
-"emp.br",
-"eng.br",
-"esp.br",
-"etc.br",
-"eti.br",
-"far.br",
-"feira.br",
-"flog.br",
-"floripa.br",
-"fm.br",
-"fnd.br",
-"fortal.br",
-"fot.br",
-"foz.br",
-"fst.br",
-"g12.br",
-"ggf.br",
-"goiania.br",
-"gov.br",
-"ac.gov.br",
-"al.gov.br",
-"am.gov.br",
-"ap.gov.br",
-"ba.gov.br",
-"ce.gov.br",
-"df.gov.br",
-"es.gov.br",
-"go.gov.br",
-"ma.gov.br",
-"mg.gov.br",
-"ms.gov.br",
-"mt.gov.br",
-"pa.gov.br",
-"pb.gov.br",
-"pe.gov.br",
-"pi.gov.br",
-"pr.gov.br",
-"rj.gov.br",
-"rn.gov.br",
-"ro.gov.br",
-"rr.gov.br",
-"rs.gov.br",
-"sc.gov.br",
-"se.gov.br",
-"sp.gov.br",
-"to.gov.br",
-"gru.br",
-"imb.br",
-"ind.br",
-"inf.br",
-"jab.br",
-"jampa.br",
-"jdf.br",
-"joinville.br",
-"jor.br",
-"jus.br",
-"leg.br",
-"lel.br",
-"londrina.br",
-"macapa.br",
-"maceio.br",
-"manaus.br",
-"maringa.br",
-"mat.br",
-"med.br",
-"mil.br",
-"morena.br",
-"mp.br",
-"mus.br",
-"natal.br",
-"net.br",
-"niteroi.br",
-"*.nom.br",
-"not.br",
-"ntr.br",
-"odo.br",
-"ong.br",
-"org.br",
-"osasco.br",
-"palmas.br",
-"poa.br",
-"ppg.br",
-"pro.br",
-"psc.br",
-"psi.br",
-"pvh.br",
-"qsl.br",
-"radio.br",
-"rec.br",
-"recife.br",
-"ribeirao.br",
-"rio.br",
-"riobranco.br",
-"riopreto.br",
-"salvador.br",
-"sampa.br",
-"santamaria.br",
-"santoandre.br",
-"saobernardo.br",
-"saogonca.br",
-"sjc.br",
-"slg.br",
-"slz.br",
-"sorocaba.br",
-"srv.br",
-"taxi.br",
-"tc.br",
-"teo.br",
-"the.br",
-"tmp.br",
-"trd.br",
-"tur.br",
-"tv.br",
-"udi.br",
-"vet.br",
-"vix.br",
-"vlog.br",
-"wiki.br",
-"zlg.br",
-"bs",
-"com.bs",
-"net.bs",
-"org.bs",
-"edu.bs",
-"gov.bs",
-"bt",
-"com.bt",
-"edu.bt",
-"gov.bt",
-"net.bt",
-"org.bt",
-"bv",
-"bw",
-"co.bw",
-"org.bw",
-"by",
-"gov.by",
-"mil.by",
-"com.by",
-"of.by",
-"bz",
-"com.bz",
-"net.bz",
-"org.bz",
-"edu.bz",
-"gov.bz",
-"ca",
-"ab.ca",
-"bc.ca",
-"mb.ca",
-"nb.ca",
-"nf.ca",
-"nl.ca",
-"ns.ca",
-"nt.ca",
-"nu.ca",
-"on.ca",
-"pe.ca",
-"qc.ca",
-"sk.ca",
-"yk.ca",
-"gc.ca",
-"cat",
-"cc",
-"cd",
-"gov.cd",
-"cf",
-"cg",
-"ch",
-"ci",
-"org.ci",
-"or.ci",
-"com.ci",
-"co.ci",
-"edu.ci",
-"ed.ci",
-"ac.ci",
-"net.ci",
-"go.ci",
-"asso.ci",
-"aéroport.ci",
-"int.ci",
-"presse.ci",
-"md.ci",
-"gouv.ci",
-"*.ck",
-"!www.ck",
-"cl",
-"aprendemas.cl",
-"co.cl",
-"gob.cl",
-"gov.cl",
-"mil.cl",
-"cm",
-"co.cm",
-"com.cm",
-"gov.cm",
-"net.cm",
-"cn",
-"ac.cn",
-"com.cn",
-"edu.cn",
-"gov.cn",
-"net.cn",
-"org.cn",
-"mil.cn",
-"公司.cn",
-"网络.cn",
-"網絡.cn",
-"ah.cn",
-"bj.cn",
-"cq.cn",
-"fj.cn",
-"gd.cn",
-"gs.cn",
-"gz.cn",
-"gx.cn",
-"ha.cn",
-"hb.cn",
-"he.cn",
-"hi.cn",
-"hl.cn",
-"hn.cn",
-"jl.cn",
-"js.cn",
-"jx.cn",
-"ln.cn",
-"nm.cn",
-"nx.cn",
-"qh.cn",
-"sc.cn",
-"sd.cn",
-"sh.cn",
-"sn.cn",
-"sx.cn",
-"tj.cn",
-"xj.cn",
-"xz.cn",
-"yn.cn",
-"zj.cn",
-"hk.cn",
-"mo.cn",
-"tw.cn",
-"co",
-"arts.co",
-"com.co",
-"edu.co",
-"firm.co",
-"gov.co",
-"info.co",
-"int.co",
-"mil.co",
-"net.co",
-"nom.co",
-"org.co",
-"rec.co",
-"web.co",
-"com",
-"coop",
-"cr",
-"ac.cr",
-"co.cr",
-"ed.cr",
-"fi.cr",
-"go.cr",
-"or.cr",
-"sa.cr",
-"cu",
-"com.cu",
-"edu.cu",
-"org.cu",
-"net.cu",
-"gov.cu",
-"inf.cu",
-"cv",
-"cw",
-"com.cw",
-"edu.cw",
-"net.cw",
-"org.cw",
-"cx",
-"gov.cx",
-"cy",
-"ac.cy",
-"biz.cy",
-"com.cy",
-"ekloges.cy",
-"gov.cy",
-"ltd.cy",
-"name.cy",
-"net.cy",
-"org.cy",
-"parliament.cy",
-"press.cy",
-"pro.cy",
-"tm.cy",
-"cz",
-"de",
-"dj",
-"dk",
-"dm",
-"com.dm",
-"net.dm",
-"org.dm",
-"edu.dm",
-"gov.dm",
-"do",
-"art.do",
-"com.do",
-"edu.do",
-"gob.do",
-"gov.do",
-"mil.do",
-"net.do",
-"org.do",
-"sld.do",
-"web.do",
-"dz",
-"com.dz",
-"org.dz",
-"net.dz",
-"gov.dz",
-"edu.dz",
-"asso.dz",
-"pol.dz",
-"art.dz",
-"ec",
-"com.ec",
-"info.ec",
-"net.ec",
-"fin.ec",
-"k12.ec",
-"med.ec",
-"pro.ec",
-"org.ec",
-"edu.ec",
-"gov.ec",
-"gob.ec",
-"mil.ec",
-"edu",
-"ee",
-"edu.ee",
-"gov.ee",
-"riik.ee",
-"lib.ee",
-"med.ee",
-"com.ee",
-"pri.ee",
-"aip.ee",
-"org.ee",
-"fie.ee",
-"eg",
-"com.eg",
-"edu.eg",
-"eun.eg",
-"gov.eg",
-"mil.eg",
-"name.eg",
-"net.eg",
-"org.eg",
-"sci.eg",
-"*.er",
-"es",
-"com.es",
-"nom.es",
-"org.es",
-"gob.es",
-"edu.es",
-"et",
-"com.et",
-"gov.et",
-"org.et",
-"edu.et",
-"biz.et",
-"name.et",
-"info.et",
-"net.et",
-"eu",
-"fi",
-"aland.fi",
-"fj",
-"ac.fj",
-"biz.fj",
-"com.fj",
-"gov.fj",
-"info.fj",
-"mil.fj",
-"name.fj",
-"net.fj",
-"org.fj",
-"pro.fj",
-"*.fk",
-"fm",
-"fo",
-"fr",
-"asso.fr",
-"com.fr",
-"gouv.fr",
-"nom.fr",
-"prd.fr",
-"tm.fr",
-"aeroport.fr",
-"avocat.fr",
-"avoues.fr",
-"cci.fr",
-"chambagri.fr",
-"chirurgiens-dentistes.fr",
-"experts-comptables.fr",
-"geometre-expert.fr",
-"greta.fr",
-"huissier-justice.fr",
-"medecin.fr",
-"notaires.fr",
-"pharmacien.fr",
-"port.fr",
-"veterinaire.fr",
-"ga",
-"gb",
-"gd",
-"ge",
-"com.ge",
-"edu.ge",
-"gov.ge",
-"org.ge",
-"mil.ge",
-"net.ge",
-"pvt.ge",
-"gf",
-"gg",
-"co.gg",
-"net.gg",
-"org.gg",
-"gh",
-"com.gh",
-"edu.gh",
-"gov.gh",
-"org.gh",
-"mil.gh",
-"gi",
-"com.gi",
-"ltd.gi",
-"gov.gi",
-"mod.gi",
-"edu.gi",
-"org.gi",
-"gl",
-"co.gl",
-"com.gl",
-"edu.gl",
-"net.gl",
-"org.gl",
-"gm",
-"gn",
-"ac.gn",
-"com.gn",
-"edu.gn",
-"gov.gn",
-"org.gn",
-"net.gn",
-"gov",
-"gp",
-"com.gp",
-"net.gp",
-"mobi.gp",
-"edu.gp",
-"org.gp",
-"asso.gp",
-"gq",
-"gr",
-"com.gr",
-"edu.gr",
-"net.gr",
-"org.gr",
-"gov.gr",
-"gs",
-"gt",
-"com.gt",
-"edu.gt",
-"gob.gt",
-"ind.gt",
-"mil.gt",
-"net.gt",
-"org.gt",
-"gu",
-"com.gu",
-"edu.gu",
-"gov.gu",
-"guam.gu",
-"info.gu",
-"net.gu",
-"org.gu",
-"web.gu",
-"gw",
-"gy",
-"co.gy",
-"com.gy",
-"edu.gy",
-"gov.gy",
-"net.gy",
-"org.gy",
-"hk",
-"com.hk",
-"edu.hk",
-"gov.hk",
-"idv.hk",
-"net.hk",
-"org.hk",
-"公司.hk",
-"教育.hk",
-"敎育.hk",
-"政府.hk",
-"個人.hk",
-"个人.hk",
-"箇人.hk",
-"網络.hk",
-"网络.hk",
-"组織.hk",
-"網絡.hk",
-"网絡.hk",
-"组织.hk",
-"組織.hk",
-"組织.hk",
-"hm",
-"hn",
-"com.hn",
-"edu.hn",
-"org.hn",
-"net.hn",
-"mil.hn",
-"gob.hn",
-"hr",
-"iz.hr",
-"from.hr",
-"name.hr",
-"com.hr",
-"ht",
-"com.ht",
-"shop.ht",
-"firm.ht",
-"info.ht",
-"adult.ht",
-"net.ht",
-"pro.ht",
-"org.ht",
-"med.ht",
-"art.ht",
-"coop.ht",
-"pol.ht",
-"asso.ht",
-"edu.ht",
-"rel.ht",
-"gouv.ht",
-"perso.ht",
-"hu",
-"co.hu",
-"info.hu",
-"org.hu",
-"priv.hu",
-"sport.hu",
-"tm.hu",
-"2000.hu",
-"agrar.hu",
-"bolt.hu",
-"casino.hu",
-"city.hu",
-"erotica.hu",
-"erotika.hu",
-"film.hu",
-"forum.hu",
-"games.hu",
-"hotel.hu",
-"ingatlan.hu",
-"jogasz.hu",
-"konyvelo.hu",
-"lakas.hu",
-"media.hu",
-"news.hu",
-"reklam.hu",
-"sex.hu",
-"shop.hu",
-"suli.hu",
-"szex.hu",
-"tozsde.hu",
-"utazas.hu",
-"video.hu",
-"id",
-"ac.id",
-"biz.id",
-"co.id",
-"desa.id",
-"go.id",
-"mil.id",
-"my.id",
-"net.id",
-"or.id",
-"ponpes.id",
-"sch.id",
-"web.id",
-"ie",
-"gov.ie",
-"il",
-"ac.il",
-"co.il",
-"gov.il",
-"idf.il",
-"k12.il",
-"muni.il",
-"net.il",
-"org.il",
-"im",
-"ac.im",
-"co.im",
-"com.im",
-"ltd.co.im",
-"net.im",
-"org.im",
-"plc.co.im",
-"tt.im",
-"tv.im",
-"in",
-"co.in",
-"firm.in",
-"net.in",
-"org.in",
-"gen.in",
-"ind.in",
-"nic.in",
-"ac.in",
-"edu.in",
-"res.in",
-"gov.in",
-"mil.in",
-"info",
-"int",
-"eu.int",
-"io",
-"com.io",
-"iq",
-"gov.iq",
-"edu.iq",
-"mil.iq",
-"com.iq",
-"org.iq",
-"net.iq",
-"ir",
-"ac.ir",
-"co.ir",
-"gov.ir",
-"id.ir",
-"net.ir",
-"org.ir",
-"sch.ir",
-"ایران.ir",
-"ايران.ir",
-"is",
-"net.is",
-"com.is",
-"edu.is",
-"gov.is",
-"org.is",
-"int.is",
-"it",
-"gov.it",
-"edu.it",
-"abr.it",
-"abruzzo.it",
-"aosta-valley.it",
-"aostavalley.it",
-"bas.it",
-"basilicata.it",
-"cal.it",
-"calabria.it",
-"cam.it",
-"campania.it",
-"emilia-romagna.it",
-"emiliaromagna.it",
-"emr.it",
-"friuli-v-giulia.it",
-"friuli-ve-giulia.it",
-"friuli-vegiulia.it",
-"friuli-venezia-giulia.it",
-"friuli-veneziagiulia.it",
-"friuli-vgiulia.it",
-"friuliv-giulia.it",
-"friulive-giulia.it",
-"friulivegiulia.it",
-"friulivenezia-giulia.it",
-"friuliveneziagiulia.it",
-"friulivgiulia.it",
-"fvg.it",
-"laz.it",
-"lazio.it",
-"lig.it",
-"liguria.it",
-"lom.it",
-"lombardia.it",
-"lombardy.it",
-"lucania.it",
-"mar.it",
-"marche.it",
-"mol.it",
-"molise.it",
-"piedmont.it",
-"piemonte.it",
-"pmn.it",
-"pug.it",
-"puglia.it",
-"sar.it",
-"sardegna.it",
-"sardinia.it",
-"sic.it",
-"sicilia.it",
-"sicily.it",
-"taa.it",
-"tos.it",
-"toscana.it",
-"trentin-sud-tirol.it",
-"trentin-süd-tirol.it",
-"trentin-sudtirol.it",
-"trentin-südtirol.it",
-"trentin-sued-tirol.it",
-"trentin-suedtirol.it",
-"trentino-a-adige.it",
-"trentino-aadige.it",
-"trentino-alto-adige.it",
-"trentino-altoadige.it",
-"trentino-s-tirol.it",
-"trentino-stirol.it",
-"trentino-sud-tirol.it",
-"trentino-süd-tirol.it",
-"trentino-sudtirol.it",
-"trentino-südtirol.it",
-"trentino-sued-tirol.it",
-"trentino-suedtirol.it",
-"trentino.it",
-"trentinoa-adige.it",
-"trentinoaadige.it",
-"trentinoalto-adige.it",
-"trentinoaltoadige.it",
-"trentinos-tirol.it",
-"trentinostirol.it",
-"trentinosud-tirol.it",
-"trentinosüd-tirol.it",
-"trentinosudtirol.it",
-"trentinosüdtirol.it",
-"trentinosued-tirol.it",
-"trentinosuedtirol.it",
-"trentinsud-tirol.it",
-"trentinsüd-tirol.it",
-"trentinsudtirol.it",
-"trentinsüdtirol.it",
-"trentinsued-tirol.it",
-"trentinsuedtirol.it",
-"tuscany.it",
-"umb.it",
-"umbria.it",
-"val-d-aosta.it",
-"val-daosta.it",
-"vald-aosta.it",
-"valdaosta.it",
-"valle-aosta.it",
-"valle-d-aosta.it",
-"valle-daosta.it",
-"valleaosta.it",
-"valled-aosta.it",
-"valledaosta.it",
-"vallee-aoste.it",
-"vallée-aoste.it",
-"vallee-d-aoste.it",
-"vallée-d-aoste.it",
-"valleeaoste.it",
-"valléeaoste.it",
-"valleedaoste.it",
-"valléedaoste.it",
-"vao.it",
-"vda.it",
-"ven.it",
-"veneto.it",
-"ag.it",
-"agrigento.it",
-"al.it",
-"alessandria.it",
-"alto-adige.it",
-"altoadige.it",
-"an.it",
-"ancona.it",
-"andria-barletta-trani.it",
-"andria-trani-barletta.it",
-"andriabarlettatrani.it",
-"andriatranibarletta.it",
-"ao.it",
-"aosta.it",
-"aoste.it",
-"ap.it",
-"aq.it",
-"aquila.it",
-"ar.it",
-"arezzo.it",
-"ascoli-piceno.it",
-"ascolipiceno.it",
-"asti.it",
-"at.it",
-"av.it",
-"avellino.it",
-"ba.it",
-"balsan-sudtirol.it",
-"balsan-südtirol.it",
-"balsan-suedtirol.it",
-"balsan.it",
-"bari.it",
-"barletta-trani-andria.it",
-"barlettatraniandria.it",
-"belluno.it",
-"benevento.it",
-"bergamo.it",
-"bg.it",
-"bi.it",
-"biella.it",
-"bl.it",
-"bn.it",
-"bo.it",
-"bologna.it",
-"bolzano-altoadige.it",
-"bolzano.it",
-"bozen-sudtirol.it",
-"bozen-südtirol.it",
-"bozen-suedtirol.it",
-"bozen.it",
-"br.it",
-"brescia.it",
-"brindisi.it",
-"bs.it",
-"bt.it",
-"bulsan-sudtirol.it",
-"bulsan-südtirol.it",
-"bulsan-suedtirol.it",
-"bulsan.it",
-"bz.it",
-"ca.it",
-"cagliari.it",
-"caltanissetta.it",
-"campidano-medio.it",
-"campidanomedio.it",
-"campobasso.it",
-"carbonia-iglesias.it",
-"carboniaiglesias.it",
-"carrara-massa.it",
-"carraramassa.it",
-"caserta.it",
-"catania.it",
-"catanzaro.it",
-"cb.it",
-"ce.it",
-"cesena-forli.it",
-"cesena-forlì.it",
-"cesenaforli.it",
-"cesenaforlì.it",
-"ch.it",
-"chieti.it",
-"ci.it",
-"cl.it",
-"cn.it",
-"co.it",
-"como.it",
-"cosenza.it",
-"cr.it",
-"cremona.it",
-"crotone.it",
-"cs.it",
-"ct.it",
-"cuneo.it",
-"cz.it",
-"dell-ogliastra.it",
-"dellogliastra.it",
-"en.it",
-"enna.it",
-"fc.it",
-"fe.it",
-"fermo.it",
-"ferrara.it",
-"fg.it",
-"fi.it",
-"firenze.it",
-"florence.it",
-"fm.it",
-"foggia.it",
-"forli-cesena.it",
-"forlì-cesena.it",
-"forlicesena.it",
-"forlìcesena.it",
-"fr.it",
-"frosinone.it",
-"ge.it",
-"genoa.it",
-"genova.it",
-"go.it",
-"gorizia.it",
-"gr.it",
-"grosseto.it",
-"iglesias-carbonia.it",
-"iglesiascarbonia.it",
-"im.it",
-"imperia.it",
-"is.it",
-"isernia.it",
-"kr.it",
-"la-spezia.it",
-"laquila.it",
-"laspezia.it",
-"latina.it",
-"lc.it",
-"le.it",
-"lecce.it",
-"lecco.it",
-"li.it",
-"livorno.it",
-"lo.it",
-"lodi.it",
-"lt.it",
-"lu.it",
-"lucca.it",
-"macerata.it",
-"mantova.it",
-"massa-carrara.it",
-"massacarrara.it",
-"matera.it",
-"mb.it",
-"mc.it",
-"me.it",
-"medio-campidano.it",
-"mediocampidano.it",
-"messina.it",
-"mi.it",
-"milan.it",
-"milano.it",
-"mn.it",
-"mo.it",
-"modena.it",
-"monza-brianza.it",
-"monza-e-della-brianza.it",
-"monza.it",
-"monzabrianza.it",
-"monzaebrianza.it",
-"monzaedellabrianza.it",
-"ms.it",
-"mt.it",
-"na.it",
-"naples.it",
-"napoli.it",
-"no.it",
-"novara.it",
-"nu.it",
-"nuoro.it",
-"og.it",
-"ogliastra.it",
-"olbia-tempio.it",
-"olbiatempio.it",
-"or.it",
-"oristano.it",
-"ot.it",
-"pa.it",
-"padova.it",
-"padua.it",
-"palermo.it",
-"parma.it",
-"pavia.it",
-"pc.it",
-"pd.it",
-"pe.it",
-"perugia.it",
-"pesaro-urbino.it",
-"pesarourbino.it",
-"pescara.it",
-"pg.it",
-"pi.it",
-"piacenza.it",
-"pisa.it",
-"pistoia.it",
-"pn.it",
-"po.it",
-"pordenone.it",
-"potenza.it",
-"pr.it",
-"prato.it",
-"pt.it",
-"pu.it",
-"pv.it",
-"pz.it",
-"ra.it",
-"ragusa.it",
-"ravenna.it",
-"rc.it",
-"re.it",
-"reggio-calabria.it",
-"reggio-emilia.it",
-"reggiocalabria.it",
-"reggioemilia.it",
-"rg.it",
-"ri.it",
-"rieti.it",
-"rimini.it",
-"rm.it",
-"rn.it",
-"ro.it",
-"roma.it",
-"rome.it",
-"rovigo.it",
-"sa.it",
-"salerno.it",
-"sassari.it",
-"savona.it",
-"si.it",
-"siena.it",
-"siracusa.it",
-"so.it",
-"sondrio.it",
-"sp.it",
-"sr.it",
-"ss.it",
-"suedtirol.it",
-"südtirol.it",
-"sv.it",
-"ta.it",
-"taranto.it",
-"te.it",
-"tempio-olbia.it",
-"tempioolbia.it",
-"teramo.it",
-"terni.it",
-"tn.it",
-"to.it",
-"torino.it",
-"tp.it",
-"tr.it",
-"trani-andria-barletta.it",
-"trani-barletta-andria.it",
-"traniandriabarletta.it",
-"tranibarlettaandria.it",
-"trapani.it",
-"trento.it",
-"treviso.it",
-"trieste.it",
-"ts.it",
-"turin.it",
-"tv.it",
-"ud.it",
-"udine.it",
-"urbino-pesaro.it",
-"urbinopesaro.it",
-"va.it",
-"varese.it",
-"vb.it",
-"vc.it",
-"ve.it",
-"venezia.it",
-"venice.it",
-"verbania.it",
-"vercelli.it",
-"verona.it",
-"vi.it",
-"vibo-valentia.it",
-"vibovalentia.it",
-"vicenza.it",
-"viterbo.it",
-"vr.it",
-"vs.it",
-"vt.it",
-"vv.it",
-"je",
-"co.je",
-"net.je",
-"org.je",
-"*.jm",
-"jo",
-"com.jo",
-"org.jo",
-"net.jo",
-"edu.jo",
-"sch.jo",
-"gov.jo",
-"mil.jo",
-"name.jo",
-"jobs",
-"jp",
-"ac.jp",
-"ad.jp",
-"co.jp",
-"ed.jp",
-"go.jp",
-"gr.jp",
-"lg.jp",
-"ne.jp",
-"or.jp",
-"aichi.jp",
-"akita.jp",
-"aomori.jp",
-"chiba.jp",
-"ehime.jp",
-"fukui.jp",
-"fukuoka.jp",
-"fukushima.jp",
-"gifu.jp",
-"gunma.jp",
-"hiroshima.jp",
-"hokkaido.jp",
-"hyogo.jp",
-"ibaraki.jp",
-"ishikawa.jp",
-"iwate.jp",
-"kagawa.jp",
-"kagoshima.jp",
-"kanagawa.jp",
-"kochi.jp",
-"kumamoto.jp",
-"kyoto.jp",
-"mie.jp",
-"miyagi.jp",
-"miyazaki.jp",
-"nagano.jp",
-"nagasaki.jp",
-"nara.jp",
-"niigata.jp",
-"oita.jp",
-"okayama.jp",
-"okinawa.jp",
-"osaka.jp",
-"saga.jp",
-"saitama.jp",
-"shiga.jp",
-"shimane.jp",
-"shizuoka.jp",
-"tochigi.jp",
-"tokushima.jp",
-"tokyo.jp",
-"tottori.jp",
-"toyama.jp",
-"wakayama.jp",
-"yamagata.jp",
-"yamaguchi.jp",
-"yamanashi.jp",
-"栃木.jp",
-"愛知.jp",
-"愛媛.jp",
-"兵庫.jp",
-"熊本.jp",
-"茨城.jp",
-"北海道.jp",
-"千葉.jp",
-"和歌山.jp",
-"長崎.jp",
-"長野.jp",
-"新潟.jp",
-"青森.jp",
-"静岡.jp",
-"東京.jp",
-"石川.jp",
-"埼玉.jp",
-"三重.jp",
-"京都.jp",
-"佐賀.jp",
-"大分.jp",
-"大阪.jp",
-"奈良.jp",
-"宮城.jp",
-"宮崎.jp",
-"富山.jp",
-"山口.jp",
-"山形.jp",
-"山梨.jp",
-"岩手.jp",
-"岐阜.jp",
-"岡山.jp",
-"島根.jp",
-"広島.jp",
-"徳島.jp",
-"沖縄.jp",
-"滋賀.jp",
-"神奈川.jp",
-"福井.jp",
-"福岡.jp",
-"福島.jp",
-"秋田.jp",
-"群馬.jp",
-"香川.jp",
-"高知.jp",
-"鳥取.jp",
-"鹿児島.jp",
-"*.kawasaki.jp",
-"*.kitakyushu.jp",
-"*.kobe.jp",
-"*.nagoya.jp",
-"*.sapporo.jp",
-"*.sendai.jp",
-"*.yokohama.jp",
-"!city.kawasaki.jp",
-"!city.kitakyushu.jp",
-"!city.kobe.jp",
-"!city.nagoya.jp",
-"!city.sapporo.jp",
-"!city.sendai.jp",
-"!city.yokohama.jp",
-"aisai.aichi.jp",
-"ama.aichi.jp",
-"anjo.aichi.jp",
-"asuke.aichi.jp",
-"chiryu.aichi.jp",
-"chita.aichi.jp",
-"fuso.aichi.jp",
-"gamagori.aichi.jp",
-"handa.aichi.jp",
-"hazu.aichi.jp",
-"hekinan.aichi.jp",
-"higashiura.aichi.jp",
-"ichinomiya.aichi.jp",
-"inazawa.aichi.jp",
-"inuyama.aichi.jp",
-"isshiki.aichi.jp",
-"iwakura.aichi.jp",
-"kanie.aichi.jp",
-"kariya.aichi.jp",
-"kasugai.aichi.jp",
-"kira.aichi.jp",
-"kiyosu.aichi.jp",
-"komaki.aichi.jp",
-"konan.aichi.jp",
-"kota.aichi.jp",
-"mihama.aichi.jp",
-"miyoshi.aichi.jp",
-"nishio.aichi.jp",
-"nisshin.aichi.jp",
-"obu.aichi.jp",
-"oguchi.aichi.jp",
-"oharu.aichi.jp",
-"okazaki.aichi.jp",
-"owariasahi.aichi.jp",
-"seto.aichi.jp",
-"shikatsu.aichi.jp",
-"shinshiro.aichi.jp",
-"shitara.aichi.jp",
-"tahara.aichi.jp",
-"takahama.aichi.jp",
-"tobishima.aichi.jp",
-"toei.aichi.jp",
-"togo.aichi.jp",
-"tokai.aichi.jp",
-"tokoname.aichi.jp",
-"toyoake.aichi.jp",
-"toyohashi.aichi.jp",
-"toyokawa.aichi.jp",
-"toyone.aichi.jp",
-"toyota.aichi.jp",
-"tsushima.aichi.jp",
-"yatomi.aichi.jp",
-"akita.akita.jp",
-"daisen.akita.jp",
-"fujisato.akita.jp",
-"gojome.akita.jp",
-"hachirogata.akita.jp",
-"happou.akita.jp",
-"higashinaruse.akita.jp",
-"honjo.akita.jp",
-"honjyo.akita.jp",
-"ikawa.akita.jp",
-"kamikoani.akita.jp",
-"kamioka.akita.jp",
-"katagami.akita.jp",
-"kazuno.akita.jp",
-"kitaakita.akita.jp",
-"kosaka.akita.jp",
-"kyowa.akita.jp",
-"misato.akita.jp",
-"mitane.akita.jp",
-"moriyoshi.akita.jp",
-"nikaho.akita.jp",
-"noshiro.akita.jp",
-"odate.akita.jp",
-"oga.akita.jp",
-"ogata.akita.jp",
-"semboku.akita.jp",
-"yokote.akita.jp",
-"yurihonjo.akita.jp",
-"aomori.aomori.jp",
-"gonohe.aomori.jp",
-"hachinohe.aomori.jp",
-"hashikami.aomori.jp",
-"hiranai.aomori.jp",
-"hirosaki.aomori.jp",
-"itayanagi.aomori.jp",
-"kuroishi.aomori.jp",
-"misawa.aomori.jp",
-"mutsu.aomori.jp",
-"nakadomari.aomori.jp",
-"noheji.aomori.jp",
-"oirase.aomori.jp",
-"owani.aomori.jp",
-"rokunohe.aomori.jp",
-"sannohe.aomori.jp",
-"shichinohe.aomori.jp",
-"shingo.aomori.jp",
-"takko.aomori.jp",
-"towada.aomori.jp",
-"tsugaru.aomori.jp",
-"tsuruta.aomori.jp",
-"abiko.chiba.jp",
-"asahi.chiba.jp",
-"chonan.chiba.jp",
-"chosei.chiba.jp",
-"choshi.chiba.jp",
-"chuo.chiba.jp",
-"funabashi.chiba.jp",
-"futtsu.chiba.jp",
-"hanamigawa.chiba.jp",
-"ichihara.chiba.jp",
-"ichikawa.chiba.jp",
-"ichinomiya.chiba.jp",
-"inzai.chiba.jp",
-"isumi.chiba.jp",
-"kamagaya.chiba.jp",
-"kamogawa.chiba.jp",
-"kashiwa.chiba.jp",
-"katori.chiba.jp",
-"katsuura.chiba.jp",
-"kimitsu.chiba.jp",
-"kisarazu.chiba.jp",
-"kozaki.chiba.jp",
-"kujukuri.chiba.jp",
-"kyonan.chiba.jp",
-"matsudo.chiba.jp",
-"midori.chiba.jp",
-"mihama.chiba.jp",
-"minamiboso.chiba.jp",
-"mobara.chiba.jp",
-"mutsuzawa.chiba.jp",
-"nagara.chiba.jp",
-"nagareyama.chiba.jp",
-"narashino.chiba.jp",
-"narita.chiba.jp",
-"noda.chiba.jp",
-"oamishirasato.chiba.jp",
-"omigawa.chiba.jp",
-"onjuku.chiba.jp",
-"otaki.chiba.jp",
-"sakae.chiba.jp",
-"sakura.chiba.jp",
-"shimofusa.chiba.jp",
-"shirako.chiba.jp",
-"shiroi.chiba.jp",
-"shisui.chiba.jp",
-"sodegaura.chiba.jp",
-"sosa.chiba.jp",
-"tako.chiba.jp",
-"tateyama.chiba.jp",
-"togane.chiba.jp",
-"tohnosho.chiba.jp",
-"tomisato.chiba.jp",
-"urayasu.chiba.jp",
-"yachimata.chiba.jp",
-"yachiyo.chiba.jp",
-"yokaichiba.chiba.jp",
-"yokoshibahikari.chiba.jp",
-"yotsukaido.chiba.jp",
-"ainan.ehime.jp",
-"honai.ehime.jp",
-"ikata.ehime.jp",
-"imabari.ehime.jp",
-"iyo.ehime.jp",
-"kamijima.ehime.jp",
-"kihoku.ehime.jp",
-"kumakogen.ehime.jp",
-"masaki.ehime.jp",
-"matsuno.ehime.jp",
-"matsuyama.ehime.jp",
-"namikata.ehime.jp",
-"niihama.ehime.jp",
-"ozu.ehime.jp",
-"saijo.ehime.jp",
-"seiyo.ehime.jp",
-"shikokuchuo.ehime.jp",
-"tobe.ehime.jp",
-"toon.ehime.jp",
-"uchiko.ehime.jp",
-"uwajima.ehime.jp",
-"yawatahama.ehime.jp",
-"echizen.fukui.jp",
-"eiheiji.fukui.jp",
-"fukui.fukui.jp",
-"ikeda.fukui.jp",
-"katsuyama.fukui.jp",
-"mihama.fukui.jp",
-"minamiechizen.fukui.jp",
-"obama.fukui.jp",
-"ohi.fukui.jp",
-"ono.fukui.jp",
-"sabae.fukui.jp",
-"sakai.fukui.jp",
-"takahama.fukui.jp",
-"tsuruga.fukui.jp",
-"wakasa.fukui.jp",
-"ashiya.fukuoka.jp",
-"buzen.fukuoka.jp",
-"chikugo.fukuoka.jp",
-"chikuho.fukuoka.jp",
-"chikujo.fukuoka.jp",
-"chikushino.fukuoka.jp",
-"chikuzen.fukuoka.jp",
-"chuo.fukuoka.jp",
-"dazaifu.fukuoka.jp",
-"fukuchi.fukuoka.jp",
-"hakata.fukuoka.jp",
-"higashi.fukuoka.jp",
-"hirokawa.fukuoka.jp",
-"hisayama.fukuoka.jp",
-"iizuka.fukuoka.jp",
-"inatsuki.fukuoka.jp",
-"kaho.fukuoka.jp",
-"kasuga.fukuoka.jp",
-"kasuya.fukuoka.jp",
-"kawara.fukuoka.jp",
-"keisen.fukuoka.jp",
-"koga.fukuoka.jp",
-"kurate.fukuoka.jp",
-"kurogi.fukuoka.jp",
-"kurume.fukuoka.jp",
-"minami.fukuoka.jp",
-"miyako.fukuoka.jp",
-"miyama.fukuoka.jp",
-"miyawaka.fukuoka.jp",
-"mizumaki.fukuoka.jp",
-"munakata.fukuoka.jp",
-"nakagawa.fukuoka.jp",
-"nakama.fukuoka.jp",
-"nishi.fukuoka.jp",
-"nogata.fukuoka.jp",
-"ogori.fukuoka.jp",
-"okagaki.fukuoka.jp",
-"okawa.fukuoka.jp",
-"oki.fukuoka.jp",
-"omuta.fukuoka.jp",
-"onga.fukuoka.jp",
-"onojo.fukuoka.jp",
-"oto.fukuoka.jp",
-"saigawa.fukuoka.jp",
-"sasaguri.fukuoka.jp",
-"shingu.fukuoka.jp",
-"shinyoshitomi.fukuoka.jp",
-"shonai.fukuoka.jp",
-"soeda.fukuoka.jp",
-"sue.fukuoka.jp",
-"tachiarai.fukuoka.jp",
-"tagawa.fukuoka.jp",
-"takata.fukuoka.jp",
-"toho.fukuoka.jp",
-"toyotsu.fukuoka.jp",
-"tsuiki.fukuoka.jp",
-"ukiha.fukuoka.jp",
-"umi.fukuoka.jp",
-"usui.fukuoka.jp",
-"yamada.fukuoka.jp",
-"yame.fukuoka.jp",
-"yanagawa.fukuoka.jp",
-"yukuhashi.fukuoka.jp",
-"aizubange.fukushima.jp",
-"aizumisato.fukushima.jp",
-"aizuwakamatsu.fukushima.jp",
-"asakawa.fukushima.jp",
-"bandai.fukushima.jp",
-"date.fukushima.jp",
-"fukushima.fukushima.jp",
-"furudono.fukushima.jp",
-"futaba.fukushima.jp",
-"hanawa.fukushima.jp",
-"higashi.fukushima.jp",
-"hirata.fukushima.jp",
-"hirono.fukushima.jp",
-"iitate.fukushima.jp",
-"inawashiro.fukushima.jp",
-"ishikawa.fukushima.jp",
-"iwaki.fukushima.jp",
-"izumizaki.fukushima.jp",
-"kagamiishi.fukushima.jp",
-"kaneyama.fukushima.jp",
-"kawamata.fukushima.jp",
-"kitakata.fukushima.jp",
-"kitashiobara.fukushima.jp",
-"koori.fukushima.jp",
-"koriyama.fukushima.jp",
-"kunimi.fukushima.jp",
-"miharu.fukushima.jp",
-"mishima.fukushima.jp",
-"namie.fukushima.jp",
-"nango.fukushima.jp",
-"nishiaizu.fukushima.jp",
-"nishigo.fukushima.jp",
-"okuma.fukushima.jp",
-"omotego.fukushima.jp",
-"ono.fukushima.jp",
-"otama.fukushima.jp",
-"samegawa.fukushima.jp",
-"shimogo.fukushima.jp",
-"shirakawa.fukushima.jp",
-"showa.fukushima.jp",
-"soma.fukushima.jp",
-"sukagawa.fukushima.jp",
-"taishin.fukushima.jp",
-"tamakawa.fukushima.jp",
-"tanagura.fukushima.jp",
-"tenei.fukushima.jp",
-"yabuki.fukushima.jp",
-"yamato.fukushima.jp",
-"yamatsuri.fukushima.jp",
-"yanaizu.fukushima.jp",
-"yugawa.fukushima.jp",
-"anpachi.gifu.jp",
-"ena.gifu.jp",
-"gifu.gifu.jp",
-"ginan.gifu.jp",
-"godo.gifu.jp",
-"gujo.gifu.jp",
-"hashima.gifu.jp",
-"hichiso.gifu.jp",
-"hida.gifu.jp",
-"higashishirakawa.gifu.jp",
-"ibigawa.gifu.jp",
-"ikeda.gifu.jp",
-"kakamigahara.gifu.jp",
-"kani.gifu.jp",
-"kasahara.gifu.jp",
-"kasamatsu.gifu.jp",
-"kawaue.gifu.jp",
-"kitagata.gifu.jp",
-"mino.gifu.jp",
-"minokamo.gifu.jp",
-"mitake.gifu.jp",
-"mizunami.gifu.jp",
-"motosu.gifu.jp",
-"nakatsugawa.gifu.jp",
-"ogaki.gifu.jp",
-"sakahogi.gifu.jp",
-"seki.gifu.jp",
-"sekigahara.gifu.jp",
-"shirakawa.gifu.jp",
-"tajimi.gifu.jp",
-"takayama.gifu.jp",
-"tarui.gifu.jp",
-"toki.gifu.jp",
-"tomika.gifu.jp",
-"wanouchi.gifu.jp",
-"yamagata.gifu.jp",
-"yaotsu.gifu.jp",
-"yoro.gifu.jp",
-"annaka.gunma.jp",
-"chiyoda.gunma.jp",
-"fujioka.gunma.jp",
-"higashiagatsuma.gunma.jp",
-"isesaki.gunma.jp",
-"itakura.gunma.jp",
-"kanna.gunma.jp",
-"kanra.gunma.jp",
-"katashina.gunma.jp",
-"kawaba.gunma.jp",
-"kiryu.gunma.jp",
-"kusatsu.gunma.jp",
-"maebashi.gunma.jp",
-"meiwa.gunma.jp",
-"midori.gunma.jp",
-"minakami.gunma.jp",
-"naganohara.gunma.jp",
-"nakanojo.gunma.jp",
-"nanmoku.gunma.jp",
-"numata.gunma.jp",
-"oizumi.gunma.jp",
-"ora.gunma.jp",
-"ota.gunma.jp",
-"shibukawa.gunma.jp",
-"shimonita.gunma.jp",
-"shinto.gunma.jp",
-"showa.gunma.jp",
-"takasaki.gunma.jp",
-"takayama.gunma.jp",
-"tamamura.gunma.jp",
-"tatebayashi.gunma.jp",
-"tomioka.gunma.jp",
-"tsukiyono.gunma.jp",
-"tsumagoi.gunma.jp",
-"ueno.gunma.jp",
-"yoshioka.gunma.jp",
-"asaminami.hiroshima.jp",
-"daiwa.hiroshima.jp",
-"etajima.hiroshima.jp",
-"fuchu.hiroshima.jp",
-"fukuyama.hiroshima.jp",
-"hatsukaichi.hiroshima.jp",
-"higashihiroshima.hiroshima.jp",
-"hongo.hiroshima.jp",
-"jinsekikogen.hiroshima.jp",
-"kaita.hiroshima.jp",
-"kui.hiroshima.jp",
-"kumano.hiroshima.jp",
-"kure.hiroshima.jp",
-"mihara.hiroshima.jp",
-"miyoshi.hiroshima.jp",
-"naka.hiroshima.jp",
-"onomichi.hiroshima.jp",
-"osakikamijima.hiroshima.jp",
-"otake.hiroshima.jp",
-"saka.hiroshima.jp",
-"sera.hiroshima.jp",
-"seranishi.hiroshima.jp",
-"shinichi.hiroshima.jp",
-"shobara.hiroshima.jp",
-"takehara.hiroshima.jp",
-"abashiri.hokkaido.jp",
-"abira.hokkaido.jp",
-"aibetsu.hokkaido.jp",
-"akabira.hokkaido.jp",
-"akkeshi.hokkaido.jp",
-"asahikawa.hokkaido.jp",
-"ashibetsu.hokkaido.jp",
-"ashoro.hokkaido.jp",
-"assabu.hokkaido.jp",
-"atsuma.hokkaido.jp",
-"bibai.hokkaido.jp",
-"biei.hokkaido.jp",
-"bifuka.hokkaido.jp",
-"bihoro.hokkaido.jp",
-"biratori.hokkaido.jp",
-"chippubetsu.hokkaido.jp",
-"chitose.hokkaido.jp",
-"date.hokkaido.jp",
-"ebetsu.hokkaido.jp",
-"embetsu.hokkaido.jp",
-"eniwa.hokkaido.jp",
-"erimo.hokkaido.jp",
-"esan.hokkaido.jp",
-"esashi.hokkaido.jp",
-"fukagawa.hokkaido.jp",
-"fukushima.hokkaido.jp",
-"furano.hokkaido.jp",
-"furubira.hokkaido.jp",
-"haboro.hokkaido.jp",
-"hakodate.hokkaido.jp",
-"hamatonbetsu.hokkaido.jp",
-"hidaka.hokkaido.jp",
-"higashikagura.hokkaido.jp",
-"higashikawa.hokkaido.jp",
-"hiroo.hokkaido.jp",
-"hokuryu.hokkaido.jp",
-"hokuto.hokkaido.jp",
-"honbetsu.hokkaido.jp",
-"horokanai.hokkaido.jp",
-"horonobe.hokkaido.jp",
-"ikeda.hokkaido.jp",
-"imakane.hokkaido.jp",
-"ishikari.hokkaido.jp",
-"iwamizawa.hokkaido.jp",
-"iwanai.hokkaido.jp",
-"kamifurano.hokkaido.jp",
-"kamikawa.hokkaido.jp",
-"kamishihoro.hokkaido.jp",
-"kamisunagawa.hokkaido.jp",
-"kamoenai.hokkaido.jp",
-"kayabe.hokkaido.jp",
-"kembuchi.hokkaido.jp",
-"kikonai.hokkaido.jp",
-"kimobetsu.hokkaido.jp",
-"kitahiroshima.hokkaido.jp",
-"kitami.hokkaido.jp",
-"kiyosato.hokkaido.jp",
-"koshimizu.hokkaido.jp",
-"kunneppu.hokkaido.jp",
-"kuriyama.hokkaido.jp",
-"kuromatsunai.hokkaido.jp",
-"kushiro.hokkaido.jp",
-"kutchan.hokkaido.jp",
-"kyowa.hokkaido.jp",
-"mashike.hokkaido.jp",
-"matsumae.hokkaido.jp",
-"mikasa.hokkaido.jp",
-"minamifurano.hokkaido.jp",
-"mombetsu.hokkaido.jp",
-"moseushi.hokkaido.jp",
-"mukawa.hokkaido.jp",
-"muroran.hokkaido.jp",
-"naie.hokkaido.jp",
-"nakagawa.hokkaido.jp",
-"nakasatsunai.hokkaido.jp",
-"nakatombetsu.hokkaido.jp",
-"nanae.hokkaido.jp",
-"nanporo.hokkaido.jp",
-"nayoro.hokkaido.jp",
-"nemuro.hokkaido.jp",
-"niikappu.hokkaido.jp",
-"niki.hokkaido.jp",
-"nishiokoppe.hokkaido.jp",
-"noboribetsu.hokkaido.jp",
-"numata.hokkaido.jp",
-"obihiro.hokkaido.jp",
-"obira.hokkaido.jp",
-"oketo.hokkaido.jp",
-"okoppe.hokkaido.jp",
-"otaru.hokkaido.jp",
-"otobe.hokkaido.jp",
-"otofuke.hokkaido.jp",
-"otoineppu.hokkaido.jp",
-"oumu.hokkaido.jp",
-"ozora.hokkaido.jp",
-"pippu.hokkaido.jp",
-"rankoshi.hokkaido.jp",
-"rebun.hokkaido.jp",
-"rikubetsu.hokkaido.jp",
-"rishiri.hokkaido.jp",
-"rishirifuji.hokkaido.jp",
-"saroma.hokkaido.jp",
-"sarufutsu.hokkaido.jp",
-"shakotan.hokkaido.jp",
-"shari.hokkaido.jp",
-"shibecha.hokkaido.jp",
-"shibetsu.hokkaido.jp",
-"shikabe.hokkaido.jp",
-"shikaoi.hokkaido.jp",
-"shimamaki.hokkaido.jp",
-"shimizu.hokkaido.jp",
-"shimokawa.hokkaido.jp",
-"shinshinotsu.hokkaido.jp",
-"shintoku.hokkaido.jp",
-"shiranuka.hokkaido.jp",
-"shiraoi.hokkaido.jp",
-"shiriuchi.hokkaido.jp",
-"sobetsu.hokkaido.jp",
-"sunagawa.hokkaido.jp",
-"taiki.hokkaido.jp",
-"takasu.hokkaido.jp",
-"takikawa.hokkaido.jp",
-"takinoue.hokkaido.jp",
-"teshikaga.hokkaido.jp",
-"tobetsu.hokkaido.jp",
-"tohma.hokkaido.jp",
-"tomakomai.hokkaido.jp",
-"tomari.hokkaido.jp",
-"toya.hokkaido.jp",
-"toyako.hokkaido.jp",
-"toyotomi.hokkaido.jp",
-"toyoura.hokkaido.jp",
-"tsubetsu.hokkaido.jp",
-"tsukigata.hokkaido.jp",
-"urakawa.hokkaido.jp",
-"urausu.hokkaido.jp",
-"uryu.hokkaido.jp",
-"utashinai.hokkaido.jp",
-"wakkanai.hokkaido.jp",
-"wassamu.hokkaido.jp",
-"yakumo.hokkaido.jp",
-"yoichi.hokkaido.jp",
-"aioi.hyogo.jp",
-"akashi.hyogo.jp",
-"ako.hyogo.jp",
-"amagasaki.hyogo.jp",
-"aogaki.hyogo.jp",
-"asago.hyogo.jp",
-"ashiya.hyogo.jp",
-"awaji.hyogo.jp",
-"fukusaki.hyogo.jp",
-"goshiki.hyogo.jp",
-"harima.hyogo.jp",
-"himeji.hyogo.jp",
-"ichikawa.hyogo.jp",
-"inagawa.hyogo.jp",
-"itami.hyogo.jp",
-"kakogawa.hyogo.jp",
-"kamigori.hyogo.jp",
-"kamikawa.hyogo.jp",
-"kasai.hyogo.jp",
-"kasuga.hyogo.jp",
-"kawanishi.hyogo.jp",
-"miki.hyogo.jp",
-"minamiawaji.hyogo.jp",
-"nishinomiya.hyogo.jp",
-"nishiwaki.hyogo.jp",
-"ono.hyogo.jp",
-"sanda.hyogo.jp",
-"sannan.hyogo.jp",
-"sasayama.hyogo.jp",
-"sayo.hyogo.jp",
-"shingu.hyogo.jp",
-"shinonsen.hyogo.jp",
-"shiso.hyogo.jp",
-"sumoto.hyogo.jp",
-"taishi.hyogo.jp",
-"taka.hyogo.jp",
-"takarazuka.hyogo.jp",
-"takasago.hyogo.jp",
-"takino.hyogo.jp",
-"tamba.hyogo.jp",
-"tatsuno.hyogo.jp",
-"toyooka.hyogo.jp",
-"yabu.hyogo.jp",
-"yashiro.hyogo.jp",
-"yoka.hyogo.jp",
-"yokawa.hyogo.jp",
-"ami.ibaraki.jp",
-"asahi.ibaraki.jp",
-"bando.ibaraki.jp",
-"chikusei.ibaraki.jp",
-"daigo.ibaraki.jp",
-"fujishiro.ibaraki.jp",
-"hitachi.ibaraki.jp",
-"hitachinaka.ibaraki.jp",
-"hitachiomiya.ibaraki.jp",
-"hitachiota.ibaraki.jp",
-"ibaraki.ibaraki.jp",
-"ina.ibaraki.jp",
-"inashiki.ibaraki.jp",
-"itako.ibaraki.jp",
-"iwama.ibaraki.jp",
-"joso.ibaraki.jp",
-"kamisu.ibaraki.jp",
-"kasama.ibaraki.jp",
-"kashima.ibaraki.jp",
-"kasumigaura.ibaraki.jp",
-"koga.ibaraki.jp",
-"miho.ibaraki.jp",
-"mito.ibaraki.jp",
-"moriya.ibaraki.jp",
-"naka.ibaraki.jp",
-"namegata.ibaraki.jp",
-"oarai.ibaraki.jp",
-"ogawa.ibaraki.jp",
-"omitama.ibaraki.jp",
-"ryugasaki.ibaraki.jp",
-"sakai.ibaraki.jp",
-"sakuragawa.ibaraki.jp",
-"shimodate.ibaraki.jp",
-"shimotsuma.ibaraki.jp",
-"shirosato.ibaraki.jp",
-"sowa.ibaraki.jp",
-"suifu.ibaraki.jp",
-"takahagi.ibaraki.jp",
-"tamatsukuri.ibaraki.jp",
-"tokai.ibaraki.jp",
-"tomobe.ibaraki.jp",
-"tone.ibaraki.jp",
-"toride.ibaraki.jp",
-"tsuchiura.ibaraki.jp",
-"tsukuba.ibaraki.jp",
-"uchihara.ibaraki.jp",
-"ushiku.ibaraki.jp",
-"yachiyo.ibaraki.jp",
-"yamagata.ibaraki.jp",
-"yawara.ibaraki.jp",
-"yuki.ibaraki.jp",
-"anamizu.ishikawa.jp",
-"hakui.ishikawa.jp",
-"hakusan.ishikawa.jp",
-"kaga.ishikawa.jp",
-"kahoku.ishikawa.jp",
-"kanazawa.ishikawa.jp",
-"kawakita.ishikawa.jp",
-"komatsu.ishikawa.jp",
-"nakanoto.ishikawa.jp",
-"nanao.ishikawa.jp",
-"nomi.ishikawa.jp",
-"nonoichi.ishikawa.jp",
-"noto.ishikawa.jp",
-"shika.ishikawa.jp",
-"suzu.ishikawa.jp",
-"tsubata.ishikawa.jp",
-"tsurugi.ishikawa.jp",
-"uchinada.ishikawa.jp",
-"wajima.ishikawa.jp",
-"fudai.iwate.jp",
-"fujisawa.iwate.jp",
-"hanamaki.iwate.jp",
-"hiraizumi.iwate.jp",
-"hirono.iwate.jp",
-"ichinohe.iwate.jp",
-"ichinoseki.iwate.jp",
-"iwaizumi.iwate.jp",
-"iwate.iwate.jp",
-"joboji.iwate.jp",
-"kamaishi.iwate.jp",
-"kanegasaki.iwate.jp",
-"karumai.iwate.jp",
-"kawai.iwate.jp",
-"kitakami.iwate.jp",
-"kuji.iwate.jp",
-"kunohe.iwate.jp",
-"kuzumaki.iwate.jp",
-"miyako.iwate.jp",
-"mizusawa.iwate.jp",
-"morioka.iwate.jp",
-"ninohe.iwate.jp",
-"noda.iwate.jp",
-"ofunato.iwate.jp",
-"oshu.iwate.jp",
-"otsuchi.iwate.jp",
-"rikuzentakata.iwate.jp",
-"shiwa.iwate.jp",
-"shizukuishi.iwate.jp",
-"sumita.iwate.jp",
-"tanohata.iwate.jp",
-"tono.iwate.jp",
-"yahaba.iwate.jp",
-"yamada.iwate.jp",
-"ayagawa.kagawa.jp",
-"higashikagawa.kagawa.jp",
-"kanonji.kagawa.jp",
-"kotohira.kagawa.jp",
-"manno.kagawa.jp",
-"marugame.kagawa.jp",
-"mitoyo.kagawa.jp",
-"naoshima.kagawa.jp",
-"sanuki.kagawa.jp",
-"tadotsu.kagawa.jp",
-"takamatsu.kagawa.jp",
-"tonosho.kagawa.jp",
-"uchinomi.kagawa.jp",
-"utazu.kagawa.jp",
-"zentsuji.kagawa.jp",
-"akune.kagoshima.jp",
-"amami.kagoshima.jp",
-"hioki.kagoshima.jp",
-"isa.kagoshima.jp",
-"isen.kagoshima.jp",
-"izumi.kagoshima.jp",
-"kagoshima.kagoshima.jp",
-"kanoya.kagoshima.jp",
-"kawanabe.kagoshima.jp",
-"kinko.kagoshima.jp",
-"kouyama.kagoshima.jp",
-"makurazaki.kagoshima.jp",
-"matsumoto.kagoshima.jp",
-"minamitane.kagoshima.jp",
-"nakatane.kagoshima.jp",
-"nishinoomote.kagoshima.jp",
-"satsumasendai.kagoshima.jp",
-"soo.kagoshima.jp",
-"tarumizu.kagoshima.jp",
-"yusui.kagoshima.jp",
-"aikawa.kanagawa.jp",
-"atsugi.kanagawa.jp",
-"ayase.kanagawa.jp",
-"chigasaki.kanagawa.jp",
-"ebina.kanagawa.jp",
-"fujisawa.kanagawa.jp",
-"hadano.kanagawa.jp",
-"hakone.kanagawa.jp",
-"hiratsuka.kanagawa.jp",
-"isehara.kanagawa.jp",
-"kaisei.kanagawa.jp",
-"kamakura.kanagawa.jp",
-"kiyokawa.kanagawa.jp",
-"matsuda.kanagawa.jp",
-"minamiashigara.kanagawa.jp",
-"miura.kanagawa.jp",
-"nakai.kanagawa.jp",
-"ninomiya.kanagawa.jp",
-"odawara.kanagawa.jp",
-"oi.kanagawa.jp",
-"oiso.kanagawa.jp",
-"sagamihara.kanagawa.jp",
-"samukawa.kanagawa.jp",
-"tsukui.kanagawa.jp",
-"yamakita.kanagawa.jp",
-"yamato.kanagawa.jp",
-"yokosuka.kanagawa.jp",
-"yugawara.kanagawa.jp",
-"zama.kanagawa.jp",
-"zushi.kanagawa.jp",
-"aki.kochi.jp",
-"geisei.kochi.jp",
-"hidaka.kochi.jp",
-"higashitsuno.kochi.jp",
-"ino.kochi.jp",
-"kagami.kochi.jp",
-"kami.kochi.jp",
-"kitagawa.kochi.jp",
-"kochi.kochi.jp",
-"mihara.kochi.jp",
-"motoyama.kochi.jp",
-"muroto.kochi.jp",
-"nahari.kochi.jp",
-"nakamura.kochi.jp",
-"nankoku.kochi.jp",
-"nishitosa.kochi.jp",
-"niyodogawa.kochi.jp",
-"ochi.kochi.jp",
-"okawa.kochi.jp",
-"otoyo.kochi.jp",
-"otsuki.kochi.jp",
-"sakawa.kochi.jp",
-"sukumo.kochi.jp",
-"susaki.kochi.jp",
-"tosa.kochi.jp",
-"tosashimizu.kochi.jp",
-"toyo.kochi.jp",
-"tsuno.kochi.jp",
-"umaji.kochi.jp",
-"yasuda.kochi.jp",
-"yusuhara.kochi.jp",
-"amakusa.kumamoto.jp",
-"arao.kumamoto.jp",
-"aso.kumamoto.jp",
-"choyo.kumamoto.jp",
-"gyokuto.kumamoto.jp",
-"kamiamakusa.kumamoto.jp",
-"kikuchi.kumamoto.jp",
-"kumamoto.kumamoto.jp",
-"mashiki.kumamoto.jp",
-"mifune.kumamoto.jp",
-"minamata.kumamoto.jp",
-"minamioguni.kumamoto.jp",
-"nagasu.kumamoto.jp",
-"nishihara.kumamoto.jp",
-"oguni.kumamoto.jp",
-"ozu.kumamoto.jp",
-"sumoto.kumamoto.jp",
-"takamori.kumamoto.jp",
-"uki.kumamoto.jp",
-"uto.kumamoto.jp",
-"yamaga.kumamoto.jp",
-"yamato.kumamoto.jp",
-"yatsushiro.kumamoto.jp",
-"ayabe.kyoto.jp",
-"fukuchiyama.kyoto.jp",
-"higashiyama.kyoto.jp",
-"ide.kyoto.jp",
-"ine.kyoto.jp",
-"joyo.kyoto.jp",
-"kameoka.kyoto.jp",
-"kamo.kyoto.jp",
-"kita.kyoto.jp",
-"kizu.kyoto.jp",
-"kumiyama.kyoto.jp",
-"kyotamba.kyoto.jp",
-"kyotanabe.kyoto.jp",
-"kyotango.kyoto.jp",
-"maizuru.kyoto.jp",
-"minami.kyoto.jp",
-"minamiyamashiro.kyoto.jp",
-"miyazu.kyoto.jp",
-"muko.kyoto.jp",
-"nagaokakyo.kyoto.jp",
-"nakagyo.kyoto.jp",
-"nantan.kyoto.jp",
-"oyamazaki.kyoto.jp",
-"sakyo.kyoto.jp",
-"seika.kyoto.jp",
-"tanabe.kyoto.jp",
-"uji.kyoto.jp",
-"ujitawara.kyoto.jp",
-"wazuka.kyoto.jp",
-"yamashina.kyoto.jp",
-"yawata.kyoto.jp",
-"asahi.mie.jp",
-"inabe.mie.jp",
-"ise.mie.jp",
-"kameyama.mie.jp",
-"kawagoe.mie.jp",
-"kiho.mie.jp",
-"kisosaki.mie.jp",
-"kiwa.mie.jp",
-"komono.mie.jp",
-"kumano.mie.jp",
-"kuwana.mie.jp",
-"matsusaka.mie.jp",
-"meiwa.mie.jp",
-"mihama.mie.jp",
-"minamiise.mie.jp",
-"misugi.mie.jp",
-"miyama.mie.jp",
-"nabari.mie.jp",
-"shima.mie.jp",
-"suzuka.mie.jp",
-"tado.mie.jp",
-"taiki.mie.jp",
-"taki.mie.jp",
-"tamaki.mie.jp",
-"toba.mie.jp",
-"tsu.mie.jp",
-"udono.mie.jp",
-"ureshino.mie.jp",
-"watarai.mie.jp",
-"yokkaichi.mie.jp",
-"furukawa.miyagi.jp",
-"higashimatsushima.miyagi.jp",
-"ishinomaki.miyagi.jp",
-"iwanuma.miyagi.jp",
-"kakuda.miyagi.jp",
-"kami.miyagi.jp",
-"kawasaki.miyagi.jp",
-"marumori.miyagi.jp",
-"matsushima.miyagi.jp",
-"minamisanriku.miyagi.jp",
-"misato.miyagi.jp",
-"murata.miyagi.jp",
-"natori.miyagi.jp",
-"ogawara.miyagi.jp",
-"ohira.miyagi.jp",
-"onagawa.miyagi.jp",
-"osaki.miyagi.jp",
-"rifu.miyagi.jp",
-"semine.miyagi.jp",
-"shibata.miyagi.jp",
-"shichikashuku.miyagi.jp",
-"shikama.miyagi.jp",
-"shiogama.miyagi.jp",
-"shiroishi.miyagi.jp",
-"tagajo.miyagi.jp",
-"taiwa.miyagi.jp",
-"tome.miyagi.jp",
-"tomiya.miyagi.jp",
-"wakuya.miyagi.jp",
-"watari.miyagi.jp",
-"yamamoto.miyagi.jp",
-"zao.miyagi.jp",
-"aya.miyazaki.jp",
-"ebino.miyazaki.jp",
-"gokase.miyazaki.jp",
-"hyuga.miyazaki.jp",
-"kadogawa.miyazaki.jp",
-"kawaminami.miyazaki.jp",
-"kijo.miyazaki.jp",
-"kitagawa.miyazaki.jp",
-"kitakata.miyazaki.jp",
-"kitaura.miyazaki.jp",
-"kobayashi.miyazaki.jp",
-"kunitomi.miyazaki.jp",
-"kushima.miyazaki.jp",
-"mimata.miyazaki.jp",
-"miyakonojo.miyazaki.jp",
-"miyazaki.miyazaki.jp",
-"morotsuka.miyazaki.jp",
-"nichinan.miyazaki.jp",
-"nishimera.miyazaki.jp",
-"nobeoka.miyazaki.jp",
-"saito.miyazaki.jp",
-"shiiba.miyazaki.jp",
-"shintomi.miyazaki.jp",
-"takaharu.miyazaki.jp",
-"takanabe.miyazaki.jp",
-"takazaki.miyazaki.jp",
-"tsuno.miyazaki.jp",
-"achi.nagano.jp",
-"agematsu.nagano.jp",
-"anan.nagano.jp",
-"aoki.nagano.jp",
-"asahi.nagano.jp",
-"azumino.nagano.jp",
-"chikuhoku.nagano.jp",
-"chikuma.nagano.jp",
-"chino.nagano.jp",
-"fujimi.nagano.jp",
-"hakuba.nagano.jp",
-"hara.nagano.jp",
-"hiraya.nagano.jp",
-"iida.nagano.jp",
-"iijima.nagano.jp",
-"iiyama.nagano.jp",
-"iizuna.nagano.jp",
-"ikeda.nagano.jp",
-"ikusaka.nagano.jp",
-"ina.nagano.jp",
-"karuizawa.nagano.jp",
-"kawakami.nagano.jp",
-"kiso.nagano.jp",
-"kisofukushima.nagano.jp",
-"kitaaiki.nagano.jp",
-"komagane.nagano.jp",
-"komoro.nagano.jp",
-"matsukawa.nagano.jp",
-"matsumoto.nagano.jp",
-"miasa.nagano.jp",
-"minamiaiki.nagano.jp",
-"minamimaki.nagano.jp",
-"minamiminowa.nagano.jp",
-"minowa.nagano.jp",
-"miyada.nagano.jp",
-"miyota.nagano.jp",
-"mochizuki.nagano.jp",
-"nagano.nagano.jp",
-"nagawa.nagano.jp",
-"nagiso.nagano.jp",
-"nakagawa.nagano.jp",
-"nakano.nagano.jp",
-"nozawaonsen.nagano.jp",
-"obuse.nagano.jp",
-"ogawa.nagano.jp",
-"okaya.nagano.jp",
-"omachi.nagano.jp",
-"omi.nagano.jp",
-"ookuwa.nagano.jp",
-"ooshika.nagano.jp",
-"otaki.nagano.jp",
-"otari.nagano.jp",
-"sakae.nagano.jp",
-"sakaki.nagano.jp",
-"saku.nagano.jp",
-"sakuho.nagano.jp",
-"shimosuwa.nagano.jp",
-"shinanomachi.nagano.jp",
-"shiojiri.nagano.jp",
-"suwa.nagano.jp",
-"suzaka.nagano.jp",
-"takagi.nagano.jp",
-"takamori.nagano.jp",
-"takayama.nagano.jp",
-"tateshina.nagano.jp",
-"tatsuno.nagano.jp",
-"togakushi.nagano.jp",
-"togura.nagano.jp",
-"tomi.nagano.jp",
-"ueda.nagano.jp",
-"wada.nagano.jp",
-"yamagata.nagano.jp",
-"yamanouchi.nagano.jp",
-"yasaka.nagano.jp",
-"yasuoka.nagano.jp",
-"chijiwa.nagasaki.jp",
-"futsu.nagasaki.jp",
-"goto.nagasaki.jp",
-"hasami.nagasaki.jp",
-"hirado.nagasaki.jp",
-"iki.nagasaki.jp",
-"isahaya.nagasaki.jp",
-"kawatana.nagasaki.jp",
-"kuchinotsu.nagasaki.jp",
-"matsuura.nagasaki.jp",
-"nagasaki.nagasaki.jp",
-"obama.nagasaki.jp",
-"omura.nagasaki.jp",
-"oseto.nagasaki.jp",
-"saikai.nagasaki.jp",
-"sasebo.nagasaki.jp",
-"seihi.nagasaki.jp",
-"shimabara.nagasaki.jp",
-"shinkamigoto.nagasaki.jp",
-"togitsu.nagasaki.jp",
-"tsushima.nagasaki.jp",
-"unzen.nagasaki.jp",
-"ando.nara.jp",
-"gose.nara.jp",
-"heguri.nara.jp",
-"higashiyoshino.nara.jp",
-"ikaruga.nara.jp",
-"ikoma.nara.jp",
-"kamikitayama.nara.jp",
-"kanmaki.nara.jp",
-"kashiba.nara.jp",
-"kashihara.nara.jp",
-"katsuragi.nara.jp",
-"kawai.nara.jp",
-"kawakami.nara.jp",
-"kawanishi.nara.jp",
-"koryo.nara.jp",
-"kurotaki.nara.jp",
-"mitsue.nara.jp",
-"miyake.nara.jp",
-"nara.nara.jp",
-"nosegawa.nara.jp",
-"oji.nara.jp",
-"ouda.nara.jp",
-"oyodo.nara.jp",
-"sakurai.nara.jp",
-"sango.nara.jp",
-"shimoichi.nara.jp",
-"shimokitayama.nara.jp",
-"shinjo.nara.jp",
-"soni.nara.jp",
-"takatori.nara.jp",
-"tawaramoto.nara.jp",
-"tenkawa.nara.jp",
-"tenri.nara.jp",
-"uda.nara.jp",
-"yamatokoriyama.nara.jp",
-"yamatotakada.nara.jp",
-"yamazoe.nara.jp",
-"yoshino.nara.jp",
-"aga.niigata.jp",
-"agano.niigata.jp",
-"gosen.niigata.jp",
-"itoigawa.niigata.jp",
-"izumozaki.niigata.jp",
-"joetsu.niigata.jp",
-"kamo.niigata.jp",
-"kariwa.niigata.jp",
-"kashiwazaki.niigata.jp",
-"minamiuonuma.niigata.jp",
-"mitsuke.niigata.jp",
-"muika.niigata.jp",
-"murakami.niigata.jp",
-"myoko.niigata.jp",
-"nagaoka.niigata.jp",
-"niigata.niigata.jp",
-"ojiya.niigata.jp",
-"omi.niigata.jp",
-"sado.niigata.jp",
-"sanjo.niigata.jp",
-"seiro.niigata.jp",
-"seirou.niigata.jp",
-"sekikawa.niigata.jp",
-"shibata.niigata.jp",
-"tagami.niigata.jp",
-"tainai.niigata.jp",
-"tochio.niigata.jp",
-"tokamachi.niigata.jp",
-"tsubame.niigata.jp",
-"tsunan.niigata.jp",
-"uonuma.niigata.jp",
-"yahiko.niigata.jp",
-"yoita.niigata.jp",
-"yuzawa.niigata.jp",
-"beppu.oita.jp",
-"bungoono.oita.jp",
-"bungotakada.oita.jp",
-"hasama.oita.jp",
-"hiji.oita.jp",
-"himeshima.oita.jp",
-"hita.oita.jp",
-"kamitsue.oita.jp",
-"kokonoe.oita.jp",
-"kuju.oita.jp",
-"kunisaki.oita.jp",
-"kusu.oita.jp",
-"oita.oita.jp",
-"saiki.oita.jp",
-"taketa.oita.jp",
-"tsukumi.oita.jp",
-"usa.oita.jp",
-"usuki.oita.jp",
-"yufu.oita.jp",
-"akaiwa.okayama.jp",
-"asakuchi.okayama.jp",
-"bizen.okayama.jp",
-"hayashima.okayama.jp",
-"ibara.okayama.jp",
-"kagamino.okayama.jp",
-"kasaoka.okayama.jp",
-"kibichuo.okayama.jp",
-"kumenan.okayama.jp",
-"kurashiki.okayama.jp",
-"maniwa.okayama.jp",
-"misaki.okayama.jp",
-"nagi.okayama.jp",
-"niimi.okayama.jp",
-"nishiawakura.okayama.jp",
-"okayama.okayama.jp",
-"satosho.okayama.jp",
-"setouchi.okayama.jp",
-"shinjo.okayama.jp",
-"shoo.okayama.jp",
-"soja.okayama.jp",
-"takahashi.okayama.jp",
-"tamano.okayama.jp",
-"tsuyama.okayama.jp",
-"wake.okayama.jp",
-"yakage.okayama.jp",
-"aguni.okinawa.jp",
-"ginowan.okinawa.jp",
-"ginoza.okinawa.jp",
-"gushikami.okinawa.jp",
-"haebaru.okinawa.jp",
-"higashi.okinawa.jp",
-"hirara.okinawa.jp",
-"iheya.okinawa.jp",
-"ishigaki.okinawa.jp",
-"ishikawa.okinawa.jp",
-"itoman.okinawa.jp",
-"izena.okinawa.jp",
-"kadena.okinawa.jp",
-"kin.okinawa.jp",
-"kitadaito.okinawa.jp",
-"kitanakagusuku.okinawa.jp",
-"kumejima.okinawa.jp",
-"kunigami.okinawa.jp",
-"minamidaito.okinawa.jp",
-"motobu.okinawa.jp",
-"nago.okinawa.jp",
-"naha.okinawa.jp",
-"nakagusuku.okinawa.jp",
-"nakijin.okinawa.jp",
-"nanjo.okinawa.jp",
-"nishihara.okinawa.jp",
-"ogimi.okinawa.jp",
-"okinawa.okinawa.jp",
-"onna.okinawa.jp",
-"shimoji.okinawa.jp",
-"taketomi.okinawa.jp",
-"tarama.okinawa.jp",
-"tokashiki.okinawa.jp",
-"tomigusuku.okinawa.jp",
-"tonaki.okinawa.jp",
-"urasoe.okinawa.jp",
-"uruma.okinawa.jp",
-"yaese.okinawa.jp",
-"yomitan.okinawa.jp",
-"yonabaru.okinawa.jp",
-"yonaguni.okinawa.jp",
-"zamami.okinawa.jp",
-"abeno.osaka.jp",
-"chihayaakasaka.osaka.jp",
-"chuo.osaka.jp",
-"daito.osaka.jp",
-"fujiidera.osaka.jp",
-"habikino.osaka.jp",
-"hannan.osaka.jp",
-"higashiosaka.osaka.jp",
-"higashisumiyoshi.osaka.jp",
-"higashiyodogawa.osaka.jp",
-"hirakata.osaka.jp",
-"ibaraki.osaka.jp",
-"ikeda.osaka.jp",
-"izumi.osaka.jp",
-"izumiotsu.osaka.jp",
-"izumisano.osaka.jp",
-"kadoma.osaka.jp",
-"kaizuka.osaka.jp",
-"kanan.osaka.jp",
-"kashiwara.osaka.jp",
-"katano.osaka.jp",
-"kawachinagano.osaka.jp",
-"kishiwada.osaka.jp",
-"kita.osaka.jp",
-"kumatori.osaka.jp",
-"matsubara.osaka.jp",
-"minato.osaka.jp",
-"minoh.osaka.jp",
-"misaki.osaka.jp",
-"moriguchi.osaka.jp",
-"neyagawa.osaka.jp",
-"nishi.osaka.jp",
-"nose.osaka.jp",
-"osakasayama.osaka.jp",
-"sakai.osaka.jp",
-"sayama.osaka.jp",
-"sennan.osaka.jp",
-"settsu.osaka.jp",
-"shijonawate.osaka.jp",
-"shimamoto.osaka.jp",
-"suita.osaka.jp",
-"tadaoka.osaka.jp",
-"taishi.osaka.jp",
-"tajiri.osaka.jp",
-"takaishi.osaka.jp",
-"takatsuki.osaka.jp",
-"tondabayashi.osaka.jp",
-"toyonaka.osaka.jp",
-"toyono.osaka.jp",
-"yao.osaka.jp",
-"ariake.saga.jp",
-"arita.saga.jp",
-"fukudomi.saga.jp",
-"genkai.saga.jp",
-"hamatama.saga.jp",
-"hizen.saga.jp",
-"imari.saga.jp",
-"kamimine.saga.jp",
-"kanzaki.saga.jp",
-"karatsu.saga.jp",
-"kashima.saga.jp",
-"kitagata.saga.jp",
-"kitahata.saga.jp",
-"kiyama.saga.jp",
-"kouhoku.saga.jp",
-"kyuragi.saga.jp",
-"nishiarita.saga.jp",
-"ogi.saga.jp",
-"omachi.saga.jp",
-"ouchi.saga.jp",
-"saga.saga.jp",
-"shiroishi.saga.jp",
-"taku.saga.jp",
-"tara.saga.jp",
-"tosu.saga.jp",
-"yoshinogari.saga.jp",
-"arakawa.saitama.jp",
-"asaka.saitama.jp",
-"chichibu.saitama.jp",
-"fujimi.saitama.jp",
-"fujimino.saitama.jp",
-"fukaya.saitama.jp",
-"hanno.saitama.jp",
-"hanyu.saitama.jp",
-"hasuda.saitama.jp",
-"hatogaya.saitama.jp",
-"hatoyama.saitama.jp",
-"hidaka.saitama.jp",
-"higashichichibu.saitama.jp",
-"higashimatsuyama.saitama.jp",
-"honjo.saitama.jp",
-"ina.saitama.jp",
-"iruma.saitama.jp",
-"iwatsuki.saitama.jp",
-"kamiizumi.saitama.jp",
-"kamikawa.saitama.jp",
-"kamisato.saitama.jp",
-"kasukabe.saitama.jp",
-"kawagoe.saitama.jp",
-"kawaguchi.saitama.jp",
-"kawajima.saitama.jp",
-"kazo.saitama.jp",
-"kitamoto.saitama.jp",
-"koshigaya.saitama.jp",
-"kounosu.saitama.jp",
-"kuki.saitama.jp",
-"kumagaya.saitama.jp",
-"matsubushi.saitama.jp",
-"minano.saitama.jp",
-"misato.saitama.jp",
-"miyashiro.saitama.jp",
-"miyoshi.saitama.jp",
-"moroyama.saitama.jp",
-"nagatoro.saitama.jp",
-"namegawa.saitama.jp",
-"niiza.saitama.jp",
-"ogano.saitama.jp",
-"ogawa.saitama.jp",
-"ogose.saitama.jp",
-"okegawa.saitama.jp",
-"omiya.saitama.jp",
-"otaki.saitama.jp",
-"ranzan.saitama.jp",
-"ryokami.saitama.jp",
-"saitama.saitama.jp",
-"sakado.saitama.jp",
-"satte.saitama.jp",
-"sayama.saitama.jp",
-"shiki.saitama.jp",
-"shiraoka.saitama.jp",
-"soka.saitama.jp",
-"sugito.saitama.jp",
-"toda.saitama.jp",
-"tokigawa.saitama.jp",
-"tokorozawa.saitama.jp",
-"tsurugashima.saitama.jp",
-"urawa.saitama.jp",
-"warabi.saitama.jp",
-"yashio.saitama.jp",
-"yokoze.saitama.jp",
-"yono.saitama.jp",
-"yorii.saitama.jp",
-"yoshida.saitama.jp",
-"yoshikawa.saitama.jp",
-"yoshimi.saitama.jp",
-"aisho.shiga.jp",
-"gamo.shiga.jp",
-"higashiomi.shiga.jp",
-"hikone.shiga.jp",
-"koka.shiga.jp",
-"konan.shiga.jp",
-"kosei.shiga.jp",
-"koto.shiga.jp",
-"kusatsu.shiga.jp",
-"maibara.shiga.jp",
-"moriyama.shiga.jp",
-"nagahama.shiga.jp",
-"nishiazai.shiga.jp",
-"notogawa.shiga.jp",
-"omihachiman.shiga.jp",
-"otsu.shiga.jp",
-"ritto.shiga.jp",
-"ryuoh.shiga.jp",
-"takashima.shiga.jp",
-"takatsuki.shiga.jp",
-"torahime.shiga.jp",
-"toyosato.shiga.jp",
-"yasu.shiga.jp",
-"akagi.shimane.jp",
-"ama.shimane.jp",
-"gotsu.shimane.jp",
-"hamada.shimane.jp",
-"higashiizumo.shimane.jp",
-"hikawa.shimane.jp",
-"hikimi.shimane.jp",
-"izumo.shimane.jp",
-"kakinoki.shimane.jp",
-"masuda.shimane.jp",
-"matsue.shimane.jp",
-"misato.shimane.jp",
-"nishinoshima.shimane.jp",
-"ohda.shimane.jp",
-"okinoshima.shimane.jp",
-"okuizumo.shimane.jp",
-"shimane.shimane.jp",
-"tamayu.shimane.jp",
-"tsuwano.shimane.jp",
-"unnan.shimane.jp",
-"yakumo.shimane.jp",
-"yasugi.shimane.jp",
-"yatsuka.shimane.jp",
-"arai.shizuoka.jp",
-"atami.shizuoka.jp",
-"fuji.shizuoka.jp",
-"fujieda.shizuoka.jp",
-"fujikawa.shizuoka.jp",
-"fujinomiya.shizuoka.jp",
-"fukuroi.shizuoka.jp",
-"gotemba.shizuoka.jp",
-"haibara.shizuoka.jp",
-"hamamatsu.shizuoka.jp",
-"higashiizu.shizuoka.jp",
-"ito.shizuoka.jp",
-"iwata.shizuoka.jp",
-"izu.shizuoka.jp",
-"izunokuni.shizuoka.jp",
-"kakegawa.shizuoka.jp",
-"kannami.shizuoka.jp",
-"kawanehon.shizuoka.jp",
-"kawazu.shizuoka.jp",
-"kikugawa.shizuoka.jp",
-"kosai.shizuoka.jp",
-"makinohara.shizuoka.jp",
-"matsuzaki.shizuoka.jp",
-"minamiizu.shizuoka.jp",
-"mishima.shizuoka.jp",
-"morimachi.shizuoka.jp",
-"nishiizu.shizuoka.jp",
-"numazu.shizuoka.jp",
-"omaezaki.shizuoka.jp",
-"shimada.shizuoka.jp",
-"shimizu.shizuoka.jp",
-"shimoda.shizuoka.jp",
-"shizuoka.shizuoka.jp",
-"susono.shizuoka.jp",
-"yaizu.shizuoka.jp",
-"yoshida.shizuoka.jp",
-"ashikaga.tochigi.jp",
-"bato.tochigi.jp",
-"haga.tochigi.jp",
-"ichikai.tochigi.jp",
-"iwafune.tochigi.jp",
-"kaminokawa.tochigi.jp",
-"kanuma.tochigi.jp",
-"karasuyama.tochigi.jp",
-"kuroiso.tochigi.jp",
-"mashiko.tochigi.jp",
-"mibu.tochigi.jp",
-"moka.tochigi.jp",
-"motegi.tochigi.jp",
-"nasu.tochigi.jp",
-"nasushiobara.tochigi.jp",
-"nikko.tochigi.jp",
-"nishikata.tochigi.jp",
-"nogi.tochigi.jp",
-"ohira.tochigi.jp",
-"ohtawara.tochigi.jp",
-"oyama.tochigi.jp",
-"sakura.tochigi.jp",
-"sano.tochigi.jp",
-"shimotsuke.tochigi.jp",
-"shioya.tochigi.jp",
-"takanezawa.tochigi.jp",
-"tochigi.tochigi.jp",
-"tsuga.tochigi.jp",
-"ujiie.tochigi.jp",
-"utsunomiya.tochigi.jp",
-"yaita.tochigi.jp",
-"aizumi.tokushima.jp",
-"anan.tokushima.jp",
-"ichiba.tokushima.jp",
-"itano.tokushima.jp",
-"kainan.tokushima.jp",
-"komatsushima.tokushima.jp",
-"matsushige.tokushima.jp",
-"mima.tokushima.jp",
-"minami.tokushima.jp",
-"miyoshi.tokushima.jp",
-"mugi.tokushima.jp",
-"nakagawa.tokushima.jp",
-"naruto.tokushima.jp",
-"sanagochi.tokushima.jp",
-"shishikui.tokushima.jp",
-"tokushima.tokushima.jp",
-"wajiki.tokushima.jp",
-"adachi.tokyo.jp",
-"akiruno.tokyo.jp",
-"akishima.tokyo.jp",
-"aogashima.tokyo.jp",
-"arakawa.tokyo.jp",
-"bunkyo.tokyo.jp",
-"chiyoda.tokyo.jp",
-"chofu.tokyo.jp",
-"chuo.tokyo.jp",
-"edogawa.tokyo.jp",
-"fuchu.tokyo.jp",
-"fussa.tokyo.jp",
-"hachijo.tokyo.jp",
-"hachioji.tokyo.jp",
-"hamura.tokyo.jp",
-"higashikurume.tokyo.jp",
-"higashimurayama.tokyo.jp",
-"higashiyamato.tokyo.jp",
-"hino.tokyo.jp",
-"hinode.tokyo.jp",
-"hinohara.tokyo.jp",
-"inagi.tokyo.jp",
-"itabashi.tokyo.jp",
-"katsushika.tokyo.jp",
-"kita.tokyo.jp",
-"kiyose.tokyo.jp",
-"kodaira.tokyo.jp",
-"koganei.tokyo.jp",
-"kokubunji.tokyo.jp",
-"komae.tokyo.jp",
-"koto.tokyo.jp",
-"kouzushima.tokyo.jp",
-"kunitachi.tokyo.jp",
-"machida.tokyo.jp",
-"meguro.tokyo.jp",
-"minato.tokyo.jp",
-"mitaka.tokyo.jp",
-"mizuho.tokyo.jp",
-"musashimurayama.tokyo.jp",
-"musashino.tokyo.jp",
-"nakano.tokyo.jp",
-"nerima.tokyo.jp",
-"ogasawara.tokyo.jp",
-"okutama.tokyo.jp",
-"ome.tokyo.jp",
-"oshima.tokyo.jp",
-"ota.tokyo.jp",
-"setagaya.tokyo.jp",
-"shibuya.tokyo.jp",
-"shinagawa.tokyo.jp",
-"shinjuku.tokyo.jp",
-"suginami.tokyo.jp",
-"sumida.tokyo.jp",
-"tachikawa.tokyo.jp",
-"taito.tokyo.jp",
-"tama.tokyo.jp",
-"toshima.tokyo.jp",
-"chizu.tottori.jp",
-"hino.tottori.jp",
-"kawahara.tottori.jp",
-"koge.tottori.jp",
-"kotoura.tottori.jp",
-"misasa.tottori.jp",
-"nanbu.tottori.jp",
-"nichinan.tottori.jp",
-"sakaiminato.tottori.jp",
-"tottori.tottori.jp",
-"wakasa.tottori.jp",
-"yazu.tottori.jp",
-"yonago.tottori.jp",
-"asahi.toyama.jp",
-"fuchu.toyama.jp",
-"fukumitsu.toyama.jp",
-"funahashi.toyama.jp",
-"himi.toyama.jp",
-"imizu.toyama.jp",
-"inami.toyama.jp",
-"johana.toyama.jp",
-"kamiichi.toyama.jp",
-"kurobe.toyama.jp",
-"nakaniikawa.toyama.jp",
-"namerikawa.toyama.jp",
-"nanto.toyama.jp",
-"nyuzen.toyama.jp",
-"oyabe.toyama.jp",
-"taira.toyama.jp",
-"takaoka.toyama.jp",
-"tateyama.toyama.jp",
-"toga.toyama.jp",
-"tonami.toyama.jp",
-"toyama.toyama.jp",
-"unazuki.toyama.jp",
-"uozu.toyama.jp",
-"yamada.toyama.jp",
-"arida.wakayama.jp",
-"aridagawa.wakayama.jp",
-"gobo.wakayama.jp",
-"hashimoto.wakayama.jp",
-"hidaka.wakayama.jp",
-"hirogawa.wakayama.jp",
-"inami.wakayama.jp",
-"iwade.wakayama.jp",
-"kainan.wakayama.jp",
-"kamitonda.wakayama.jp",
-"katsuragi.wakayama.jp",
-"kimino.wakayama.jp",
-"kinokawa.wakayama.jp",
-"kitayama.wakayama.jp",
-"koya.wakayama.jp",
-"koza.wakayama.jp",
-"kozagawa.wakayama.jp",
-"kudoyama.wakayama.jp",
-"kushimoto.wakayama.jp",
-"mihama.wakayama.jp",
-"misato.wakayama.jp",
-"nachikatsuura.wakayama.jp",
-"shingu.wakayama.jp",
-"shirahama.wakayama.jp",
-"taiji.wakayama.jp",
-"tanabe.wakayama.jp",
-"wakayama.wakayama.jp",
-"yuasa.wakayama.jp",
-"yura.wakayama.jp",
-"asahi.yamagata.jp",
-"funagata.yamagata.jp",
-"higashine.yamagata.jp",
-"iide.yamagata.jp",
-"kahoku.yamagata.jp",
-"kaminoyama.yamagata.jp",
-"kaneyama.yamagata.jp",
-"kawanishi.yamagata.jp",
-"mamurogawa.yamagata.jp",
-"mikawa.yamagata.jp",
-"murayama.yamagata.jp",
-"nagai.yamagata.jp",
-"nakayama.yamagata.jp",
-"nanyo.yamagata.jp",
-"nishikawa.yamagata.jp",
-"obanazawa.yamagata.jp",
-"oe.yamagata.jp",
-"oguni.yamagata.jp",
-"ohkura.yamagata.jp",
-"oishida.yamagata.jp",
-"sagae.yamagata.jp",
-"sakata.yamagata.jp",
-"sakegawa.yamagata.jp",
-"shinjo.yamagata.jp",
-"shirataka.yamagata.jp",
-"shonai.yamagata.jp",
-"takahata.yamagata.jp",
-"tendo.yamagata.jp",
-"tozawa.yamagata.jp",
-"tsuruoka.yamagata.jp",
-"yamagata.yamagata.jp",
-"yamanobe.yamagata.jp",
-"yonezawa.yamagata.jp",
-"yuza.yamagata.jp",
-"abu.yamaguchi.jp",
-"hagi.yamaguchi.jp",
-"hikari.yamaguchi.jp",
-"hofu.yamaguchi.jp",
-"iwakuni.yamaguchi.jp",
-"kudamatsu.yamaguchi.jp",
-"mitou.yamaguchi.jp",
-"nagato.yamaguchi.jp",
-"oshima.yamaguchi.jp",
-"shimonoseki.yamaguchi.jp",
-"shunan.yamaguchi.jp",
-"tabuse.yamaguchi.jp",
-"tokuyama.yamaguchi.jp",
-"toyota.yamaguchi.jp",
-"ube.yamaguchi.jp",
-"yuu.yamaguchi.jp",
-"chuo.yamanashi.jp",
-"doshi.yamanashi.jp",
-"fuefuki.yamanashi.jp",
-"fujikawa.yamanashi.jp",
-"fujikawaguchiko.yamanashi.jp",
-"fujiyoshida.yamanashi.jp",
-"hayakawa.yamanashi.jp",
-"hokuto.yamanashi.jp",
-"ichikawamisato.yamanashi.jp",
-"kai.yamanashi.jp",
-"kofu.yamanashi.jp",
-"koshu.yamanashi.jp",
-"kosuge.yamanashi.jp",
-"minami-alps.yamanashi.jp",
-"minobu.yamanashi.jp",
-"nakamichi.yamanashi.jp",
-"nanbu.yamanashi.jp",
-"narusawa.yamanashi.jp",
-"nirasaki.yamanashi.jp",
-"nishikatsura.yamanashi.jp",
-"oshino.yamanashi.jp",
-"otsuki.yamanashi.jp",
-"showa.yamanashi.jp",
-"tabayama.yamanashi.jp",
-"tsuru.yamanashi.jp",
-"uenohara.yamanashi.jp",
-"yamanakako.yamanashi.jp",
-"yamanashi.yamanashi.jp",
-"ke",
-"ac.ke",
-"co.ke",
-"go.ke",
-"info.ke",
-"me.ke",
-"mobi.ke",
-"ne.ke",
-"or.ke",
-"sc.ke",
-"kg",
-"org.kg",
-"net.kg",
-"com.kg",
-"edu.kg",
-"gov.kg",
-"mil.kg",
-"*.kh",
-"ki",
-"edu.ki",
-"biz.ki",
-"net.ki",
-"org.ki",
-"gov.ki",
-"info.ki",
-"com.ki",
-"km",
-"org.km",
-"nom.km",
-"gov.km",
-"prd.km",
-"tm.km",
-"edu.km",
-"mil.km",
-"ass.km",
-"com.km",
-"coop.km",
-"asso.km",
-"presse.km",
-"medecin.km",
-"notaires.km",
-"pharmaciens.km",
-"veterinaire.km",
-"gouv.km",
-"kn",
-"net.kn",
-"org.kn",
-"edu.kn",
-"gov.kn",
-"kp",
-"com.kp",
-"edu.kp",
-"gov.kp",
-"org.kp",
-"rep.kp",
-"tra.kp",
-"kr",
-"ac.kr",
-"co.kr",
-"es.kr",
-"go.kr",
-"hs.kr",
-"kg.kr",
-"mil.kr",
-"ms.kr",
-"ne.kr",
-"or.kr",
-"pe.kr",
-"re.kr",
-"sc.kr",
-"busan.kr",
-"chungbuk.kr",
-"chungnam.kr",
-"daegu.kr",
-"daejeon.kr",
-"gangwon.kr",
-"gwangju.kr",
-"gyeongbuk.kr",
-"gyeonggi.kr",
-"gyeongnam.kr",
-"incheon.kr",
-"jeju.kr",
-"jeonbuk.kr",
-"jeonnam.kr",
-"seoul.kr",
-"ulsan.kr",
-"kw",
-"com.kw",
-"edu.kw",
-"emb.kw",
-"gov.kw",
-"ind.kw",
-"net.kw",
-"org.kw",
-"ky",
-"edu.ky",
-"gov.ky",
-"com.ky",
-"org.ky",
-"net.ky",
-"kz",
-"org.kz",
-"edu.kz",
-"net.kz",
-"gov.kz",
-"mil.kz",
-"com.kz",
-"la",
-"int.la",
-"net.la",
-"info.la",
-"edu.la",
-"gov.la",
-"per.la",
-"com.la",
-"org.la",
-"lb",
-"com.lb",
-"edu.lb",
-"gov.lb",
-"net.lb",
-"org.lb",
-"lc",
-"com.lc",
-"net.lc",
-"co.lc",
-"org.lc",
-"edu.lc",
-"gov.lc",
-"li",
-"lk",
-"gov.lk",
-"sch.lk",
-"net.lk",
-"int.lk",
-"com.lk",
-"org.lk",
-"edu.lk",
-"ngo.lk",
-"soc.lk",
-"web.lk",
-"ltd.lk",
-"assn.lk",
-"grp.lk",
-"hotel.lk",
-"ac.lk",
-"lr",
-"com.lr",
-"edu.lr",
-"gov.lr",
-"org.lr",
-"net.lr",
-"ls",
-"ac.ls",
-"biz.ls",
-"co.ls",
-"edu.ls",
-"gov.ls",
-"info.ls",
-"net.ls",
-"org.ls",
-"sc.ls",
-"lt",
-"gov.lt",
-"lu",
-"lv",
-"com.lv",
-"edu.lv",
-"gov.lv",
-"org.lv",
-"mil.lv",
-"id.lv",
-"net.lv",
-"asn.lv",
-"conf.lv",
-"ly",
-"com.ly",
-"net.ly",
-"gov.ly",
-"plc.ly",
-"edu.ly",
-"sch.ly",
-"med.ly",
-"org.ly",
-"id.ly",
-"ma",
-"co.ma",
-"net.ma",
-"gov.ma",
-"org.ma",
-"ac.ma",
-"press.ma",
-"mc",
-"tm.mc",
-"asso.mc",
-"md",
-"me",
-"co.me",
-"net.me",
-"org.me",
-"edu.me",
-"ac.me",
-"gov.me",
-"its.me",
-"priv.me",
-"mg",
-"org.mg",
-"nom.mg",
-"gov.mg",
-"prd.mg",
-"tm.mg",
-"edu.mg",
-"mil.mg",
-"com.mg",
-"co.mg",
-"mh",
-"mil",
-"mk",
-"com.mk",
-"org.mk",
-"net.mk",
-"edu.mk",
-"gov.mk",
-"inf.mk",
-"name.mk",
-"ml",
-"com.ml",
-"edu.ml",
-"gouv.ml",
-"gov.ml",
-"net.ml",
-"org.ml",
-"presse.ml",
-"*.mm",
-"mn",
-"gov.mn",
-"edu.mn",
-"org.mn",
-"mo",
-"com.mo",
-"net.mo",
-"org.mo",
-"edu.mo",
-"gov.mo",
-"mobi",
-"mp",
-"mq",
-"mr",
-"gov.mr",
-"ms",
-"com.ms",
-"edu.ms",
-"gov.ms",
-"net.ms",
-"org.ms",
-"mt",
-"com.mt",
-"edu.mt",
-"net.mt",
-"org.mt",
-"mu",
-"com.mu",
-"net.mu",
-"org.mu",
-"gov.mu",
-"ac.mu",
-"co.mu",
-"or.mu",
-"museum",
-"academy.museum",
-"agriculture.museum",
-"air.museum",
-"airguard.museum",
-"alabama.museum",
-"alaska.museum",
-"amber.museum",
-"ambulance.museum",
-"american.museum",
-"americana.museum",
-"americanantiques.museum",
-"americanart.museum",
-"amsterdam.museum",
-"and.museum",
-"annefrank.museum",
-"anthro.museum",
-"anthropology.museum",
-"antiques.museum",
-"aquarium.museum",
-"arboretum.museum",
-"archaeological.museum",
-"archaeology.museum",
-"architecture.museum",
-"art.museum",
-"artanddesign.museum",
-"artcenter.museum",
-"artdeco.museum",
-"arteducation.museum",
-"artgallery.museum",
-"arts.museum",
-"artsandcrafts.museum",
-"asmatart.museum",
-"assassination.museum",
-"assisi.museum",
-"association.museum",
-"astronomy.museum",
-"atlanta.museum",
-"austin.museum",
-"australia.museum",
-"automotive.museum",
-"aviation.museum",
-"axis.museum",
-"badajoz.museum",
-"baghdad.museum",
-"bahn.museum",
-"bale.museum",
-"baltimore.museum",
-"barcelona.museum",
-"baseball.museum",
-"basel.museum",
-"baths.museum",
-"bauern.museum",
-"beauxarts.museum",
-"beeldengeluid.museum",
-"bellevue.museum",
-"bergbau.museum",
-"berkeley.museum",
-"berlin.museum",
-"bern.museum",
-"bible.museum",
-"bilbao.museum",
-"bill.museum",
-"birdart.museum",
-"birthplace.museum",
-"bonn.museum",
-"boston.museum",
-"botanical.museum",
-"botanicalgarden.museum",
-"botanicgarden.museum",
-"botany.museum",
-"brandywinevalley.museum",
-"brasil.museum",
-"bristol.museum",
-"british.museum",
-"britishcolumbia.museum",
-"broadcast.museum",
-"brunel.museum",
-"brussel.museum",
-"brussels.museum",
-"bruxelles.museum",
-"building.museum",
-"burghof.museum",
-"bus.museum",
-"bushey.museum",
-"cadaques.museum",
-"california.museum",
-"cambridge.museum",
-"can.museum",
-"canada.museum",
-"capebreton.museum",
-"carrier.museum",
-"cartoonart.museum",
-"casadelamoneda.museum",
-"castle.museum",
-"castres.museum",
-"celtic.museum",
-"center.museum",
-"chattanooga.museum",
-"cheltenham.museum",
-"chesapeakebay.museum",
-"chicago.museum",
-"children.museum",
-"childrens.museum",
-"childrensgarden.museum",
-"chiropractic.museum",
-"chocolate.museum",
-"christiansburg.museum",
-"cincinnati.museum",
-"cinema.museum",
-"circus.museum",
-"civilisation.museum",
-"civilization.museum",
-"civilwar.museum",
-"clinton.museum",
-"clock.museum",
-"coal.museum",
-"coastaldefence.museum",
-"cody.museum",
-"coldwar.museum",
-"collection.museum",
-"colonialwilliamsburg.museum",
-"coloradoplateau.museum",
-"columbia.museum",
-"columbus.museum",
-"communication.museum",
-"communications.museum",
-"community.museum",
-"computer.museum",
-"computerhistory.museum",
-"comunicações.museum",
-"contemporary.museum",
-"contemporaryart.museum",
-"convent.museum",
-"copenhagen.museum",
-"corporation.museum",
-"correios-e-telecomunicações.museum",
-"corvette.museum",
-"costume.museum",
-"countryestate.museum",
-"county.museum",
-"crafts.museum",
-"cranbrook.museum",
-"creation.museum",
-"cultural.museum",
-"culturalcenter.museum",
-"culture.museum",
-"cyber.museum",
-"cymru.museum",
-"dali.museum",
-"dallas.museum",
-"database.museum",
-"ddr.museum",
-"decorativearts.museum",
-"delaware.museum",
-"delmenhorst.museum",
-"denmark.museum",
-"depot.museum",
-"design.museum",
-"detroit.museum",
-"dinosaur.museum",
-"discovery.museum",
-"dolls.museum",
-"donostia.museum",
-"durham.museum",
-"eastafrica.museum",
-"eastcoast.museum",
-"education.museum",
-"educational.museum",
-"egyptian.museum",
-"eisenbahn.museum",
-"elburg.museum",
-"elvendrell.museum",
-"embroidery.museum",
-"encyclopedic.museum",
-"england.museum",
-"entomology.museum",
-"environment.museum",
-"environmentalconservation.museum",
-"epilepsy.museum",
-"essex.museum",
-"estate.museum",
-"ethnology.museum",
-"exeter.museum",
-"exhibition.museum",
-"family.museum",
-"farm.museum",
-"farmequipment.museum",
-"farmers.museum",
-"farmstead.museum",
-"field.museum",
-"figueres.museum",
-"filatelia.museum",
-"film.museum",
-"fineart.museum",
-"finearts.museum",
-"finland.museum",
-"flanders.museum",
-"florida.museum",
-"force.museum",
-"fortmissoula.museum",
-"fortworth.museum",
-"foundation.museum",
-"francaise.museum",
-"frankfurt.museum",
-"franziskaner.museum",
-"freemasonry.museum",
-"freiburg.museum",
-"fribourg.museum",
-"frog.museum",
-"fundacio.museum",
-"furniture.museum",
-"gallery.museum",
-"garden.museum",
-"gateway.museum",
-"geelvinck.museum",
-"gemological.museum",
-"geology.museum",
-"georgia.museum",
-"giessen.museum",
-"glas.museum",
-"glass.museum",
-"gorge.museum",
-"grandrapids.museum",
-"graz.museum",
-"guernsey.museum",
-"halloffame.museum",
-"hamburg.museum",
-"handson.museum",
-"harvestcelebration.museum",
-"hawaii.museum",
-"health.museum",
-"heimatunduhren.museum",
-"hellas.museum",
-"helsinki.museum",
-"hembygdsforbund.museum",
-"heritage.museum",
-"histoire.museum",
-"historical.museum",
-"historicalsociety.museum",
-"historichouses.museum",
-"historisch.museum",
-"historisches.museum",
-"history.museum",
-"historyofscience.museum",
-"horology.museum",
-"house.museum",
-"humanities.museum",
-"illustration.museum",
-"imageandsound.museum",
-"indian.museum",
-"indiana.museum",
-"indianapolis.museum",
-"indianmarket.museum",
-"intelligence.museum",
-"interactive.museum",
-"iraq.museum",
-"iron.museum",
-"isleofman.museum",
-"jamison.museum",
-"jefferson.museum",
-"jerusalem.museum",
-"jewelry.museum",
-"jewish.museum",
-"jewishart.museum",
-"jfk.museum",
-"journalism.museum",
-"judaica.museum",
-"judygarland.museum",
-"juedisches.museum",
-"juif.museum",
-"karate.museum",
-"karikatur.museum",
-"kids.museum",
-"koebenhavn.museum",
-"koeln.museum",
-"kunst.museum",
-"kunstsammlung.museum",
-"kunstunddesign.museum",
-"labor.museum",
-"labour.museum",
-"lajolla.museum",
-"lancashire.museum",
-"landes.museum",
-"lans.museum",
-"läns.museum",
-"larsson.museum",
-"lewismiller.museum",
-"lincoln.museum",
-"linz.museum",
-"living.museum",
-"livinghistory.museum",
-"localhistory.museum",
-"london.museum",
-"losangeles.museum",
-"louvre.museum",
-"loyalist.museum",
-"lucerne.museum",
-"luxembourg.museum",
-"luzern.museum",
-"mad.museum",
-"madrid.museum",
-"mallorca.museum",
-"manchester.museum",
-"mansion.museum",
-"mansions.museum",
-"manx.museum",
-"marburg.museum",
-"maritime.museum",
-"maritimo.museum",
-"maryland.museum",
-"marylhurst.museum",
-"media.museum",
-"medical.museum",
-"medizinhistorisches.museum",
-"meeres.museum",
-"memorial.museum",
-"mesaverde.museum",
-"michigan.museum",
-"midatlantic.museum",
-"military.museum",
-"mill.museum",
-"miners.museum",
-"mining.museum",
-"minnesota.museum",
-"missile.museum",
-"missoula.museum",
-"modern.museum",
-"moma.museum",
-"money.museum",
-"monmouth.museum",
-"monticello.museum",
-"montreal.museum",
-"moscow.museum",
-"motorcycle.museum",
-"muenchen.museum",
-"muenster.museum",
-"mulhouse.museum",
-"muncie.museum",
-"museet.museum",
-"museumcenter.museum",
-"museumvereniging.museum",
-"music.museum",
-"national.museum",
-"nationalfirearms.museum",
-"nationalheritage.museum",
-"nativeamerican.museum",
-"naturalhistory.museum",
-"naturalhistorymuseum.museum",
-"naturalsciences.museum",
-"nature.museum",
-"naturhistorisches.museum",
-"natuurwetenschappen.museum",
-"naumburg.museum",
-"naval.museum",
-"nebraska.museum",
-"neues.museum",
-"newhampshire.museum",
-"newjersey.museum",
-"newmexico.museum",
-"newport.museum",
-"newspaper.museum",
-"newyork.museum",
-"niepce.museum",
-"norfolk.museum",
-"north.museum",
-"nrw.museum",
-"nyc.museum",
-"nyny.museum",
-"oceanographic.museum",
-"oceanographique.museum",
-"omaha.museum",
-"online.museum",
-"ontario.museum",
-"openair.museum",
-"oregon.museum",
-"oregontrail.museum",
-"otago.museum",
-"oxford.museum",
-"pacific.museum",
-"paderborn.museum",
-"palace.museum",
-"paleo.museum",
-"palmsprings.museum",
-"panama.museum",
-"paris.museum",
-"pasadena.museum",
-"pharmacy.museum",
-"philadelphia.museum",
-"philadelphiaarea.museum",
-"philately.museum",
-"phoenix.museum",
-"photography.museum",
-"pilots.museum",
-"pittsburgh.museum",
-"planetarium.museum",
-"plantation.museum",
-"plants.museum",
-"plaza.museum",
-"portal.museum",
-"portland.museum",
-"portlligat.museum",
-"posts-and-telecommunications.museum",
-"preservation.museum",
-"presidio.museum",
-"press.museum",
-"project.museum",
-"public.museum",
-"pubol.museum",
-"quebec.museum",
-"railroad.museum",
-"railway.museum",
-"research.museum",
-"resistance.museum",
-"riodejaneiro.museum",
-"rochester.museum",
-"rockart.museum",
-"roma.museum",
-"russia.museum",
-"saintlouis.museum",
-"salem.museum",
-"salvadordali.museum",
-"salzburg.museum",
-"sandiego.museum",
-"sanfrancisco.museum",
-"santabarbara.museum",
-"santacruz.museum",
-"santafe.museum",
-"saskatchewan.museum",
-"satx.museum",
-"savannahga.museum",
-"schlesisches.museum",
-"schoenbrunn.museum",
-"schokoladen.museum",
-"school.museum",
-"schweiz.museum",
-"science.museum",
-"scienceandhistory.museum",
-"scienceandindustry.museum",
-"sciencecenter.museum",
-"sciencecenters.museum",
-"science-fiction.museum",
-"sciencehistory.museum",
-"sciences.museum",
-"sciencesnaturelles.museum",
-"scotland.museum",
-"seaport.museum",
-"settlement.museum",
-"settlers.museum",
-"shell.museum",
-"sherbrooke.museum",
-"sibenik.museum",
-"silk.museum",
-"ski.museum",
-"skole.museum",
-"society.museum",
-"sologne.museum",
-"soundandvision.museum",
-"southcarolina.museum",
-"southwest.museum",
-"space.museum",
-"spy.museum",
-"square.museum",
-"stadt.museum",
-"stalbans.museum",
-"starnberg.museum",
-"state.museum",
-"stateofdelaware.museum",
-"station.museum",
-"steam.museum",
-"steiermark.museum",
-"stjohn.museum",
-"stockholm.museum",
-"stpetersburg.museum",
-"stuttgart.museum",
-"suisse.museum",
-"surgeonshall.museum",
-"surrey.museum",
-"svizzera.museum",
-"sweden.museum",
-"sydney.museum",
-"tank.museum",
-"tcm.museum",
-"technology.museum",
-"telekommunikation.museum",
-"television.museum",
-"texas.museum",
-"textile.museum",
-"theater.museum",
-"time.museum",
-"timekeeping.museum",
-"topology.museum",
-"torino.museum",
-"touch.museum",
-"town.museum",
-"transport.museum",
-"tree.museum",
-"trolley.museum",
-"trust.museum",
-"trustee.museum",
-"uhren.museum",
-"ulm.museum",
-"undersea.museum",
-"university.museum",
-"usa.museum",
-"usantiques.museum",
-"usarts.museum",
-"uscountryestate.museum",
-"usculture.museum",
-"usdecorativearts.museum",
-"usgarden.museum",
-"ushistory.museum",
-"ushuaia.museum",
-"uslivinghistory.museum",
-"utah.museum",
-"uvic.museum",
-"valley.museum",
-"vantaa.museum",
-"versailles.museum",
-"viking.museum",
-"village.museum",
-"virginia.museum",
-"virtual.museum",
-"virtuel.museum",
-"vlaanderen.museum",
-"volkenkunde.museum",
-"wales.museum",
-"wallonie.museum",
-"war.museum",
-"washingtondc.museum",
-"watchandclock.museum",
-"watch-and-clock.museum",
-"western.museum",
-"westfalen.museum",
-"whaling.museum",
-"wildlife.museum",
-"williamsburg.museum",
-"windmill.museum",
-"workshop.museum",
-"york.museum",
-"yorkshire.museum",
-"yosemite.museum",
-"youth.museum",
-"zoological.museum",
-"zoology.museum",
-"ירושלים.museum",
-"иком.museum",
-"mv",
-"aero.mv",
-"biz.mv",
-"com.mv",
-"coop.mv",
-"edu.mv",
-"gov.mv",
-"info.mv",
-"int.mv",
-"mil.mv",
-"museum.mv",
-"name.mv",
-"net.mv",
-"org.mv",
-"pro.mv",
-"mw",
-"ac.mw",
-"biz.mw",
-"co.mw",
-"com.mw",
-"coop.mw",
-"edu.mw",
-"gov.mw",
-"int.mw",
-"museum.mw",
-"net.mw",
-"org.mw",
-"mx",
-"com.mx",
-"org.mx",
-"gob.mx",
-"edu.mx",
-"net.mx",
-"my",
-"com.my",
-"net.my",
-"org.my",
-"gov.my",
-"edu.my",
-"mil.my",
-"name.my",
-"mz",
-"ac.mz",
-"adv.mz",
-"co.mz",
-"edu.mz",
-"gov.mz",
-"mil.mz",
-"net.mz",
-"org.mz",
-"na",
-"info.na",
-"pro.na",
-"name.na",
-"school.na",
-"or.na",
-"dr.na",
-"us.na",
-"mx.na",
-"ca.na",
-"in.na",
-"cc.na",
-"tv.na",
-"ws.na",
-"mobi.na",
-"co.na",
-"com.na",
-"org.na",
-"name",
-"nc",
-"asso.nc",
-"nom.nc",
-"ne",
-"net",
-"nf",
-"com.nf",
-"net.nf",
-"per.nf",
-"rec.nf",
-"web.nf",
-"arts.nf",
-"firm.nf",
-"info.nf",
-"other.nf",
-"store.nf",
-"ng",
-"com.ng",
-"edu.ng",
-"gov.ng",
-"i.ng",
-"mil.ng",
-"mobi.ng",
-"name.ng",
-"net.ng",
-"org.ng",
-"sch.ng",
-"ni",
-"ac.ni",
-"biz.ni",
-"co.ni",
-"com.ni",
-"edu.ni",
-"gob.ni",
-"in.ni",
-"info.ni",
-"int.ni",
-"mil.ni",
-"net.ni",
-"nom.ni",
-"org.ni",
-"web.ni",
-"nl",
-"no",
-"fhs.no",
-"vgs.no",
-"fylkesbibl.no",
-"folkebibl.no",
-"museum.no",
-"idrett.no",
-"priv.no",
-"mil.no",
-"stat.no",
-"dep.no",
-"kommune.no",
-"herad.no",
-"aa.no",
-"ah.no",
-"bu.no",
-"fm.no",
-"hl.no",
-"hm.no",
-"jan-mayen.no",
-"mr.no",
-"nl.no",
-"nt.no",
-"of.no",
-"ol.no",
-"oslo.no",
-"rl.no",
-"sf.no",
-"st.no",
-"svalbard.no",
-"tm.no",
-"tr.no",
-"va.no",
-"vf.no",
-"gs.aa.no",
-"gs.ah.no",
-"gs.bu.no",
-"gs.fm.no",
-"gs.hl.no",
-"gs.hm.no",
-"gs.jan-mayen.no",
-"gs.mr.no",
-"gs.nl.no",
-"gs.nt.no",
-"gs.of.no",
-"gs.ol.no",
-"gs.oslo.no",
-"gs.rl.no",
-"gs.sf.no",
-"gs.st.no",
-"gs.svalbard.no",
-"gs.tm.no",
-"gs.tr.no",
-"gs.va.no",
-"gs.vf.no",
-"akrehamn.no",
-"åkrehamn.no",
-"algard.no",
-"ålgård.no",
-"arna.no",
-"brumunddal.no",
-"bryne.no",
-"bronnoysund.no",
-"brønnøysund.no",
-"drobak.no",
-"drøbak.no",
-"egersund.no",
-"fetsund.no",
-"floro.no",
-"florø.no",
-"fredrikstad.no",
-"hokksund.no",
-"honefoss.no",
-"hønefoss.no",
-"jessheim.no",
-"jorpeland.no",
-"jørpeland.no",
-"kirkenes.no",
-"kopervik.no",
-"krokstadelva.no",
-"langevag.no",
-"langevåg.no",
-"leirvik.no",
-"mjondalen.no",
-"mjøndalen.no",
-"mo-i-rana.no",
-"mosjoen.no",
-"mosjøen.no",
-"nesoddtangen.no",
-"orkanger.no",
-"osoyro.no",
-"osøyro.no",
-"raholt.no",
-"råholt.no",
-"sandnessjoen.no",
-"sandnessjøen.no",
-"skedsmokorset.no",
-"slattum.no",
-"spjelkavik.no",
-"stathelle.no",
-"stavern.no",
-"stjordalshalsen.no",
-"stjørdalshalsen.no",
-"tananger.no",
-"tranby.no",
-"vossevangen.no",
-"afjord.no",
-"åfjord.no",
-"agdenes.no",
-"al.no",
-"ål.no",
-"alesund.no",
-"ålesund.no",
-"alstahaug.no",
-"alta.no",
-"áltá.no",
-"alaheadju.no",
-"álaheadju.no",
-"alvdal.no",
-"amli.no",
-"åmli.no",
-"amot.no",
-"åmot.no",
-"andebu.no",
-"andoy.no",
-"andøy.no",
-"andasuolo.no",
-"ardal.no",
-"årdal.no",
-"aremark.no",
-"arendal.no",
-"ås.no",
-"aseral.no",
-"åseral.no",
-"asker.no",
-"askim.no",
-"askvoll.no",
-"askoy.no",
-"askøy.no",
-"asnes.no",
-"åsnes.no",
-"audnedaln.no",
-"aukra.no",
-"aure.no",
-"aurland.no",
-"aurskog-holand.no",
-"aurskog-høland.no",
-"austevoll.no",
-"austrheim.no",
-"averoy.no",
-"averøy.no",
-"balestrand.no",
-"ballangen.no",
-"balat.no",
-"bálát.no",
-"balsfjord.no",
-"bahccavuotna.no",
-"báhccavuotna.no",
-"bamble.no",
-"bardu.no",
-"beardu.no",
-"beiarn.no",
-"bajddar.no",
-"bájddar.no",
-"baidar.no",
-"báidár.no",
-"berg.no",
-"bergen.no",
-"berlevag.no",
-"berlevåg.no",
-"bearalvahki.no",
-"bearalváhki.no",
-"bindal.no",
-"birkenes.no",
-"bjarkoy.no",
-"bjarkøy.no",
-"bjerkreim.no",
-"bjugn.no",
-"bodo.no",
-"bodø.no",
-"badaddja.no",
-"bådåddjå.no",
-"budejju.no",
-"bokn.no",
-"bremanger.no",
-"bronnoy.no",
-"brønnøy.no",
-"bygland.no",
-"bykle.no",
-"barum.no",
-"bærum.no",
-"bo.telemark.no",
-"bø.telemark.no",
-"bo.nordland.no",
-"bø.nordland.no",
-"bievat.no",
-"bievát.no",
-"bomlo.no",
-"bømlo.no",
-"batsfjord.no",
-"båtsfjord.no",
-"bahcavuotna.no",
-"báhcavuotna.no",
-"dovre.no",
-"drammen.no",
-"drangedal.no",
-"dyroy.no",
-"dyrøy.no",
-"donna.no",
-"dønna.no",
-"eid.no",
-"eidfjord.no",
-"eidsberg.no",
-"eidskog.no",
-"eidsvoll.no",
-"eigersund.no",
-"elverum.no",
-"enebakk.no",
-"engerdal.no",
-"etne.no",
-"etnedal.no",
-"evenes.no",
-"evenassi.no",
-"evenášši.no",
-"evje-og-hornnes.no",
-"farsund.no",
-"fauske.no",
-"fuossko.no",
-"fuoisku.no",
-"fedje.no",
-"fet.no",
-"finnoy.no",
-"finnøy.no",
-"fitjar.no",
-"fjaler.no",
-"fjell.no",
-"flakstad.no",
-"flatanger.no",
-"flekkefjord.no",
-"flesberg.no",
-"flora.no",
-"fla.no",
-"flå.no",
-"folldal.no",
-"forsand.no",
-"fosnes.no",
-"frei.no",
-"frogn.no",
-"froland.no",
-"frosta.no",
-"frana.no",
-"fræna.no",
-"froya.no",
-"frøya.no",
-"fusa.no",
-"fyresdal.no",
-"forde.no",
-"førde.no",
-"gamvik.no",
-"gangaviika.no",
-"gáŋgaviika.no",
-"gaular.no",
-"gausdal.no",
-"gildeskal.no",
-"gildeskål.no",
-"giske.no",
-"gjemnes.no",
-"gjerdrum.no",
-"gjerstad.no",
-"gjesdal.no",
-"gjovik.no",
-"gjøvik.no",
-"gloppen.no",
-"gol.no",
-"gran.no",
-"grane.no",
-"granvin.no",
-"gratangen.no",
-"grimstad.no",
-"grong.no",
-"kraanghke.no",
-"kråanghke.no",
-"grue.no",
-"gulen.no",
-"hadsel.no",
-"halden.no",
-"halsa.no",
-"hamar.no",
-"hamaroy.no",
-"habmer.no",
-"hábmer.no",
-"hapmir.no",
-"hápmir.no",
-"hammerfest.no",
-"hammarfeasta.no",
-"hámmárfeasta.no",
-"haram.no",
-"hareid.no",
-"harstad.no",
-"hasvik.no",
-"aknoluokta.no",
-"ákŋoluokta.no",
-"hattfjelldal.no",
-"aarborte.no",
-"haugesund.no",
-"hemne.no",
-"hemnes.no",
-"hemsedal.no",
-"heroy.more-og-romsdal.no",
-"herøy.møre-og-romsdal.no",
-"heroy.nordland.no",
-"herøy.nordland.no",
-"hitra.no",
-"hjartdal.no",
-"hjelmeland.no",
-"hobol.no",
-"hobøl.no",
-"hof.no",
-"hol.no",
-"hole.no",
-"holmestrand.no",
-"holtalen.no",
-"holtålen.no",
-"hornindal.no",
-"horten.no",
-"hurdal.no",
-"hurum.no",
-"hvaler.no",
-"hyllestad.no",
-"hagebostad.no",
-"hægebostad.no",
-"hoyanger.no",
-"høyanger.no",
-"hoylandet.no",
-"høylandet.no",
-"ha.no",
-"hå.no",
-"ibestad.no",
-"inderoy.no",
-"inderøy.no",
-"iveland.no",
-"jevnaker.no",
-"jondal.no",
-"jolster.no",
-"jølster.no",
-"karasjok.no",
-"karasjohka.no",
-"kárášjohka.no",
-"karlsoy.no",
-"galsa.no",
-"gálsá.no",
-"karmoy.no",
-"karmøy.no",
-"kautokeino.no",
-"guovdageaidnu.no",
-"klepp.no",
-"klabu.no",
-"klæbu.no",
-"kongsberg.no",
-"kongsvinger.no",
-"kragero.no",
-"kragerø.no",
-"kristiansand.no",
-"kristiansund.no",
-"krodsherad.no",
-"krødsherad.no",
-"kvalsund.no",
-"rahkkeravju.no",
-"ráhkkerávju.no",
-"kvam.no",
-"kvinesdal.no",
-"kvinnherad.no",
-"kviteseid.no",
-"kvitsoy.no",
-"kvitsøy.no",
-"kvafjord.no",
-"kvæfjord.no",
-"giehtavuoatna.no",
-"kvanangen.no",
-"kvænangen.no",
-"navuotna.no",
-"návuotna.no",
-"kafjord.no",
-"kåfjord.no",
-"gaivuotna.no",
-"gáivuotna.no",
-"larvik.no",
-"lavangen.no",
-"lavagis.no",
-"loabat.no",
-"loabát.no",
-"lebesby.no",
-"davvesiida.no",
-"leikanger.no",
-"leirfjord.no",
-"leka.no",
-"leksvik.no",
-"lenvik.no",
-"leangaviika.no",
-"leaŋgaviika.no",
-"lesja.no",
-"levanger.no",
-"lier.no",
-"lierne.no",
-"lillehammer.no",
-"lillesand.no",
-"lindesnes.no",
-"lindas.no",
-"lindås.no",
-"lom.no",
-"loppa.no",
-"lahppi.no",
-"láhppi.no",
-"lund.no",
-"lunner.no",
-"luroy.no",
-"lurøy.no",
-"luster.no",
-"lyngdal.no",
-"lyngen.no",
-"ivgu.no",
-"lardal.no",
-"lerdal.no",
-"lærdal.no",
-"lodingen.no",
-"lødingen.no",
-"lorenskog.no",
-"lørenskog.no",
-"loten.no",
-"løten.no",
-"malvik.no",
-"masoy.no",
-"måsøy.no",
-"muosat.no",
-"muosát.no",
-"mandal.no",
-"marker.no",
-"marnardal.no",
-"masfjorden.no",
-"meland.no",
-"meldal.no",
-"melhus.no",
-"meloy.no",
-"meløy.no",
-"meraker.no",
-"meråker.no",
-"moareke.no",
-"moåreke.no",
-"midsund.no",
-"midtre-gauldal.no",
-"modalen.no",
-"modum.no",
-"molde.no",
-"moskenes.no",
-"moss.no",
-"mosvik.no",
-"malselv.no",
-"målselv.no",
-"malatvuopmi.no",
-"málatvuopmi.no",
-"namdalseid.no",
-"aejrie.no",
-"namsos.no",
-"namsskogan.no",
-"naamesjevuemie.no",
-"nååmesjevuemie.no",
-"laakesvuemie.no",
-"nannestad.no",
-"narvik.no",
-"narviika.no",
-"naustdal.no",
-"nedre-eiker.no",
-"nes.akershus.no",
-"nes.buskerud.no",
-"nesna.no",
-"nesodden.no",
-"nesseby.no",
-"unjarga.no",
-"unjárga.no",
-"nesset.no",
-"nissedal.no",
-"nittedal.no",
-"nord-aurdal.no",
-"nord-fron.no",
-"nord-odal.no",
-"norddal.no",
-"nordkapp.no",
-"davvenjarga.no",
-"davvenjárga.no",
-"nordre-land.no",
-"nordreisa.no",
-"raisa.no",
-"ráisa.no",
-"nore-og-uvdal.no",
-"notodden.no",
-"naroy.no",
-"nærøy.no",
-"notteroy.no",
-"nøtterøy.no",
-"odda.no",
-"oksnes.no",
-"øksnes.no",
-"oppdal.no",
-"oppegard.no",
-"oppegård.no",
-"orkdal.no",
-"orland.no",
-"ørland.no",
-"orskog.no",
-"ørskog.no",
-"orsta.no",
-"ørsta.no",
-"os.hedmark.no",
-"os.hordaland.no",
-"osen.no",
-"osteroy.no",
-"osterøy.no",
-"ostre-toten.no",
-"østre-toten.no",
-"overhalla.no",
-"ovre-eiker.no",
-"øvre-eiker.no",
-"oyer.no",
-"øyer.no",
-"oygarden.no",
-"øygarden.no",
-"oystre-slidre.no",
-"øystre-slidre.no",
-"porsanger.no",
-"porsangu.no",
-"porsáŋgu.no",
-"porsgrunn.no",
-"radoy.no",
-"radøy.no",
-"rakkestad.no",
-"rana.no",
-"ruovat.no",
-"randaberg.no",
-"rauma.no",
-"rendalen.no",
-"rennebu.no",
-"rennesoy.no",
-"rennesøy.no",
-"rindal.no",
-"ringebu.no",
-"ringerike.no",
-"ringsaker.no",
-"rissa.no",
-"risor.no",
-"risør.no",
-"roan.no",
-"rollag.no",
-"rygge.no",
-"ralingen.no",
-"rælingen.no",
-"rodoy.no",
-"rødøy.no",
-"romskog.no",
-"rømskog.no",
-"roros.no",
-"røros.no",
-"rost.no",
-"røst.no",
-"royken.no",
-"røyken.no",
-"royrvik.no",
-"røyrvik.no",
-"rade.no",
-"råde.no",
-"salangen.no",
-"siellak.no",
-"saltdal.no",
-"salat.no",
-"sálát.no",
-"sálat.no",
-"samnanger.no",
-"sande.more-og-romsdal.no",
-"sande.møre-og-romsdal.no",
-"sande.vestfold.no",
-"sandefjord.no",
-"sandnes.no",
-"sandoy.no",
-"sandøy.no",
-"sarpsborg.no",
-"sauda.no",
-"sauherad.no",
-"sel.no",
-"selbu.no",
-"selje.no",
-"seljord.no",
-"sigdal.no",
-"siljan.no",
-"sirdal.no",
-"skaun.no",
-"skedsmo.no",
-"ski.no",
-"skien.no",
-"skiptvet.no",
-"skjervoy.no",
-"skjervøy.no",
-"skierva.no",
-"skiervá.no",
-"skjak.no",
-"skjåk.no",
-"skodje.no",
-"skanland.no",
-"skånland.no",
-"skanit.no",
-"skánit.no",
-"smola.no",
-"smøla.no",
-"snillfjord.no",
-"snasa.no",
-"snåsa.no",
-"snoasa.no",
-"snaase.no",
-"snåase.no",
-"sogndal.no",
-"sokndal.no",
-"sola.no",
-"solund.no",
-"songdalen.no",
-"sortland.no",
-"spydeberg.no",
-"stange.no",
-"stavanger.no",
-"steigen.no",
-"steinkjer.no",
-"stjordal.no",
-"stjørdal.no",
-"stokke.no",
-"stor-elvdal.no",
-"stord.no",
-"stordal.no",
-"storfjord.no",
-"omasvuotna.no",
-"strand.no",
-"stranda.no",
-"stryn.no",
-"sula.no",
-"suldal.no",
-"sund.no",
-"sunndal.no",
-"surnadal.no",
-"sveio.no",
-"svelvik.no",
-"sykkylven.no",
-"sogne.no",
-"søgne.no",
-"somna.no",
-"sømna.no",
-"sondre-land.no",
-"søndre-land.no",
-"sor-aurdal.no",
-"sør-aurdal.no",
-"sor-fron.no",
-"sør-fron.no",
-"sor-odal.no",
-"sør-odal.no",
-"sor-varanger.no",
-"sør-varanger.no",
-"matta-varjjat.no",
-"mátta-várjjat.no",
-"sorfold.no",
-"sørfold.no",
-"sorreisa.no",
-"sørreisa.no",
-"sorum.no",
-"sørum.no",
-"tana.no",
-"deatnu.no",
-"time.no",
-"tingvoll.no",
-"tinn.no",
-"tjeldsund.no",
-"dielddanuorri.no",
-"tjome.no",
-"tjøme.no",
-"tokke.no",
-"tolga.no",
-"torsken.no",
-"tranoy.no",
-"tranøy.no",
-"tromso.no",
-"tromsø.no",
-"tromsa.no",
-"romsa.no",
-"trondheim.no",
-"troandin.no",
-"trysil.no",
-"trana.no",
-"træna.no",
-"trogstad.no",
-"trøgstad.no",
-"tvedestrand.no",
-"tydal.no",
-"tynset.no",
-"tysfjord.no",
-"divtasvuodna.no",
-"divttasvuotna.no",
-"tysnes.no",
-"tysvar.no",
-"tysvær.no",
-"tonsberg.no",
-"tønsberg.no",
-"ullensaker.no",
-"ullensvang.no",
-"ulvik.no",
-"utsira.no",
-"vadso.no",
-"vadsø.no",
-"cahcesuolo.no",
-"čáhcesuolo.no",
-"vaksdal.no",
-"valle.no",
-"vang.no",
-"vanylven.no",
-"vardo.no",
-"vardø.no",
-"varggat.no",
-"várggát.no",
-"vefsn.no",
-"vaapste.no",
-"vega.no",
-"vegarshei.no",
-"vegårshei.no",
-"vennesla.no",
-"verdal.no",
-"verran.no",
-"vestby.no",
-"vestnes.no",
-"vestre-slidre.no",
-"vestre-toten.no",
-"vestvagoy.no",
-"vestvågøy.no",
-"vevelstad.no",
-"vik.no",
-"vikna.no",
-"vindafjord.no",
-"volda.no",
-"voss.no",
-"varoy.no",
-"værøy.no",
-"vagan.no",
-"vågan.no",
-"voagat.no",
-"vagsoy.no",
-"vågsøy.no",
-"vaga.no",
-"vågå.no",
-"valer.ostfold.no",
-"våler.østfold.no",
-"valer.hedmark.no",
-"våler.hedmark.no",
-"*.np",
-"nr",
-"biz.nr",
-"info.nr",
-"gov.nr",
-"edu.nr",
-"org.nr",
-"net.nr",
-"com.nr",
-"nu",
-"nz",
-"ac.nz",
-"co.nz",
-"cri.nz",
-"geek.nz",
-"gen.nz",
-"govt.nz",
-"health.nz",
-"iwi.nz",
-"kiwi.nz",
-"maori.nz",
-"mil.nz",
-"māori.nz",
-"net.nz",
-"org.nz",
-"parliament.nz",
-"school.nz",
-"om",
-"co.om",
-"com.om",
-"edu.om",
-"gov.om",
-"med.om",
-"museum.om",
-"net.om",
-"org.om",
-"pro.om",
-"onion",
-"org",
-"pa",
-"ac.pa",
-"gob.pa",
-"com.pa",
-"org.pa",
-"sld.pa",
-"edu.pa",
-"net.pa",
-"ing.pa",
-"abo.pa",
-"med.pa",
-"nom.pa",
-"pe",
-"edu.pe",
-"gob.pe",
-"nom.pe",
-"mil.pe",
-"org.pe",
-"com.pe",
-"net.pe",
-"pf",
-"com.pf",
-"org.pf",
-"edu.pf",
-"*.pg",
-"ph",
-"com.ph",
-"net.ph",
-"org.ph",
-"gov.ph",
-"edu.ph",
-"ngo.ph",
-"mil.ph",
-"i.ph",
-"pk",
-"com.pk",
-"net.pk",
-"edu.pk",
-"org.pk",
-"fam.pk",
-"biz.pk",
-"web.pk",
-"gov.pk",
-"gob.pk",
-"gok.pk",
-"gon.pk",
-"gop.pk",
-"gos.pk",
-"info.pk",
-"pl",
-"com.pl",
-"net.pl",
-"org.pl",
-"aid.pl",
-"agro.pl",
-"atm.pl",
-"auto.pl",
-"biz.pl",
-"edu.pl",
-"gmina.pl",
-"gsm.pl",
-"info.pl",
-"mail.pl",
-"miasta.pl",
-"media.pl",
-"mil.pl",
-"nieruchomosci.pl",
-"nom.pl",
-"pc.pl",
-"powiat.pl",
-"priv.pl",
-"realestate.pl",
-"rel.pl",
-"sex.pl",
-"shop.pl",
-"sklep.pl",
-"sos.pl",
-"szkola.pl",
-"targi.pl",
-"tm.pl",
-"tourism.pl",
-"travel.pl",
-"turystyka.pl",
-"gov.pl",
-"ap.gov.pl",
-"ic.gov.pl",
-"is.gov.pl",
-"us.gov.pl",
-"kmpsp.gov.pl",
-"kppsp.gov.pl",
-"kwpsp.gov.pl",
-"psp.gov.pl",
-"wskr.gov.pl",
-"kwp.gov.pl",
-"mw.gov.pl",
-"ug.gov.pl",
-"um.gov.pl",
-"umig.gov.pl",
-"ugim.gov.pl",
-"upow.gov.pl",
-"uw.gov.pl",
-"starostwo.gov.pl",
-"pa.gov.pl",
-"po.gov.pl",
-"psse.gov.pl",
-"pup.gov.pl",
-"rzgw.gov.pl",
-"sa.gov.pl",
-"so.gov.pl",
-"sr.gov.pl",
-"wsa.gov.pl",
-"sko.gov.pl",
-"uzs.gov.pl",
-"wiih.gov.pl",
-"winb.gov.pl",
-"pinb.gov.pl",
-"wios.gov.pl",
-"witd.gov.pl",
-"wzmiuw.gov.pl",
-"piw.gov.pl",
-"wiw.gov.pl",
-"griw.gov.pl",
-"wif.gov.pl",
-"oum.gov.pl",
-"sdn.gov.pl",
-"zp.gov.pl",
-"uppo.gov.pl",
-"mup.gov.pl",
-"wuoz.gov.pl",
-"konsulat.gov.pl",
-"oirm.gov.pl",
-"augustow.pl",
-"babia-gora.pl",
-"bedzin.pl",
-"beskidy.pl",
-"bialowieza.pl",
-"bialystok.pl",
-"bielawa.pl",
-"bieszczady.pl",
-"boleslawiec.pl",
-"bydgoszcz.pl",
-"bytom.pl",
-"cieszyn.pl",
-"czeladz.pl",
-"czest.pl",
-"dlugoleka.pl",
-"elblag.pl",
-"elk.pl",
-"glogow.pl",
-"gniezno.pl",
-"gorlice.pl",
-"grajewo.pl",
-"ilawa.pl",
-"jaworzno.pl",
-"jelenia-gora.pl",
-"jgora.pl",
-"kalisz.pl",
-"kazimierz-dolny.pl",
-"karpacz.pl",
-"kartuzy.pl",
-"kaszuby.pl",
-"katowice.pl",
-"kepno.pl",
-"ketrzyn.pl",
-"klodzko.pl",
-"kobierzyce.pl",
-"kolobrzeg.pl",
-"konin.pl",
-"konskowola.pl",
-"kutno.pl",
-"lapy.pl",
-"lebork.pl",
-"legnica.pl",
-"lezajsk.pl",
-"limanowa.pl",
-"lomza.pl",
-"lowicz.pl",
-"lubin.pl",
-"lukow.pl",
-"malbork.pl",
-"malopolska.pl",
-"mazowsze.pl",
-"mazury.pl",
-"mielec.pl",
-"mielno.pl",
-"mragowo.pl",
-"naklo.pl",
-"nowaruda.pl",
-"nysa.pl",
-"olawa.pl",
-"olecko.pl",
-"olkusz.pl",
-"olsztyn.pl",
-"opoczno.pl",
-"opole.pl",
-"ostroda.pl",
-"ostroleka.pl",
-"ostrowiec.pl",
-"ostrowwlkp.pl",
-"pila.pl",
-"pisz.pl",
-"podhale.pl",
-"podlasie.pl",
-"polkowice.pl",
-"pomorze.pl",
-"pomorskie.pl",
-"prochowice.pl",
-"pruszkow.pl",
-"przeworsk.pl",
-"pulawy.pl",
-"radom.pl",
-"rawa-maz.pl",
-"rybnik.pl",
-"rzeszow.pl",
-"sanok.pl",
-"sejny.pl",
-"slask.pl",
-"slupsk.pl",
-"sosnowiec.pl",
-"stalowa-wola.pl",
-"skoczow.pl",
-"starachowice.pl",
-"stargard.pl",
-"suwalki.pl",
-"swidnica.pl",
-"swiebodzin.pl",
-"swinoujscie.pl",
-"szczecin.pl",
-"szczytno.pl",
-"tarnobrzeg.pl",
-"tgory.pl",
-"turek.pl",
-"tychy.pl",
-"ustka.pl",
-"walbrzych.pl",
-"warmia.pl",
-"warszawa.pl",
-"waw.pl",
-"wegrow.pl",
-"wielun.pl",
-"wlocl.pl",
-"wloclawek.pl",
-"wodzislaw.pl",
-"wolomin.pl",
-"wroclaw.pl",
-"zachpomor.pl",
-"zagan.pl",
-"zarow.pl",
-"zgora.pl",
-"zgorzelec.pl",
-"pm",
-"pn",
-"gov.pn",
-"co.pn",
-"org.pn",
-"edu.pn",
-"net.pn",
-"post",
-"pr",
-"com.pr",
-"net.pr",
-"org.pr",
-"gov.pr",
-"edu.pr",
-"isla.pr",
-"pro.pr",
-"biz.pr",
-"info.pr",
-"name.pr",
-"est.pr",
-"prof.pr",
-"ac.pr",
-"pro",
-"aaa.pro",
-"aca.pro",
-"acct.pro",
-"avocat.pro",
-"bar.pro",
-"cpa.pro",
-"eng.pro",
-"jur.pro",
-"law.pro",
-"med.pro",
-"recht.pro",
-"ps",
-"edu.ps",
-"gov.ps",
-"sec.ps",
-"plo.ps",
-"com.ps",
-"org.ps",
-"net.ps",
-"pt",
-"net.pt",
-"gov.pt",
-"org.pt",
-"edu.pt",
-"int.pt",
-"publ.pt",
-"com.pt",
-"nome.pt",
-"pw",
-"co.pw",
-"ne.pw",
-"or.pw",
-"ed.pw",
-"go.pw",
-"belau.pw",
-"py",
-"com.py",
-"coop.py",
-"edu.py",
-"gov.py",
-"mil.py",
-"net.py",
-"org.py",
-"qa",
-"com.qa",
-"edu.qa",
-"gov.qa",
-"mil.qa",
-"name.qa",
-"net.qa",
-"org.qa",
-"sch.qa",
-"re",
-"asso.re",
-"com.re",
-"nom.re",
-"ro",
-"arts.ro",
-"com.ro",
-"firm.ro",
-"info.ro",
-"nom.ro",
-"nt.ro",
-"org.ro",
-"rec.ro",
-"store.ro",
-"tm.ro",
-"www.ro",
-"rs",
-"ac.rs",
-"co.rs",
-"edu.rs",
-"gov.rs",
-"in.rs",
-"org.rs",
-"ru",
-"rw",
-"ac.rw",
-"co.rw",
-"coop.rw",
-"gov.rw",
-"mil.rw",
-"net.rw",
-"org.rw",
-"sa",
-"com.sa",
-"net.sa",
-"org.sa",
-"gov.sa",
-"med.sa",
-"pub.sa",
-"edu.sa",
-"sch.sa",
-"sb",
-"com.sb",
-"edu.sb",
-"gov.sb",
-"net.sb",
-"org.sb",
-"sc",
-"com.sc",
-"gov.sc",
-"net.sc",
-"org.sc",
-"edu.sc",
-"sd",
-"com.sd",
-"net.sd",
-"org.sd",
-"edu.sd",
-"med.sd",
-"tv.sd",
-"gov.sd",
-"info.sd",
-"se",
-"a.se",
-"ac.se",
-"b.se",
-"bd.se",
-"brand.se",
-"c.se",
-"d.se",
-"e.se",
-"f.se",
-"fh.se",
-"fhsk.se",
-"fhv.se",
-"g.se",
-"h.se",
-"i.se",
-"k.se",
-"komforb.se",
-"kommunalforbund.se",
-"komvux.se",
-"l.se",
-"lanbib.se",
-"m.se",
-"n.se",
-"naturbruksgymn.se",
-"o.se",
-"org.se",
-"p.se",
-"parti.se",
-"pp.se",
-"press.se",
-"r.se",
-"s.se",
-"t.se",
-"tm.se",
-"u.se",
-"w.se",
-"x.se",
-"y.se",
-"z.se",
-"sg",
-"com.sg",
-"net.sg",
-"org.sg",
-"gov.sg",
-"edu.sg",
-"per.sg",
-"sh",
-"com.sh",
-"net.sh",
-"gov.sh",
-"org.sh",
-"mil.sh",
-"si",
-"sj",
-"sk",
-"sl",
-"com.sl",
-"net.sl",
-"edu.sl",
-"gov.sl",
-"org.sl",
-"sm",
-"sn",
-"art.sn",
-"com.sn",
-"edu.sn",
-"gouv.sn",
-"org.sn",
-"perso.sn",
-"univ.sn",
-"so",
-"com.so",
-"edu.so",
-"gov.so",
-"me.so",
-"net.so",
-"org.so",
-"sr",
-"ss",
-"biz.ss",
-"com.ss",
-"edu.ss",
-"gov.ss",
-"net.ss",
-"org.ss",
-"st",
-"co.st",
-"com.st",
-"consulado.st",
-"edu.st",
-"embaixada.st",
-"gov.st",
-"mil.st",
-"net.st",
-"org.st",
-"principe.st",
-"saotome.st",
-"store.st",
-"su",
-"sv",
-"com.sv",
-"edu.sv",
-"gob.sv",
-"org.sv",
-"red.sv",
-"sx",
-"gov.sx",
-"sy",
-"edu.sy",
-"gov.sy",
-"net.sy",
-"mil.sy",
-"com.sy",
-"org.sy",
-"sz",
-"co.sz",
-"ac.sz",
-"org.sz",
-"tc",
-"td",
-"tel",
-"tf",
-"tg",
-"th",
-"ac.th",
-"co.th",
-"go.th",
-"in.th",
-"mi.th",
-"net.th",
-"or.th",
-"tj",
-"ac.tj",
-"biz.tj",
-"co.tj",
-"com.tj",
-"edu.tj",
-"go.tj",
-"gov.tj",
-"int.tj",
-"mil.tj",
-"name.tj",
-"net.tj",
-"nic.tj",
-"org.tj",
-"test.tj",
-"web.tj",
-"tk",
-"tl",
-"gov.tl",
-"tm",
-"com.tm",
-"co.tm",
-"org.tm",
-"net.tm",
-"nom.tm",
-"gov.tm",
-"mil.tm",
-"edu.tm",
-"tn",
-"com.tn",
-"ens.tn",
-"fin.tn",
-"gov.tn",
-"ind.tn",
-"intl.tn",
-"nat.tn",
-"net.tn",
-"org.tn",
-"info.tn",
-"perso.tn",
-"tourism.tn",
-"edunet.tn",
-"rnrt.tn",
-"rns.tn",
-"rnu.tn",
-"mincom.tn",
-"agrinet.tn",
-"defense.tn",
-"turen.tn",
-"to",
-"com.to",
-"gov.to",
-"net.to",
-"org.to",
-"edu.to",
-"mil.to",
-"tr",
-"av.tr",
-"bbs.tr",
-"bel.tr",
-"biz.tr",
-"com.tr",
-"dr.tr",
-"edu.tr",
-"gen.tr",
-"gov.tr",
-"info.tr",
-"mil.tr",
-"k12.tr",
-"kep.tr",
-"name.tr",
-"net.tr",
-"org.tr",
-"pol.tr",
-"tel.tr",
-"tsk.tr",
-"tv.tr",
-"web.tr",
-"nc.tr",
-"gov.nc.tr",
-"tt",
-"co.tt",
-"com.tt",
-"org.tt",
-"net.tt",
-"biz.tt",
-"info.tt",
-"pro.tt",
-"int.tt",
-"coop.tt",
-"jobs.tt",
-"mobi.tt",
-"travel.tt",
-"museum.tt",
-"aero.tt",
-"name.tt",
-"gov.tt",
-"edu.tt",
-"tv",
-"tw",
-"edu.tw",
-"gov.tw",
-"mil.tw",
-"com.tw",
-"net.tw",
-"org.tw",
-"idv.tw",
-"game.tw",
-"ebiz.tw",
-"club.tw",
-"網路.tw",
-"組織.tw",
-"商業.tw",
-"tz",
-"ac.tz",
-"co.tz",
-"go.tz",
-"hotel.tz",
-"info.tz",
-"me.tz",
-"mil.tz",
-"mobi.tz",
-"ne.tz",
-"or.tz",
-"sc.tz",
-"tv.tz",
-"ua",
-"com.ua",
-"edu.ua",
-"gov.ua",
-"in.ua",
-"net.ua",
-"org.ua",
-"cherkassy.ua",
-"cherkasy.ua",
-"chernigov.ua",
-"chernihiv.ua",
-"chernivtsi.ua",
-"chernovtsy.ua",
-"ck.ua",
-"cn.ua",
-"cr.ua",
-"crimea.ua",
-"cv.ua",
-"dn.ua",
-"dnepropetrovsk.ua",
-"dnipropetrovsk.ua",
-"dominic.ua",
-"donetsk.ua",
-"dp.ua",
-"if.ua",
-"ivano-frankivsk.ua",
-"kh.ua",
-"kharkiv.ua",
-"kharkov.ua",
-"kherson.ua",
-"khmelnitskiy.ua",
-"khmelnytskyi.ua",
-"kiev.ua",
-"kirovograd.ua",
-"km.ua",
-"kr.ua",
-"krym.ua",
-"ks.ua",
-"kv.ua",
-"kyiv.ua",
-"lg.ua",
-"lt.ua",
-"lugansk.ua",
-"lutsk.ua",
-"lv.ua",
-"lviv.ua",
-"mk.ua",
-"mykolaiv.ua",
-"nikolaev.ua",
-"od.ua",
-"odesa.ua",
-"odessa.ua",
-"pl.ua",
-"poltava.ua",
-"rivne.ua",
-"rovno.ua",
-"rv.ua",
-"sb.ua",
-"sebastopol.ua",
-"sevastopol.ua",
-"sm.ua",
-"sumy.ua",
-"te.ua",
-"ternopil.ua",
-"uz.ua",
-"uzhgorod.ua",
-"vinnica.ua",
-"vinnytsia.ua",
-"vn.ua",
-"volyn.ua",
-"yalta.ua",
-"zaporizhzhe.ua",
-"zaporizhzhia.ua",
-"zhitomir.ua",
-"zhytomyr.ua",
-"zp.ua",
-"zt.ua",
-"ug",
-"co.ug",
-"or.ug",
-"ac.ug",
-"sc.ug",
-"go.ug",
-"ne.ug",
-"com.ug",
-"org.ug",
-"uk",
-"ac.uk",
-"co.uk",
-"gov.uk",
-"ltd.uk",
-"me.uk",
-"net.uk",
-"nhs.uk",
-"org.uk",
-"plc.uk",
-"police.uk",
-"*.sch.uk",
-"us",
-"dni.us",
-"fed.us",
-"isa.us",
-"kids.us",
-"nsn.us",
-"ak.us",
-"al.us",
-"ar.us",
-"as.us",
-"az.us",
-"ca.us",
-"co.us",
-"ct.us",
-"dc.us",
-"de.us",
-"fl.us",
-"ga.us",
-"gu.us",
-"hi.us",
-"ia.us",
-"id.us",
-"il.us",
-"in.us",
-"ks.us",
-"ky.us",
-"la.us",
-"ma.us",
-"md.us",
-"me.us",
-"mi.us",
-"mn.us",
-"mo.us",
-"ms.us",
-"mt.us",
-"nc.us",
-"nd.us",
-"ne.us",
-"nh.us",
-"nj.us",
-"nm.us",
-"nv.us",
-"ny.us",
-"oh.us",
-"ok.us",
-"or.us",
-"pa.us",
-"pr.us",
-"ri.us",
-"sc.us",
-"sd.us",
-"tn.us",
-"tx.us",
-"ut.us",
-"vi.us",
-"vt.us",
-"va.us",
-"wa.us",
-"wi.us",
-"wv.us",
-"wy.us",
-"k12.ak.us",
-"k12.al.us",
-"k12.ar.us",
-"k12.as.us",
-"k12.az.us",
-"k12.ca.us",
-"k12.co.us",
-"k12.ct.us",
-"k12.dc.us",
-"k12.de.us",
-"k12.fl.us",
-"k12.ga.us",
-"k12.gu.us",
-"k12.ia.us",
-"k12.id.us",
-"k12.il.us",
-"k12.in.us",
-"k12.ks.us",
-"k12.ky.us",
-"k12.la.us",
-"k12.ma.us",
-"k12.md.us",
-"k12.me.us",
-"k12.mi.us",
-"k12.mn.us",
-"k12.mo.us",
-"k12.ms.us",
-"k12.mt.us",
-"k12.nc.us",
-"k12.ne.us",
-"k12.nh.us",
-"k12.nj.us",
-"k12.nm.us",
-"k12.nv.us",
-"k12.ny.us",
-"k12.oh.us",
-"k12.ok.us",
-"k12.or.us",
-"k12.pa.us",
-"k12.pr.us",
-"k12.ri.us",
-"k12.sc.us",
-"k12.tn.us",
-"k12.tx.us",
-"k12.ut.us",
-"k12.vi.us",
-"k12.vt.us",
-"k12.va.us",
-"k12.wa.us",
-"k12.wi.us",
-"k12.wy.us",
-"cc.ak.us",
-"cc.al.us",
-"cc.ar.us",
-"cc.as.us",
-"cc.az.us",
-"cc.ca.us",
-"cc.co.us",
-"cc.ct.us",
-"cc.dc.us",
-"cc.de.us",
-"cc.fl.us",
-"cc.ga.us",
-"cc.gu.us",
-"cc.hi.us",
-"cc.ia.us",
-"cc.id.us",
-"cc.il.us",
-"cc.in.us",
-"cc.ks.us",
-"cc.ky.us",
-"cc.la.us",
-"cc.ma.us",
-"cc.md.us",
-"cc.me.us",
-"cc.mi.us",
-"cc.mn.us",
-"cc.mo.us",
-"cc.ms.us",
-"cc.mt.us",
-"cc.nc.us",
-"cc.nd.us",
-"cc.ne.us",
-"cc.nh.us",
-"cc.nj.us",
-"cc.nm.us",
-"cc.nv.us",
-"cc.ny.us",
-"cc.oh.us",
-"cc.ok.us",
-"cc.or.us",
-"cc.pa.us",
-"cc.pr.us",
-"cc.ri.us",
-"cc.sc.us",
-"cc.sd.us",
-"cc.tn.us",
-"cc.tx.us",
-"cc.ut.us",
-"cc.vi.us",
-"cc.vt.us",
-"cc.va.us",
-"cc.wa.us",
-"cc.wi.us",
-"cc.wv.us",
-"cc.wy.us",
-"lib.ak.us",
-"lib.al.us",
-"lib.ar.us",
-"lib.as.us",
-"lib.az.us",
-"lib.ca.us",
-"lib.co.us",
-"lib.ct.us",
-"lib.dc.us",
-"lib.fl.us",
-"lib.ga.us",
-"lib.gu.us",
-"lib.hi.us",
-"lib.ia.us",
-"lib.id.us",
-"lib.il.us",
-"lib.in.us",
-"lib.ks.us",
-"lib.ky.us",
-"lib.la.us",
-"lib.ma.us",
-"lib.md.us",
-"lib.me.us",
-"lib.mi.us",
-"lib.mn.us",
-"lib.mo.us",
-"lib.ms.us",
-"lib.mt.us",
-"lib.nc.us",
-"lib.nd.us",
-"lib.ne.us",
-"lib.nh.us",
-"lib.nj.us",
-"lib.nm.us",
-"lib.nv.us",
-"lib.ny.us",
-"lib.oh.us",
-"lib.ok.us",
-"lib.or.us",
-"lib.pa.us",
-"lib.pr.us",
-"lib.ri.us",
-"lib.sc.us",
-"lib.sd.us",
-"lib.tn.us",
-"lib.tx.us",
-"lib.ut.us",
-"lib.vi.us",
-"lib.vt.us",
-"lib.va.us",
-"lib.wa.us",
-"lib.wi.us",
-"lib.wy.us",
-"pvt.k12.ma.us",
-"chtr.k12.ma.us",
-"paroch.k12.ma.us",
-"ann-arbor.mi.us",
-"cog.mi.us",
-"dst.mi.us",
-"eaton.mi.us",
-"gen.mi.us",
-"mus.mi.us",
-"tec.mi.us",
-"washtenaw.mi.us",
-"uy",
-"com.uy",
-"edu.uy",
-"gub.uy",
-"mil.uy",
-"net.uy",
-"org.uy",
-"uz",
-"co.uz",
-"com.uz",
-"net.uz",
-"org.uz",
-"va",
-"vc",
-"com.vc",
-"net.vc",
-"org.vc",
-"gov.vc",
-"mil.vc",
-"edu.vc",
-"ve",
-"arts.ve",
-"co.ve",
-"com.ve",
-"e12.ve",
-"edu.ve",
-"firm.ve",
-"gob.ve",
-"gov.ve",
-"info.ve",
-"int.ve",
-"mil.ve",
-"net.ve",
-"org.ve",
-"rec.ve",
-"store.ve",
-"tec.ve",
-"web.ve",
-"vg",
-"vi",
-"co.vi",
-"com.vi",
-"k12.vi",
-"net.vi",
-"org.vi",
-"vn",
-"com.vn",
-"net.vn",
-"org.vn",
-"edu.vn",
-"gov.vn",
-"int.vn",
-"ac.vn",
-"biz.vn",
-"info.vn",
-"name.vn",
-"pro.vn",
-"health.vn",
-"vu",
-"com.vu",
-"edu.vu",
-"net.vu",
-"org.vu",
-"wf",
-"ws",
-"com.ws",
-"net.ws",
-"org.ws",
-"gov.ws",
-"edu.ws",
-"yt",
-"امارات",
-"հայ",
-"বাংলা",
-"бг",
-"бел",
-"中国",
-"中國",
-"الجزائر",
-"مصر",
-"ею",
-"ευ",
-"موريتانيا",
-"გე",
-"ελ",
-"香港",
-"公司.香港",
-"教育.香港",
-"政府.香港",
-"個人.香港",
-"網絡.香港",
-"組織.香港",
-"ಭಾರತ",
-"ଭାରତ",
-"ভাৰত",
-"भारतम्",
-"भारोत",
-"ڀارت",
-"ഭാരതം",
-"भारत",
-"بارت",
-"بھارت",
-"భారత్",
-"ભારત",
-"ਭਾਰਤ",
-"ভারত",
-"இந்தியா",
-"ایران",
-"ايران",
-"عراق",
-"الاردن",
-"한국",
-"қаз",
-"ලංකා",
-"இலங்கை",
-"المغرب",
-"мкд",
-"мон",
-"澳門",
-"澳门",
-"مليسيا",
-"عمان",
-"پاکستان",
-"پاكستان",
-"فلسطين",
-"срб",
-"пр.срб",
-"орг.срб",
-"обр.срб",
-"од.срб",
-"упр.срб",
-"ак.срб",
-"рф",
-"قطر",
-"السعودية",
-"السعودیة",
-"السعودیۃ",
-"السعوديه",
-"سودان",
-"新加坡",
-"சிங்கப்பூர்",
-"سورية",
-"سوريا",
-"ไทย",
-"ศึกษา.ไทย",
-"ธุรกิจ.ไทย",
-"รัฐบาล.ไทย",
-"ทหาร.ไทย",
-"เน็ต.ไทย",
-"องค์กร.ไทย",
-"تونس",
-"台灣",
-"台湾",
-"臺灣",
-"укр",
-"اليمن",
-"xxx",
-"*.ye",
-"ac.za",
-"agric.za",
-"alt.za",
-"co.za",
-"edu.za",
-"gov.za",
-"grondar.za",
-"law.za",
-"mil.za",
-"net.za",
-"ngo.za",
-"nic.za",
-"nis.za",
-"nom.za",
-"org.za",
-"school.za",
-"tm.za",
-"web.za",
-"zm",
-"ac.zm",
-"biz.zm",
-"co.zm",
-"com.zm",
-"edu.zm",
-"gov.zm",
-"info.zm",
-"mil.zm",
-"net.zm",
-"org.zm",
-"sch.zm",
-"zw",
-"ac.zw",
-"co.zw",
-"gov.zw",
-"mil.zw",
-"org.zw",
-"aaa",
-"aarp",
-"abarth",
-"abb",
-"abbott",
-"abbvie",
-"abc",
-"able",
-"abogado",
-"abudhabi",
-"academy",
-"accenture",
-"accountant",
-"accountants",
-"aco",
-"actor",
-"adac",
-"ads",
-"adult",
-"aeg",
-"aetna",
-"afamilycompany",
-"afl",
-"africa",
-"agakhan",
-"agency",
-"aig",
-"aigo",
-"airbus",
-"airforce",
-"airtel",
-"akdn",
-"alfaromeo",
-"alibaba",
-"alipay",
-"allfinanz",
-"allstate",
-"ally",
-"alsace",
-"alstom",
-"amazon",
-"americanexpress",
-"americanfamily",
-"amex",
-"amfam",
-"amica",
-"amsterdam",
-"analytics",
-"android",
-"anquan",
-"anz",
-"aol",
-"apartments",
-"app",
-"apple",
-"aquarelle",
-"arab",
-"aramco",
-"archi",
-"army",
-"art",
-"arte",
-"asda",
-"associates",
-"athleta",
-"attorney",
-"auction",
-"audi",
-"audible",
-"audio",
-"auspost",
-"author",
-"auto",
-"autos",
-"avianca",
-"aws",
-"axa",
-"azure",
-"baby",
-"baidu",
-"banamex",
-"bananarepublic",
-"band",
-"bank",
-"bar",
-"barcelona",
-"barclaycard",
-"barclays",
-"barefoot",
-"bargains",
-"baseball",
-"basketball",
-"bauhaus",
-"bayern",
-"bbc",
-"bbt",
-"bbva",
-"bcg",
-"bcn",
-"beats",
-"beauty",
-"beer",
-"bentley",
-"berlin",
-"best",
-"bestbuy",
-"bet",
-"bharti",
-"bible",
-"bid",
-"bike",
-"bing",
-"bingo",
-"bio",
-"black",
-"blackfriday",
-"blockbuster",
-"blog",
-"bloomberg",
-"blue",
-"bms",
-"bmw",
-"bnpparibas",
-"boats",
-"boehringer",
-"bofa",
-"bom",
-"bond",
-"boo",
-"book",
-"booking",
-"bosch",
-"bostik",
-"boston",
-"bot",
-"boutique",
-"box",
-"bradesco",
-"bridgestone",
-"broadway",
-"broker",
-"brother",
-"brussels",
-"budapest",
-"bugatti",
-"build",
-"builders",
-"business",
-"buy",
-"buzz",
-"bzh",
-"cab",
-"cafe",
-"cal",
-"call",
-"calvinklein",
-"cam",
-"camera",
-"camp",
-"cancerresearch",
-"canon",
-"capetown",
-"capital",
-"capitalone",
-"car",
-"caravan",
-"cards",
-"care",
-"career",
-"careers",
-"cars",
-"casa",
-"case",
-"caseih",
-"cash",
-"casino",
-"catering",
-"catholic",
-"cba",
-"cbn",
-"cbre",
-"cbs",
-"ceb",
-"center",
-"ceo",
-"cern",
-"cfa",
-"cfd",
-"chanel",
-"channel",
-"charity",
-"chase",
-"chat",
-"cheap",
-"chintai",
-"christmas",
-"chrome",
-"church",
-"cipriani",
-"circle",
-"cisco",
-"citadel",
-"citi",
-"citic",
-"city",
-"cityeats",
-"claims",
-"cleaning",
-"click",
-"clinic",
-"clinique",
-"clothing",
-"cloud",
-"club",
-"clubmed",
-"coach",
-"codes",
-"coffee",
-"college",
-"cologne",
-"comcast",
-"commbank",
-"community",
-"company",
-"compare",
-"computer",
-"comsec",
-"condos",
-"construction",
-"consulting",
-"contact",
-"contractors",
-"cooking",
-"cookingchannel",
-"cool",
-"corsica",
-"country",
-"coupon",
-"coupons",
-"courses",
-"cpa",
-"credit",
-"creditcard",
-"creditunion",
-"cricket",
-"crown",
-"crs",
-"cruise",
-"cruises",
-"csc",
-"cuisinella",
-"cymru",
-"cyou",
-"dabur",
-"dad",
-"dance",
-"data",
-"date",
-"dating",
-"datsun",
-"day",
-"dclk",
-"dds",
-"deal",
-"dealer",
-"deals",
-"degree",
-"delivery",
-"dell",
-"deloitte",
-"delta",
-"democrat",
-"dental",
-"dentist",
-"desi",
-"design",
-"dev",
-"dhl",
-"diamonds",
-"diet",
-"digital",
-"direct",
-"directory",
-"discount",
-"discover",
-"dish",
-"diy",
-"dnp",
-"docs",
-"doctor",
-"dog",
-"domains",
-"dot",
-"download",
-"drive",
-"dtv",
-"dubai",
-"duck",
-"dunlop",
-"dupont",
-"durban",
-"dvag",
-"dvr",
-"earth",
-"eat",
-"eco",
-"edeka",
-"education",
-"email",
-"emerck",
-"energy",
-"engineer",
-"engineering",
-"enterprises",
-"epson",
-"equipment",
-"ericsson",
-"erni",
-"esq",
-"estate",
-"esurance",
-"etisalat",
-"eurovision",
-"eus",
-"events",
-"exchange",
-"expert",
-"exposed",
-"express",
-"extraspace",
-"fage",
-"fail",
-"fairwinds",
-"faith",
-"family",
-"fan",
-"fans",
-"farm",
-"farmers",
-"fashion",
-"fast",
-"fedex",
-"feedback",
-"ferrari",
-"ferrero",
-"fiat",
-"fidelity",
-"fido",
-"film",
-"final",
-"finance",
-"financial",
-"fire",
-"firestone",
-"firmdale",
-"fish",
-"fishing",
-"fit",
-"fitness",
-"flickr",
-"flights",
-"flir",
-"florist",
-"flowers",
-"fly",
-"foo",
-"food",
-"foodnetwork",
-"football",
-"ford",
-"forex",
-"forsale",
-"forum",
-"foundation",
-"fox",
-"free",
-"fresenius",
-"frl",
-"frogans",
-"frontdoor",
-"frontier",
-"ftr",
-"fujitsu",
-"fujixerox",
-"fun",
-"fund",
-"furniture",
-"futbol",
-"fyi",
-"gal",
-"gallery",
-"gallo",
-"gallup",
-"game",
-"games",
-"gap",
-"garden",
-"gay",
-"gbiz",
-"gdn",
-"gea",
-"gent",
-"genting",
-"george",
-"ggee",
-"gift",
-"gifts",
-"gives",
-"giving",
-"glade",
-"glass",
-"gle",
-"global",
-"globo",
-"gmail",
-"gmbh",
-"gmo",
-"gmx",
-"godaddy",
-"gold",
-"goldpoint",
-"golf",
-"goo",
-"goodyear",
-"goog",
-"google",
-"gop",
-"got",
-"grainger",
-"graphics",
-"gratis",
-"green",
-"gripe",
-"grocery",
-"group",
-"guardian",
-"gucci",
-"guge",
-"guide",
-"guitars",
-"guru",
-"hair",
-"hamburg",
-"hangout",
-"haus",
-"hbo",
-"hdfc",
-"hdfcbank",
-"health",
-"healthcare",
-"help",
-"helsinki",
-"here",
-"hermes",
-"hgtv",
-"hiphop",
-"hisamitsu",
-"hitachi",
-"hiv",
-"hkt",
-"hockey",
-"holdings",
-"holiday",
-"homedepot",
-"homegoods",
-"homes",
-"homesense",
-"honda",
-"horse",
-"hospital",
-"host",
-"hosting",
-"hot",
-"hoteles",
-"hotels",
-"hotmail",
-"house",
-"how",
-"hsbc",
-"hughes",
-"hyatt",
-"hyundai",
-"ibm",
-"icbc",
-"ice",
-"icu",
-"ieee",
-"ifm",
-"ikano",
-"imamat",
-"imdb",
-"immo",
-"immobilien",
-"inc",
-"industries",
-"infiniti",
-"ing",
-"ink",
-"institute",
-"insurance",
-"insure",
-"intel",
-"international",
-"intuit",
-"investments",
-"ipiranga",
-"irish",
-"ismaili",
-"ist",
-"istanbul",
-"itau",
-"itv",
-"iveco",
-"jaguar",
-"java",
-"jcb",
-"jcp",
-"jeep",
-"jetzt",
-"jewelry",
-"jio",
-"jll",
-"jmp",
-"jnj",
-"joburg",
-"jot",
-"joy",
-"jpmorgan",
-"jprs",
-"juegos",
-"juniper",
-"kaufen",
-"kddi",
-"kerryhotels",
-"kerrylogistics",
-"kerryproperties",
-"kfh",
-"kia",
-"kim",
-"kinder",
-"kindle",
-"kitchen",
-"kiwi",
-"koeln",
-"komatsu",
-"kosher",
-"kpmg",
-"kpn",
-"krd",
-"kred",
-"kuokgroup",
-"kyoto",
-"lacaixa",
-"lamborghini",
-"lamer",
-"lancaster",
-"lancia",
-"land",
-"landrover",
-"lanxess",
-"lasalle",
-"lat",
-"latino",
-"latrobe",
-"law",
-"lawyer",
-"lds",
-"lease",
-"leclerc",
-"lefrak",
-"legal",
-"lego",
-"lexus",
-"lgbt",
-"lidl",
-"life",
-"lifeinsurance",
-"lifestyle",
-"lighting",
-"like",
-"lilly",
-"limited",
-"limo",
-"lincoln",
-"linde",
-"link",
-"lipsy",
-"live",
-"living",
-"lixil",
-"llc",
-"llp",
-"loan",
-"loans",
-"locker",
-"locus",
-"loft",
-"lol",
-"london",
-"lotte",
-"lotto",
-"love",
-"lpl",
-"lplfinancial",
-"ltd",
-"ltda",
-"lundbeck",
-"lupin",
-"luxe",
-"luxury",
-"macys",
-"madrid",
-"maif",
-"maison",
-"makeup",
-"man",
-"management",
-"mango",
-"map",
-"market",
-"marketing",
-"markets",
-"marriott",
-"marshalls",
-"maserati",
-"mattel",
-"mba",
-"mckinsey",
-"med",
-"media",
-"meet",
-"melbourne",
-"meme",
-"memorial",
-"men",
-"menu",
-"merckmsd",
-"metlife",
-"miami",
-"microsoft",
-"mini",
-"mint",
-"mit",
-"mitsubishi",
-"mlb",
-"mls",
-"mma",
-"mobile",
-"moda",
-"moe",
-"moi",
-"mom",
-"monash",
-"money",
-"monster",
-"mormon",
-"mortgage",
-"moscow",
-"moto",
-"motorcycles",
-"mov",
-"movie",
-"msd",
-"mtn",
-"mtr",
-"mutual",
-"nab",
-"nadex",
-"nagoya",
-"nationwide",
-"natura",
-"navy",
-"nba",
-"nec",
-"netbank",
-"netflix",
-"network",
-"neustar",
-"new",
-"newholland",
-"news",
-"next",
-"nextdirect",
-"nexus",
-"nfl",
-"ngo",
-"nhk",
-"nico",
-"nike",
-"nikon",
-"ninja",
-"nissan",
-"nissay",
-"nokia",
-"northwesternmutual",
-"norton",
-"now",
-"nowruz",
-"nowtv",
-"nra",
-"nrw",
-"ntt",
-"nyc",
-"obi",
-"observer",
-"off",
-"office",
-"okinawa",
-"olayan",
-"olayangroup",
-"oldnavy",
-"ollo",
-"omega",
-"one",
-"ong",
-"onl",
-"online",
-"onyourside",
-"ooo",
-"open",
-"oracle",
-"orange",
-"organic",
-"origins",
-"osaka",
-"otsuka",
-"ott",
-"ovh",
-"page",
-"panasonic",
-"paris",
-"pars",
-"partners",
-"parts",
-"party",
-"passagens",
-"pay",
-"pccw",
-"pet",
-"pfizer",
-"pharmacy",
-"phd",
-"philips",
-"phone",
-"photo",
-"photography",
-"photos",
-"physio",
-"pics",
-"pictet",
-"pictures",
-"pid",
-"pin",
-"ping",
-"pink",
-"pioneer",
-"pizza",
-"place",
-"play",
-"playstation",
-"plumbing",
-"plus",
-"pnc",
-"pohl",
-"poker",
-"politie",
-"porn",
-"pramerica",
-"praxi",
-"press",
-"prime",
-"prod",
-"productions",
-"prof",
-"progressive",
-"promo",
-"properties",
-"property",
-"protection",
-"pru",
-"prudential",
-"pub",
-"pwc",
-"qpon",
-"quebec",
-"quest",
-"qvc",
-"racing",
-"radio",
-"raid",
-"read",
-"realestate",
-"realtor",
-"realty",
-"recipes",
-"red",
-"redstone",
-"redumbrella",
-"rehab",
-"reise",
-"reisen",
-"reit",
-"reliance",
-"ren",
-"rent",
-"rentals",
-"repair",
-"report",
-"republican",
-"rest",
-"restaurant",
-"review",
-"reviews",
-"rexroth",
-"rich",
-"richardli",
-"ricoh",
-"rightathome",
-"ril",
-"rio",
-"rip",
-"rmit",
-"rocher",
-"rocks",
-"rodeo",
-"rogers",
-"room",
-"rsvp",
-"rugby",
-"ruhr",
-"run",
-"rwe",
-"ryukyu",
-"saarland",
-"safe",
-"safety",
-"sakura",
-"sale",
-"salon",
-"samsclub",
-"samsung",
-"sandvik",
-"sandvikcoromant",
-"sanofi",
-"sap",
-"sarl",
-"sas",
-"save",
-"saxo",
-"sbi",
-"sbs",
-"sca",
-"scb",
-"schaeffler",
-"schmidt",
-"scholarships",
-"school",
-"schule",
-"schwarz",
-"science",
-"scjohnson",
-"scor",
-"scot",
-"search",
-"seat",
-"secure",
-"security",
-"seek",
-"select",
-"sener",
-"services",
-"ses",
-"seven",
-"sew",
-"sex",
-"sexy",
-"sfr",
-"shangrila",
-"sharp",
-"shaw",
-"shell",
-"shia",
-"shiksha",
-"shoes",
-"shop",
-"shopping",
-"shouji",
-"show",
-"showtime",
-"shriram",
-"silk",
-"sina",
-"singles",
-"site",
-"ski",
-"skin",
-"sky",
-"skype",
-"sling",
-"smart",
-"smile",
-"sncf",
-"soccer",
-"social",
-"softbank",
-"software",
-"sohu",
-"solar",
-"solutions",
-"song",
-"sony",
-"soy",
-"spa",
-"space",
-"sport",
-"spot",
-"spreadbetting",
-"srl",
-"stada",
-"staples",
-"star",
-"statebank",
-"statefarm",
-"stc",
-"stcgroup",
-"stockholm",
-"storage",
-"store",
-"stream",
-"studio",
-"study",
-"style",
-"sucks",
-"supplies",
-"supply",
-"support",
-"surf",
-"surgery",
-"suzuki",
-"swatch",
-"swiftcover",
-"swiss",
-"sydney",
-"symantec",
-"systems",
-"tab",
-"taipei",
-"talk",
-"taobao",
-"target",
-"tatamotors",
-"tatar",
-"tattoo",
-"tax",
-"taxi",
-"tci",
-"tdk",
-"team",
-"tech",
-"technology",
-"temasek",
-"tennis",
-"teva",
-"thd",
-"theater",
-"theatre",
-"tiaa",
-"tickets",
-"tienda",
-"tiffany",
-"tips",
-"tires",
-"tirol",
-"tjmaxx",
-"tjx",
-"tkmaxx",
-"tmall",
-"today",
-"tokyo",
-"tools",
-"top",
-"toray",
-"toshiba",
-"total",
-"tours",
-"town",
-"toyota",
-"toys",
-"trade",
-"trading",
-"training",
-"travel",
-"travelchannel",
-"travelers",
-"travelersinsurance",
-"trust",
-"trv",
-"tube",
-"tui",
-"tunes",
-"tushu",
-"tvs",
-"ubank",
-"ubs",
-"unicom",
-"university",
-"uno",
-"uol",
-"ups",
-"vacations",
-"vana",
-"vanguard",
-"vegas",
-"ventures",
-"verisign",
-"versicherung",
-"vet",
-"viajes",
-"video",
-"vig",
-"viking",
-"villas",
-"vin",
-"vip",
-"virgin",
-"visa",
-"vision",
-"viva",
-"vivo",
-"vlaanderen",
-"vodka",
-"volkswagen",
-"volvo",
-"vote",
-"voting",
-"voto",
-"voyage",
-"vuelos",
-"wales",
-"walmart",
-"walter",
-"wang",
-"wanggou",
-"watch",
-"watches",
-"weather",
-"weatherchannel",
-"webcam",
-"weber",
-"website",
-"wed",
-"wedding",
-"weibo",
-"weir",
-"whoswho",
-"wien",
-"wiki",
-"williamhill",
-"win",
-"windows",
-"wine",
-"winners",
-"wme",
-"wolterskluwer",
-"woodside",
-"work",
-"works",
-"world",
-"wow",
-"wtc",
-"wtf",
-"xbox",
-"xerox",
-"xfinity",
-"xihuan",
-"xin",
-"कॉम",
-"セール",
-"佛山",
-"慈善",
-"集团",
-"在线",
-"大众汽车",
-"点看",
-"คอม",
-"八卦",
-"موقع",
-"公益",
-"公司",
-"香格里拉",
-"网站",
-"移动",
-"我爱你",
-"москва",
-"католик",
-"онлайн",
-"сайт",
-"联通",
-"קום",
-"时尚",
-"微博",
-"淡马锡",
-"ファッション",
-"орг",
-"नेट",
-"ストア",
-"アマゾン",
-"삼성",
-"商标",
-"商店",
-"商城",
-"дети",
-"ポイント",
-"新闻",
-"工行",
-"家電",
-"كوم",
-"中文网",
-"中信",
-"娱乐",
-"谷歌",
-"電訊盈科",
-"购物",
-"クラウド",
-"通販",
-"网店",
-"संगठन",
-"餐厅",
-"网络",
-"ком",
-"亚马逊",
-"诺基亚",
-"食品",
-"飞利浦",
-"手表",
-"手机",
-"ارامكو",
-"العليان",
-"اتصالات",
-"بازار",
-"ابوظبي",
-"كاثوليك",
-"همراه",
-"닷컴",
-"政府",
-"شبكة",
-"بيتك",
-"عرب",
-"机构",
-"组织机构",
-"健康",
-"招聘",
-"рус",
-"珠宝",
-"大拿",
-"みんな",
-"グーグル",
-"世界",
-"書籍",
-"网址",
-"닷넷",
-"コム",
-"天主教",
-"游戏",
-"vermögensberater",
-"vermögensberatung",
-"企业",
-"信息",
-"嘉里大酒店",
-"嘉里",
-"广东",
-"政务",
-"xyz",
-"yachts",
-"yahoo",
-"yamaxun",
-"yandex",
-"yodobashi",
-"yoga",
-"yokohama",
-"you",
-"youtube",
-"yun",
-"zappos",
-"zara",
-"zero",
-"zip",
-"zone",
-"zuerich",
-"cc.ua",
-"inf.ua",
-"ltd.ua",
-"adobeaemcloud.com",
-"adobeaemcloud.net",
-"*.dev.adobeaemcloud.com",
-"beep.pl",
-"barsy.ca",
-"*.compute.estate",
-"*.alces.network",
-"altervista.org",
-"alwaysdata.net",
-"cloudfront.net",
-"*.compute.amazonaws.com",
-"*.compute-1.amazonaws.com",
-"*.compute.amazonaws.com.cn",
-"us-east-1.amazonaws.com",
-"cn-north-1.eb.amazonaws.com.cn",
-"cn-northwest-1.eb.amazonaws.com.cn",
-"elasticbeanstalk.com",
-"ap-northeast-1.elasticbeanstalk.com",
-"ap-northeast-2.elasticbeanstalk.com",
-"ap-northeast-3.elasticbeanstalk.com",
-"ap-south-1.elasticbeanstalk.com",
-"ap-southeast-1.elasticbeanstalk.com",
-"ap-southeast-2.elasticbeanstalk.com",
-"ca-central-1.elasticbeanstalk.com",
-"eu-central-1.elasticbeanstalk.com",
-"eu-west-1.elasticbeanstalk.com",
-"eu-west-2.elasticbeanstalk.com",
-"eu-west-3.elasticbeanstalk.com",
-"sa-east-1.elasticbeanstalk.com",
-"us-east-1.elasticbeanstalk.com",
-"us-east-2.elasticbeanstalk.com",
-"us-gov-west-1.elasticbeanstalk.com",
-"us-west-1.elasticbeanstalk.com",
-"us-west-2.elasticbeanstalk.com",
-"*.elb.amazonaws.com",
-"*.elb.amazonaws.com.cn",
-"s3.amazonaws.com",
-"s3-ap-northeast-1.amazonaws.com",
-"s3-ap-northeast-2.amazonaws.com",
-"s3-ap-south-1.amazonaws.com",
-"s3-ap-southeast-1.amazonaws.com",
-"s3-ap-southeast-2.amazonaws.com",
-"s3-ca-central-1.amazonaws.com",
-"s3-eu-central-1.amazonaws.com",
-"s3-eu-west-1.amazonaws.com",
-"s3-eu-west-2.amazonaws.com",
-"s3-eu-west-3.amazonaws.com",
-"s3-external-1.amazonaws.com",
-"s3-fips-us-gov-west-1.amazonaws.com",
-"s3-sa-east-1.amazonaws.com",
-"s3-us-gov-west-1.amazonaws.com",
-"s3-us-east-2.amazonaws.com",
-"s3-us-west-1.amazonaws.com",
-"s3-us-west-2.amazonaws.com",
-"s3.ap-northeast-2.amazonaws.com",
-"s3.ap-south-1.amazonaws.com",
-"s3.cn-north-1.amazonaws.com.cn",
-"s3.ca-central-1.amazonaws.com",
-"s3.eu-central-1.amazonaws.com",
-"s3.eu-west-2.amazonaws.com",
-"s3.eu-west-3.amazonaws.com",
-"s3.us-east-2.amazonaws.com",
-"s3.dualstack.ap-northeast-1.amazonaws.com",
-"s3.dualstack.ap-northeast-2.amazonaws.com",
-"s3.dualstack.ap-south-1.amazonaws.com",
-"s3.dualstack.ap-southeast-1.amazonaws.com",
-"s3.dualstack.ap-southeast-2.amazonaws.com",
-"s3.dualstack.ca-central-1.amazonaws.com",
-"s3.dualstack.eu-central-1.amazonaws.com",
-"s3.dualstack.eu-west-1.amazonaws.com",
-"s3.dualstack.eu-west-2.amazonaws.com",
-"s3.dualstack.eu-west-3.amazonaws.com",
-"s3.dualstack.sa-east-1.amazonaws.com",
-"s3.dualstack.us-east-1.amazonaws.com",
-"s3.dualstack.us-east-2.amazonaws.com",
-"s3-website-us-east-1.amazonaws.com",
-"s3-website-us-west-1.amazonaws.com",
-"s3-website-us-west-2.amazonaws.com",
-"s3-website-ap-northeast-1.amazonaws.com",
-"s3-website-ap-southeast-1.amazonaws.com",
-"s3-website-ap-southeast-2.amazonaws.com",
-"s3-website-eu-west-1.amazonaws.com",
-"s3-website-sa-east-1.amazonaws.com",
-"s3-website.ap-northeast-2.amazonaws.com",
-"s3-website.ap-south-1.amazonaws.com",
-"s3-website.ca-central-1.amazonaws.com",
-"s3-website.eu-central-1.amazonaws.com",
-"s3-website.eu-west-2.amazonaws.com",
-"s3-website.eu-west-3.amazonaws.com",
-"s3-website.us-east-2.amazonaws.com",
-"amsw.nl",
-"t3l3p0rt.net",
-"tele.amune.org",
-"apigee.io",
-"on-aptible.com",
-"user.aseinet.ne.jp",
-"gv.vc",
-"d.gv.vc",
-"user.party.eus",
-"pimienta.org",
-"poivron.org",
-"potager.org",
-"sweetpepper.org",
-"myasustor.com",
-"myfritz.net",
-"*.awdev.ca",
-"*.advisor.ws",
-"b-data.io",
-"backplaneapp.io",
-"balena-devices.com",
-"app.banzaicloud.io",
-"betainabox.com",
-"bnr.la",
-"blackbaudcdn.net",
-"boomla.net",
-"boxfuse.io",
-"square7.ch",
-"bplaced.com",
-"bplaced.de",
-"square7.de",
-"bplaced.net",
-"square7.net",
-"browsersafetymark.io",
-"uk0.bigv.io",
-"dh.bytemark.co.uk",
-"vm.bytemark.co.uk",
-"mycd.eu",
-"carrd.co",
-"crd.co",
-"uwu.ai",
-"ae.org",
-"ar.com",
-"br.com",
-"cn.com",
-"com.de",
-"com.se",
-"de.com",
-"eu.com",
-"gb.com",
-"gb.net",
-"hu.com",
-"hu.net",
-"jp.net",
-"jpn.com",
-"kr.com",
-"mex.com",
-"no.com",
-"qc.com",
-"ru.com",
-"sa.com",
-"se.net",
-"uk.com",
-"uk.net",
-"us.com",
-"uy.com",
-"za.bz",
-"za.com",
-"africa.com",
-"gr.com",
-"in.net",
-"us.org",
-"co.com",
-"c.la",
-"certmgr.org",
-"xenapponazure.com",
-"discourse.group",
-"discourse.team",
-"virtueeldomein.nl",
-"cleverapps.io",
-"*.lcl.dev",
-"*.stg.dev",
-"c66.me",
-"cloud66.ws",
-"cloud66.zone",
-"jdevcloud.com",
-"wpdevcloud.com",
-"cloudaccess.host",
-"freesite.host",
-"cloudaccess.net",
-"cloudcontrolled.com",
-"cloudcontrolapp.com",
-"cloudera.site",
-"trycloudflare.com",
-"workers.dev",
-"wnext.app",
-"co.ca",
-"*.otap.co",
-"co.cz",
-"c.cdn77.org",
-"cdn77-ssl.net",
-"r.cdn77.net",
-"rsc.cdn77.org",
-"ssl.origin.cdn77-secure.org",
-"cloudns.asia",
-"cloudns.biz",
-"cloudns.club",
-"cloudns.cc",
-"cloudns.eu",
-"cloudns.in",
-"cloudns.info",
-"cloudns.org",
-"cloudns.pro",
-"cloudns.pw",
-"cloudns.us",
-"cloudeity.net",
-"cnpy.gdn",
-"co.nl",
-"co.no",
-"webhosting.be",
-"hosting-cluster.nl",
-"ac.ru",
-"edu.ru",
-"gov.ru",
-"int.ru",
-"mil.ru",
-"test.ru",
-"dyn.cosidns.de",
-"dynamisches-dns.de",
-"dnsupdater.de",
-"internet-dns.de",
-"l-o-g-i-n.de",
-"dynamic-dns.info",
-"feste-ip.net",
-"knx-server.net",
-"static-access.net",
-"realm.cz",
-"*.cryptonomic.net",
-"cupcake.is",
-"*.customer-oci.com",
-"*.oci.customer-oci.com",
-"*.ocp.customer-oci.com",
-"*.ocs.customer-oci.com",
-"cyon.link",
-"cyon.site",
-"daplie.me",
-"localhost.daplie.me",
-"dattolocal.com",
-"dattorelay.com",
-"dattoweb.com",
-"mydatto.com",
-"dattolocal.net",
-"mydatto.net",
-"biz.dk",
-"co.dk",
-"firm.dk",
-"reg.dk",
-"store.dk",
-"*.dapps.earth",
-"*.bzz.dapps.earth",
-"builtwithdark.com",
-"edgestack.me",
-"debian.net",
-"dedyn.io",
-"dnshome.de",
-"online.th",
-"shop.th",
-"drayddns.com",
-"dreamhosters.com",
-"mydrobo.com",
-"drud.io",
-"drud.us",
-"duckdns.org",
-"dy.fi",
-"tunk.org",
-"dyndns-at-home.com",
-"dyndns-at-work.com",
-"dyndns-blog.com",
-"dyndns-free.com",
-"dyndns-home.com",
-"dyndns-ip.com",
-"dyndns-mail.com",
-"dyndns-office.com",
-"dyndns-pics.com",
-"dyndns-remote.com",
-"dyndns-server.com",
-"dyndns-web.com",
-"dyndns-wiki.com",
-"dyndns-work.com",
-"dyndns.biz",
-"dyndns.info",
-"dyndns.org",
-"dyndns.tv",
-"at-band-camp.net",
-"ath.cx",
-"barrel-of-knowledge.info",
-"barrell-of-knowledge.info",
-"better-than.tv",
-"blogdns.com",
-"blogdns.net",
-"blogdns.org",
-"blogsite.org",
-"boldlygoingnowhere.org",
-"broke-it.net",
-"buyshouses.net",
-"cechire.com",
-"dnsalias.com",
-"dnsalias.net",
-"dnsalias.org",
-"dnsdojo.com",
-"dnsdojo.net",
-"dnsdojo.org",
-"does-it.net",
-"doesntexist.com",
-"doesntexist.org",
-"dontexist.com",
-"dontexist.net",
-"dontexist.org",
-"doomdns.com",
-"doomdns.org",
-"dvrdns.org",
-"dyn-o-saur.com",
-"dynalias.com",
-"dynalias.net",
-"dynalias.org",
-"dynathome.net",
-"dyndns.ws",
-"endofinternet.net",
-"endofinternet.org",
-"endoftheinternet.org",
-"est-a-la-maison.com",
-"est-a-la-masion.com",
-"est-le-patron.com",
-"est-mon-blogueur.com",
-"for-better.biz",
-"for-more.biz",
-"for-our.info",
-"for-some.biz",
-"for-the.biz",
-"forgot.her.name",
-"forgot.his.name",
-"from-ak.com",
-"from-al.com",
-"from-ar.com",
-"from-az.net",
-"from-ca.com",
-"from-co.net",
-"from-ct.com",
-"from-dc.com",
-"from-de.com",
-"from-fl.com",
-"from-ga.com",
-"from-hi.com",
-"from-ia.com",
-"from-id.com",
-"from-il.com",
-"from-in.com",
-"from-ks.com",
-"from-ky.com",
-"from-la.net",
-"from-ma.com",
-"from-md.com",
-"from-me.org",
-"from-mi.com",
-"from-mn.com",
-"from-mo.com",
-"from-ms.com",
-"from-mt.com",
-"from-nc.com",
-"from-nd.com",
-"from-ne.com",
-"from-nh.com",
-"from-nj.com",
-"from-nm.com",
-"from-nv.com",
-"from-ny.net",
-"from-oh.com",
-"from-ok.com",
-"from-or.com",
-"from-pa.com",
-"from-pr.com",
-"from-ri.com",
-"from-sc.com",
-"from-sd.com",
-"from-tn.com",
-"from-tx.com",
-"from-ut.com",
-"from-va.com",
-"from-vt.com",
-"from-wa.com",
-"from-wi.com",
-"from-wv.com",
-"from-wy.com",
-"ftpaccess.cc",
-"fuettertdasnetz.de",
-"game-host.org",
-"game-server.cc",
-"getmyip.com",
-"gets-it.net",
-"go.dyndns.org",
-"gotdns.com",
-"gotdns.org",
-"groks-the.info",
-"groks-this.info",
-"ham-radio-op.net",
-"here-for-more.info",
-"hobby-site.com",
-"hobby-site.org",
-"home.dyndns.org",
-"homedns.org",
-"homeftp.net",
-"homeftp.org",
-"homeip.net",
-"homelinux.com",
-"homelinux.net",
-"homelinux.org",
-"homeunix.com",
-"homeunix.net",
-"homeunix.org",
-"iamallama.com",
-"in-the-band.net",
-"is-a-anarchist.com",
-"is-a-blogger.com",
-"is-a-bookkeeper.com",
-"is-a-bruinsfan.org",
-"is-a-bulls-fan.com",
-"is-a-candidate.org",
-"is-a-caterer.com",
-"is-a-celticsfan.org",
-"is-a-chef.com",
-"is-a-chef.net",
-"is-a-chef.org",
-"is-a-conservative.com",
-"is-a-cpa.com",
-"is-a-cubicle-slave.com",
-"is-a-democrat.com",
-"is-a-designer.com",
-"is-a-doctor.com",
-"is-a-financialadvisor.com",
-"is-a-geek.com",
-"is-a-geek.net",
-"is-a-geek.org",
-"is-a-green.com",
-"is-a-guru.com",
-"is-a-hard-worker.com",
-"is-a-hunter.com",
-"is-a-knight.org",
-"is-a-landscaper.com",
-"is-a-lawyer.com",
-"is-a-liberal.com",
-"is-a-libertarian.com",
-"is-a-linux-user.org",
-"is-a-llama.com",
-"is-a-musician.com",
-"is-a-nascarfan.com",
-"is-a-nurse.com",
-"is-a-painter.com",
-"is-a-patsfan.org",
-"is-a-personaltrainer.com",
-"is-a-photographer.com",
-"is-a-player.com",
-"is-a-republican.com",
-"is-a-rockstar.com",
-"is-a-socialist.com",
-"is-a-soxfan.org",
-"is-a-student.com",
-"is-a-teacher.com",
-"is-a-techie.com",
-"is-a-therapist.com",
-"is-an-accountant.com",
-"is-an-actor.com",
-"is-an-actress.com",
-"is-an-anarchist.com",
-"is-an-artist.com",
-"is-an-engineer.com",
-"is-an-entertainer.com",
-"is-by.us",
-"is-certified.com",
-"is-found.org",
-"is-gone.com",
-"is-into-anime.com",
-"is-into-cars.com",
-"is-into-cartoons.com",
-"is-into-games.com",
-"is-leet.com",
-"is-lost.org",
-"is-not-certified.com",
-"is-saved.org",
-"is-slick.com",
-"is-uberleet.com",
-"is-very-bad.org",
-"is-very-evil.org",
-"is-very-good.org",
-"is-very-nice.org",
-"is-very-sweet.org",
-"is-with-theband.com",
-"isa-geek.com",
-"isa-geek.net",
-"isa-geek.org",
-"isa-hockeynut.com",
-"issmarterthanyou.com",
-"isteingeek.de",
-"istmein.de",
-"kicks-ass.net",
-"kicks-ass.org",
-"knowsitall.info",
-"land-4-sale.us",
-"lebtimnetz.de",
-"leitungsen.de",
-"likes-pie.com",
-"likescandy.com",
-"merseine.nu",
-"mine.nu",
-"misconfused.org",
-"mypets.ws",
-"myphotos.cc",
-"neat-url.com",
-"office-on-the.net",
-"on-the-web.tv",
-"podzone.net",
-"podzone.org",
-"readmyblog.org",
-"saves-the-whales.com",
-"scrapper-site.net",
-"scrapping.cc",
-"selfip.biz",
-"selfip.com",
-"selfip.info",
-"selfip.net",
-"selfip.org",
-"sells-for-less.com",
-"sells-for-u.com",
-"sells-it.net",
-"sellsyourhome.org",
-"servebbs.com",
-"servebbs.net",
-"servebbs.org",
-"serveftp.net",
-"serveftp.org",
-"servegame.org",
-"shacknet.nu",
-"simple-url.com",
-"space-to-rent.com",
-"stuff-4-sale.org",
-"stuff-4-sale.us",
-"teaches-yoga.com",
-"thruhere.net",
-"traeumtgerade.de",
-"webhop.biz",
-"webhop.info",
-"webhop.net",
-"webhop.org",
-"worse-than.tv",
-"writesthisblog.com",
-"ddnss.de",
-"dyn.ddnss.de",
-"dyndns.ddnss.de",
-"dyndns1.de",
-"dyn-ip24.de",
-"home-webserver.de",
-"dyn.home-webserver.de",
-"myhome-server.de",
-"ddnss.org",
-"definima.net",
-"definima.io",
-"bci.dnstrace.pro",
-"ddnsfree.com",
-"ddnsgeek.com",
-"giize.com",
-"gleeze.com",
-"kozow.com",
-"loseyourip.com",
-"ooguy.com",
-"theworkpc.com",
-"casacam.net",
-"dynu.net",
-"accesscam.org",
-"camdvr.org",
-"freeddns.org",
-"mywire.org",
-"webredirect.org",
-"myddns.rocks",
-"blogsite.xyz",
-"dynv6.net",
-"e4.cz",
-"en-root.fr",
-"mytuleap.com",
-"onred.one",
-"staging.onred.one",
-"enonic.io",
-"customer.enonic.io",
-"eu.org",
-"al.eu.org",
-"asso.eu.org",
-"at.eu.org",
-"au.eu.org",
-"be.eu.org",
-"bg.eu.org",
-"ca.eu.org",
-"cd.eu.org",
-"ch.eu.org",
-"cn.eu.org",
-"cy.eu.org",
-"cz.eu.org",
-"de.eu.org",
-"dk.eu.org",
-"edu.eu.org",
-"ee.eu.org",
-"es.eu.org",
-"fi.eu.org",
-"fr.eu.org",
-"gr.eu.org",
-"hr.eu.org",
-"hu.eu.org",
-"ie.eu.org",
-"il.eu.org",
-"in.eu.org",
-"int.eu.org",
-"is.eu.org",
-"it.eu.org",
-"jp.eu.org",
-"kr.eu.org",
-"lt.eu.org",
-"lu.eu.org",
-"lv.eu.org",
-"mc.eu.org",
-"me.eu.org",
-"mk.eu.org",
-"mt.eu.org",
-"my.eu.org",
-"net.eu.org",
-"ng.eu.org",
-"nl.eu.org",
-"no.eu.org",
-"nz.eu.org",
-"paris.eu.org",
-"pl.eu.org",
-"pt.eu.org",
-"q-a.eu.org",
-"ro.eu.org",
-"ru.eu.org",
-"se.eu.org",
-"si.eu.org",
-"sk.eu.org",
-"tr.eu.org",
-"uk.eu.org",
-"us.eu.org",
-"eu-1.evennode.com",
-"eu-2.evennode.com",
-"eu-3.evennode.com",
-"eu-4.evennode.com",
-"us-1.evennode.com",
-"us-2.evennode.com",
-"us-3.evennode.com",
-"us-4.evennode.com",
-"twmail.cc",
-"twmail.net",
-"twmail.org",
-"mymailer.com.tw",
-"url.tw",
-"apps.fbsbx.com",
-"ru.net",
-"adygeya.ru",
-"bashkiria.ru",
-"bir.ru",
-"cbg.ru",
-"com.ru",
-"dagestan.ru",
-"grozny.ru",
-"kalmykia.ru",
-"kustanai.ru",
-"marine.ru",
-"mordovia.ru",
-"msk.ru",
-"mytis.ru",
-"nalchik.ru",
-"nov.ru",
-"pyatigorsk.ru",
-"spb.ru",
-"vladikavkaz.ru",
-"vladimir.ru",
-"abkhazia.su",
-"adygeya.su",
-"aktyubinsk.su",
-"arkhangelsk.su",
-"armenia.su",
-"ashgabad.su",
-"azerbaijan.su",
-"balashov.su",
-"bashkiria.su",
-"bryansk.su",
-"bukhara.su",
-"chimkent.su",
-"dagestan.su",
-"east-kazakhstan.su",
-"exnet.su",
-"georgia.su",
-"grozny.su",
-"ivanovo.su",
-"jambyl.su",
-"kalmykia.su",
-"kaluga.su",
-"karacol.su",
-"karaganda.su",
-"karelia.su",
-"khakassia.su",
-"krasnodar.su",
-"kurgan.su",
-"kustanai.su",
-"lenug.su",
-"mangyshlak.su",
-"mordovia.su",
-"msk.su",
-"murmansk.su",
-"nalchik.su",
-"navoi.su",
-"north-kazakhstan.su",
-"nov.su",
-"obninsk.su",
-"penza.su",
-"pokrovsk.su",
-"sochi.su",
-"spb.su",
-"tashkent.su",
-"termez.su",
-"togliatti.su",
-"troitsk.su",
-"tselinograd.su",
-"tula.su",
-"tuva.su",
-"vladikavkaz.su",
-"vladimir.su",
-"vologda.su",
-"channelsdvr.net",
-"u.channelsdvr.net",
-"fastly-terrarium.com",
-"fastlylb.net",
-"map.fastlylb.net",
-"freetls.fastly.net",
-"map.fastly.net",
-"a.prod.fastly.net",
-"global.prod.fastly.net",
-"a.ssl.fastly.net",
-"b.ssl.fastly.net",
-"global.ssl.fastly.net",
-"fastpanel.direct",
-"fastvps-server.com",
-"fhapp.xyz",
-"fedorainfracloud.org",
-"fedorapeople.org",
-"cloud.fedoraproject.org",
-"app.os.fedoraproject.org",
-"app.os.stg.fedoraproject.org",
-"mydobiss.com",
-"filegear.me",
-"filegear-au.me",
-"filegear-de.me",
-"filegear-gb.me",
-"filegear-ie.me",
-"filegear-jp.me",
-"filegear-sg.me",
-"firebaseapp.com",
-"flynnhub.com",
-"flynnhosting.net",
-"0e.vc",
-"freebox-os.com",
-"freeboxos.com",
-"fbx-os.fr",
-"fbxos.fr",
-"freebox-os.fr",
-"freeboxos.fr",
-"freedesktop.org",
-"*.futurecms.at",
-"*.ex.futurecms.at",
-"*.in.futurecms.at",
-"futurehosting.at",
-"futuremailing.at",
-"*.ex.ortsinfo.at",
-"*.kunden.ortsinfo.at",
-"*.statics.cloud",
-"service.gov.uk",
-"gehirn.ne.jp",
-"usercontent.jp",
-"gentapps.com",
-"lab.ms",
-"github.io",
-"githubusercontent.com",
-"gitlab.io",
-"glitch.me",
-"lolipop.io",
-"cloudapps.digital",
-"london.cloudapps.digital",
-"homeoffice.gov.uk",
-"ro.im",
-"shop.ro",
-"goip.de",
-"run.app",
-"a.run.app",
-"web.app",
-"*.0emm.com",
-"appspot.com",
-"*.r.appspot.com",
-"blogspot.ae",
-"blogspot.al",
-"blogspot.am",
-"blogspot.ba",
-"blogspot.be",
-"blogspot.bg",
-"blogspot.bj",
-"blogspot.ca",
-"blogspot.cf",
-"blogspot.ch",
-"blogspot.cl",
-"blogspot.co.at",
-"blogspot.co.id",
-"blogspot.co.il",
-"blogspot.co.ke",
-"blogspot.co.nz",
-"blogspot.co.uk",
-"blogspot.co.za",
-"blogspot.com",
-"blogspot.com.ar",
-"blogspot.com.au",
-"blogspot.com.br",
-"blogspot.com.by",
-"blogspot.com.co",
-"blogspot.com.cy",
-"blogspot.com.ee",
-"blogspot.com.eg",
-"blogspot.com.es",
-"blogspot.com.mt",
-"blogspot.com.ng",
-"blogspot.com.tr",
-"blogspot.com.uy",
-"blogspot.cv",
-"blogspot.cz",
-"blogspot.de",
-"blogspot.dk",
-"blogspot.fi",
-"blogspot.fr",
-"blogspot.gr",
-"blogspot.hk",
-"blogspot.hr",
-"blogspot.hu",
-"blogspot.ie",
-"blogspot.in",
-"blogspot.is",
-"blogspot.it",
-"blogspot.jp",
-"blogspot.kr",
-"blogspot.li",
-"blogspot.lt",
-"blogspot.lu",
-"blogspot.md",
-"blogspot.mk",
-"blogspot.mr",
-"blogspot.mx",
-"blogspot.my",
-"blogspot.nl",
-"blogspot.no",
-"blogspot.pe",
-"blogspot.pt",
-"blogspot.qa",
-"blogspot.re",
-"blogspot.ro",
-"blogspot.rs",
-"blogspot.ru",
-"blogspot.se",
-"blogspot.sg",
-"blogspot.si",
-"blogspot.sk",
-"blogspot.sn",
-"blogspot.td",
-"blogspot.tw",
-"blogspot.ug",
-"blogspot.vn",
-"cloudfunctions.net",
-"cloud.goog",
-"codespot.com",
-"googleapis.com",
-"googlecode.com",
-"pagespeedmobilizer.com",
-"publishproxy.com",
-"withgoogle.com",
-"withyoutube.com",
-"awsmppl.com",
-"fin.ci",
-"free.hr",
-"caa.li",
-"ua.rs",
-"conf.se",
-"hs.zone",
-"hs.run",
-"hashbang.sh",
-"hasura.app",
-"hasura-app.io",
-"hepforge.org",
-"herokuapp.com",
-"herokussl.com",
-"myravendb.com",
-"ravendb.community",
-"ravendb.me",
-"development.run",
-"ravendb.run",
-"bpl.biz",
-"orx.biz",
-"ng.city",
-"biz.gl",
-"ng.ink",
-"col.ng",
-"firm.ng",
-"gen.ng",
-"ltd.ng",
-"ngo.ng",
-"ng.school",
-"sch.so",
-"häkkinen.fi",
-"*.moonscale.io",
-"moonscale.net",
-"iki.fi",
-"dyn-berlin.de",
-"in-berlin.de",
-"in-brb.de",
-"in-butter.de",
-"in-dsl.de",
-"in-dsl.net",
-"in-dsl.org",
-"in-vpn.de",
-"in-vpn.net",
-"in-vpn.org",
-"biz.at",
-"info.at",
-"info.cx",
-"ac.leg.br",
-"al.leg.br",
-"am.leg.br",
-"ap.leg.br",
-"ba.leg.br",
-"ce.leg.br",
-"df.leg.br",
-"es.leg.br",
-"go.leg.br",
-"ma.leg.br",
-"mg.leg.br",
-"ms.leg.br",
-"mt.leg.br",
-"pa.leg.br",
-"pb.leg.br",
-"pe.leg.br",
-"pi.leg.br",
-"pr.leg.br",
-"rj.leg.br",
-"rn.leg.br",
-"ro.leg.br",
-"rr.leg.br",
-"rs.leg.br",
-"sc.leg.br",
-"se.leg.br",
-"sp.leg.br",
-"to.leg.br",
-"pixolino.com",
-"ipifony.net",
-"mein-iserv.de",
-"test-iserv.de",
-"iserv.dev",
-"iobb.net",
-"myjino.ru",
-"*.hosting.myjino.ru",
-"*.landing.myjino.ru",
-"*.spectrum.myjino.ru",
-"*.vps.myjino.ru",
-"*.triton.zone",
-"*.cns.joyent.com",
-"js.org",
-"kaas.gg",
-"khplay.nl",
-"keymachine.de",
-"kinghost.net",
-"uni5.net",
-"knightpoint.systems",
-"oya.to",
-"co.krd",
-"edu.krd",
-"git-repos.de",
-"lcube-server.de",
-"svn-repos.de",
-"leadpages.co",
-"lpages.co",
-"lpusercontent.com",
-"lelux.site",
-"co.business",
-"co.education",
-"co.events",
-"co.financial",
-"co.network",
-"co.place",
-"co.technology",
-"app.lmpm.com",
-"linkitools.space",
-"linkyard.cloud",
-"linkyard-cloud.ch",
-"members.linode.com",
-"nodebalancer.linode.com",
-"we.bs",
-"loginline.app",
-"loginline.dev",
-"loginline.io",
-"loginline.services",
-"loginline.site",
-"krasnik.pl",
-"leczna.pl",
-"lubartow.pl",
-"lublin.pl",
-"poniatowa.pl",
-"swidnik.pl",
-"uklugs.org",
-"glug.org.uk",
-"lug.org.uk",
-"lugs.org.uk",
-"barsy.bg",
-"barsy.co.uk",
-"barsyonline.co.uk",
-"barsycenter.com",
-"barsyonline.com",
-"barsy.club",
-"barsy.de",
-"barsy.eu",
-"barsy.in",
-"barsy.info",
-"barsy.io",
-"barsy.me",
-"barsy.menu",
-"barsy.mobi",
-"barsy.net",
-"barsy.online",
-"barsy.org",
-"barsy.pro",
-"barsy.pub",
-"barsy.shop",
-"barsy.site",
-"barsy.support",
-"barsy.uk",
-"*.magentosite.cloud",
-"mayfirst.info",
-"mayfirst.org",
-"hb.cldmail.ru",
-"miniserver.com",
-"memset.net",
-"cloud.metacentrum.cz",
-"custom.metacentrum.cz",
-"flt.cloud.muni.cz",
-"usr.cloud.muni.cz",
-"meteorapp.com",
-"eu.meteorapp.com",
-"co.pl",
-"azurecontainer.io",
-"azurewebsites.net",
-"azure-mobile.net",
-"cloudapp.net",
-"mozilla-iot.org",
-"bmoattachments.org",
-"net.ru",
-"org.ru",
-"pp.ru",
-"ui.nabu.casa",
-"pony.club",
-"of.fashion",
-"on.fashion",
-"of.football",
-"in.london",
-"of.london",
-"for.men",
-"and.mom",
-"for.mom",
-"for.one",
-"for.sale",
-"of.work",
-"to.work",
-"nctu.me",
-"bitballoon.com",
-"netlify.com",
-"4u.com",
-"ngrok.io",
-"nh-serv.co.uk",
-"nfshost.com",
-"dnsking.ch",
-"mypi.co",
-"n4t.co",
-"001www.com",
-"ddnslive.com",
-"myiphost.com",
-"forumz.info",
-"16-b.it",
-"32-b.it",
-"64-b.it",
-"soundcast.me",
-"tcp4.me",
-"dnsup.net",
-"hicam.net",
-"now-dns.net",
-"ownip.net",
-"vpndns.net",
-"dynserv.org",
-"now-dns.org",
-"x443.pw",
-"now-dns.top",
-"ntdll.top",
-"freeddns.us",
-"crafting.xyz",
-"zapto.xyz",
-"nsupdate.info",
-"nerdpol.ovh",
-"blogsyte.com",
-"brasilia.me",
-"cable-modem.org",
-"ciscofreak.com",
-"collegefan.org",
-"couchpotatofries.org",
-"damnserver.com",
-"ddns.me",
-"ditchyourip.com",
-"dnsfor.me",
-"dnsiskinky.com",
-"dvrcam.info",
-"dynns.com",
-"eating-organic.net",
-"fantasyleague.cc",
-"geekgalaxy.com",
-"golffan.us",
-"health-carereform.com",
-"homesecuritymac.com",
-"homesecuritypc.com",
-"hopto.me",
-"ilovecollege.info",
-"loginto.me",
-"mlbfan.org",
-"mmafan.biz",
-"myactivedirectory.com",
-"mydissent.net",
-"myeffect.net",
-"mymediapc.net",
-"mypsx.net",
-"mysecuritycamera.com",
-"mysecuritycamera.net",
-"mysecuritycamera.org",
-"net-freaks.com",
-"nflfan.org",
-"nhlfan.net",
-"no-ip.ca",
-"no-ip.co.uk",
-"no-ip.net",
-"noip.us",
-"onthewifi.com",
-"pgafan.net",
-"point2this.com",
-"pointto.us",
-"privatizehealthinsurance.net",
-"quicksytes.com",
-"read-books.org",
-"securitytactics.com",
-"serveexchange.com",
-"servehumour.com",
-"servep2p.com",
-"servesarcasm.com",
-"stufftoread.com",
-"ufcfan.org",
-"unusualperson.com",
-"workisboring.com",
-"3utilities.com",
-"bounceme.net",
-"ddns.net",
-"ddnsking.com",
-"gotdns.ch",
-"hopto.org",
-"myftp.biz",
-"myftp.org",
-"myvnc.com",
-"no-ip.biz",
-"no-ip.info",
-"no-ip.org",
-"noip.me",
-"redirectme.net",
-"servebeer.com",
-"serveblog.net",
-"servecounterstrike.com",
-"serveftp.com",
-"servegame.com",
-"servehalflife.com",
-"servehttp.com",
-"serveirc.com",
-"serveminecraft.net",
-"servemp3.com",
-"servepics.com",
-"servequake.com",
-"sytes.net",
-"webhop.me",
-"zapto.org",
-"stage.nodeart.io",
-"nodum.co",
-"nodum.io",
-"pcloud.host",
-"nyc.mn",
-"nom.ae",
-"nom.af",
-"nom.ai",
-"nom.al",
-"nym.by",
-"nom.bz",
-"nym.bz",
-"nom.cl",
-"nym.ec",
-"nom.gd",
-"nom.ge",
-"nom.gl",
-"nym.gr",
-"nom.gt",
-"nym.gy",
-"nym.hk",
-"nom.hn",
-"nym.ie",
-"nom.im",
-"nom.ke",
-"nym.kz",
-"nym.la",
-"nym.lc",
-"nom.li",
-"nym.li",
-"nym.lt",
-"nym.lu",
-"nom.lv",
-"nym.me",
-"nom.mk",
-"nym.mn",
-"nym.mx",
-"nom.nu",
-"nym.nz",
-"nym.pe",
-"nym.pt",
-"nom.pw",
-"nom.qa",
-"nym.ro",
-"nom.rs",
-"nom.si",
-"nym.sk",
-"nom.st",
-"nym.su",
-"nym.sx",
-"nom.tj",
-"nym.tw",
-"nom.ug",
-"nom.uy",
-"nom.vc",
-"nom.vg",
-"static.observableusercontent.com",
-"cya.gg",
-"cloudycluster.net",
-"nid.io",
-"opencraft.hosting",
-"operaunite.com",
-"skygearapp.com",
-"outsystemscloud.com",
-"ownprovider.com",
-"own.pm",
-"ox.rs",
-"oy.lc",
-"pgfog.com",
-"pagefrontapp.com",
-"art.pl",
-"gliwice.pl",
-"krakow.pl",
-"poznan.pl",
-"wroc.pl",
-"zakopane.pl",
-"pantheonsite.io",
-"gotpantheon.com",
-"mypep.link",
-"perspecta.cloud",
-"on-web.fr",
-"*.platform.sh",
-"*.platformsh.site",
-"dyn53.io",
-"co.bn",
-"xen.prgmr.com",
-"priv.at",
-"prvcy.page",
-"*.dweb.link",
-"protonet.io",
-"chirurgiens-dentistes-en-france.fr",
-"byen.site",
-"pubtls.org",
-"qualifioapp.com",
-"qbuser.com",
-"instantcloud.cn",
-"ras.ru",
-"qa2.com",
-"qcx.io",
-"*.sys.qcx.io",
-"dev-myqnapcloud.com",
-"alpha-myqnapcloud.com",
-"myqnapcloud.com",
-"*.quipelements.com",
-"vapor.cloud",
-"vaporcloud.io",
-"rackmaze.com",
-"rackmaze.net",
-"*.on-k3s.io",
-"*.on-rancher.cloud",
-"*.on-rio.io",
-"readthedocs.io",
-"rhcloud.com",
-"app.render.com",
-"onrender.com",
-"repl.co",
-"repl.run",
-"resindevice.io",
-"devices.resinstaging.io",
-"hzc.io",
-"wellbeingzone.eu",
-"ptplus.fit",
-"wellbeingzone.co.uk",
-"git-pages.rit.edu",
-"sandcats.io",
-"logoip.de",
-"logoip.com",
-"schokokeks.net",
-"gov.scot",
-"scrysec.com",
-"firewall-gateway.com",
-"firewall-gateway.de",
-"my-gateway.de",
-"my-router.de",
-"spdns.de",
-"spdns.eu",
-"firewall-gateway.net",
-"my-firewall.org",
-"myfirewall.org",
-"spdns.org",
-"senseering.net",
-"biz.ua",
-"co.ua",
-"pp.ua",
-"shiftedit.io",
-"myshopblocks.com",
-"shopitsite.com",
-"mo-siemens.io",
-"1kapp.com",
-"appchizi.com",
-"applinzi.com",
-"sinaapp.com",
-"vipsinaapp.com",
-"siteleaf.net",
-"bounty-full.com",
-"alpha.bounty-full.com",
-"beta.bounty-full.com",
-"stackhero-network.com",
-"static.land",
-"dev.static.land",
-"sites.static.land",
-"apps.lair.io",
-"*.stolos.io",
-"spacekit.io",
-"customer.speedpartner.de",
-"api.stdlib.com",
-"storj.farm",
-"utwente.io",
-"soc.srcf.net",
-"user.srcf.net",
-"temp-dns.com",
-"applicationcloud.io",
-"scapp.io",
-"*.s5y.io",
-"*.sensiosite.cloud",
-"syncloud.it",
-"diskstation.me",
-"dscloud.biz",
-"dscloud.me",
-"dscloud.mobi",
-"dsmynas.com",
-"dsmynas.net",
-"dsmynas.org",
-"familyds.com",
-"familyds.net",
-"familyds.org",
-"i234.me",
-"myds.me",
-"synology.me",
-"vpnplus.to",
-"direct.quickconnect.to",
-"taifun-dns.de",
-"gda.pl",
-"gdansk.pl",
-"gdynia.pl",
-"med.pl",
-"sopot.pl",
-"edugit.org",
-"telebit.app",
-"telebit.io",
-"*.telebit.xyz",
-"gwiddle.co.uk",
-"thingdustdata.com",
-"cust.dev.thingdust.io",
-"cust.disrec.thingdust.io",
-"cust.prod.thingdust.io",
-"cust.testing.thingdust.io",
-"arvo.network",
-"azimuth.network",
-"bloxcms.com",
-"townnews-staging.com",
-"12hp.at",
-"2ix.at",
-"4lima.at",
-"lima-city.at",
-"12hp.ch",
-"2ix.ch",
-"4lima.ch",
-"lima-city.ch",
-"trafficplex.cloud",
-"de.cool",
-"12hp.de",
-"2ix.de",
-"4lima.de",
-"lima-city.de",
-"1337.pictures",
-"clan.rip",
-"lima-city.rocks",
-"webspace.rocks",
-"lima.zone",
-"*.transurl.be",
-"*.transurl.eu",
-"*.transurl.nl",
-"tuxfamily.org",
-"dd-dns.de",
-"diskstation.eu",
-"diskstation.org",
-"dray-dns.de",
-"draydns.de",
-"dyn-vpn.de",
-"dynvpn.de",
-"mein-vigor.de",
-"my-vigor.de",
-"my-wan.de",
-"syno-ds.de",
-"synology-diskstation.de",
-"synology-ds.de",
-"uber.space",
-"*.uberspace.de",
-"hk.com",
-"hk.org",
-"ltd.hk",
-"inc.hk",
-"virtualuser.de",
-"virtual-user.de",
-"urown.cloud",
-"dnsupdate.info",
-"lib.de.us",
-"2038.io",
-"router.management",
-"v-info.info",
-"voorloper.cloud",
-"v.ua",
-"wafflecell.com",
-"*.webhare.dev",
-"wedeploy.io",
-"wedeploy.me",
-"wedeploy.sh",
-"remotewd.com",
-"wmflabs.org",
-"myforum.community",
-"community-pro.de",
-"diskussionsbereich.de",
-"community-pro.net",
-"meinforum.net",
-"half.host",
-"xnbay.com",
-"u2.xnbay.com",
-"u2-local.xnbay.com",
-"cistron.nl",
-"demon.nl",
-"xs4all.space",
-"yandexcloud.net",
-"storage.yandexcloud.net",
-"website.yandexcloud.net",
-"official.academy",
-"yolasite.com",
-"ybo.faith",
-"yombo.me",
-"homelink.one",
-"ybo.party",
-"ybo.review",
-"ybo.science",
-"ybo.trade",
-"nohost.me",
-"noho.st",
-"za.net",
-"za.org",
-"now.sh",
-"bss.design",
-"basicserver.io",
-"virtualserver.io",
-"enterprisecloud.nu"
-] \ No newline at end of file
diff --git a/deps/npm/node_modules/psl/dist/psl.js b/deps/npm/node_modules/psl/dist/psl.js
deleted file mode 100644
index f4b9b8925bc..00000000000
--- a/deps/npm/node_modules/psl/dist/psl.js
+++ /dev/null
@@ -1,9645 +0,0 @@
-(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.psl = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
-module.exports=[
-"ac",
-"com.ac",
-"edu.ac",
-"gov.ac",
-"net.ac",
-"mil.ac",
-"org.ac",
-"ad",
-"nom.ad",
-"ae",
-"co.ae",
-"net.ae",
-"org.ae",
-"sch.ae",
-"ac.ae",
-"gov.ae",
-"mil.ae",
-"aero",
-"accident-investigation.aero",
-"accident-prevention.aero",
-"aerobatic.aero",
-"aeroclub.aero",
-"aerodrome.aero",
-"agents.aero",
-"aircraft.aero",
-"airline.aero",
-"airport.aero",
-"air-surveillance.aero",
-"airtraffic.aero",
-"air-traffic-control.aero",
-"ambulance.aero",
-"amusement.aero",
-"association.aero",
-"author.aero",
-"ballooning.aero",
-"broker.aero",
-"caa.aero",
-"cargo.aero",
-"catering.aero",
-"certification.aero",
-"championship.aero",
-"charter.aero",
-"civilaviation.aero",
-"club.aero",
-"conference.aero",
-"consultant.aero",
-"consulting.aero",
-"control.aero",
-"council.aero",
-"crew.aero",
-"design.aero",
-"dgca.aero",
-"educator.aero",
-"emergency.aero",
-"engine.aero",
-"engineer.aero",
-"entertainment.aero",
-"equipment.aero",
-"exchange.aero",
-"express.aero",
-"federation.aero",
-"flight.aero",
-"freight.aero",
-"fuel.aero",
-"gliding.aero",
-"government.aero",
-"groundhandling.aero",
-"group.aero",
-"hanggliding.aero",
-"homebuilt.aero",
-"insurance.aero",
-"journal.aero",
-"journalist.aero",
-"leasing.aero",
-"logistics.aero",
-"magazine.aero",
-"maintenance.aero",
-"media.aero",
-"microlight.aero",
-"modelling.aero",
-"navigation.aero",
-"parachuting.aero",
-"paragliding.aero",
-"passenger-association.aero",
-"pilot.aero",
-"press.aero",
-"production.aero",
-"recreation.aero",
-"repbody.aero",
-"res.aero",
-"research.aero",
-"rotorcraft.aero",
-"safety.aero",
-"scientist.aero",
-"services.aero",
-"show.aero",
-"skydiving.aero",
-"software.aero",
-"student.aero",
-"trader.aero",
-"trading.aero",
-"trainer.aero",
-"union.aero",
-"workinggroup.aero",
-"works.aero",
-"af",
-"gov.af",
-"com.af",
-"org.af",
-"net.af",
-"edu.af",
-"ag",
-"com.ag",
-"org.ag",
-"net.ag",
-"co.ag",
-"nom.ag",
-"ai",
-"off.ai",
-"com.ai",
-"net.ai",
-"org.ai",
-"al",
-"com.al",
-"edu.al",
-"gov.al",
-"mil.al",
-"net.al",
-"org.al",
-"am",
-"co.am",
-"com.am",
-"commune.am",
-"net.am",
-"org.am",
-"ao",
-"ed.ao",
-"gv.ao",
-"og.ao",
-"co.ao",
-"pb.ao",
-"it.ao",
-"aq",
-"ar",
-"com.ar",
-"edu.ar",
-"gob.ar",
-"gov.ar",
-"int.ar",
-"mil.ar",
-"musica.ar",
-"net.ar",
-"org.ar",
-"tur.ar",
-"arpa",
-"e164.arpa",
-"in-addr.arpa",
-"ip6.arpa",
-"iris.arpa",
-"uri.arpa",
-"urn.arpa",
-"as",
-"gov.as",
-"asia",
-"at",
-"ac.at",
-"co.at",
-"gv.at",
-"or.at",
-"au",
-"com.au",
-"net.au",
-"org.au",
-"edu.au",
-"gov.au",
-"asn.au",
-"id.au",
-"info.au",
-"conf.au",
-"oz.au",
-"act.au",
-"nsw.au",
-"nt.au",
-"qld.au",
-"sa.au",
-"tas.au",
-"vic.au",
-"wa.au",
-"act.edu.au",
-"catholic.edu.au",
-"nsw.edu.au",
-"nt.edu.au",
-"qld.edu.au",
-"sa.edu.au",
-"tas.edu.au",
-"vic.edu.au",
-"wa.edu.au",
-"qld.gov.au",
-"sa.gov.au",
-"tas.gov.au",
-"vic.gov.au",
-"wa.gov.au",
-"education.tas.edu.au",
-"schools.nsw.edu.au",
-"aw",
-"com.aw",
-"ax",
-"az",
-"com.az",
-"net.az",
-"int.az",
-"gov.az",
-"org.az",
-"edu.az",
-"info.az",
-"pp.az",
-"mil.az",
-"name.az",
-"pro.az",
-"biz.az",
-"ba",
-"com.ba",
-"edu.ba",
-"gov.ba",
-"mil.ba",
-"net.ba",
-"org.ba",
-"bb",
-"biz.bb",
-"co.bb",
-"com.bb",
-"edu.bb",
-"gov.bb",
-"info.bb",
-"net.bb",
-"org.bb",
-"store.bb",
-"tv.bb",
-"*.bd",
-"be",
-"ac.be",
-"bf",
-"gov.bf",
-"bg",
-"a.bg",
-"b.bg",
-"c.bg",
-"d.bg",
-"e.bg",
-"f.bg",
-"g.bg",
-"h.bg",
-"i.bg",
-"j.bg",
-"k.bg",
-"l.bg",
-"m.bg",
-"n.bg",
-"o.bg",
-"p.bg",
-"q.bg",
-"r.bg",
-"s.bg",
-"t.bg",
-"u.bg",
-"v.bg",
-"w.bg",
-"x.bg",
-"y.bg",
-"z.bg",
-"0.bg",
-"1.bg",
-"2.bg",
-"3.bg",
-"4.bg",
-"5.bg",
-"6.bg",
-"7.bg",
-"8.bg",
-"9.bg",
-"bh",
-"com.bh",
-"edu.bh",
-"net.bh",
-"org.bh",
-"gov.bh",
-"bi",
-"co.bi",
-"com.bi",
-"edu.bi",
-"or.bi",
-"org.bi",
-"biz",
-"bj",
-"asso.bj",
-"barreau.bj",
-"gouv.bj",
-"bm",
-"com.bm",
-"edu.bm",
-"gov.bm",
-"net.bm",
-"org.bm",
-"bn",
-"com.bn",
-"edu.bn",
-"gov.bn",
-"net.bn",
-"org.bn",
-"bo",
-"com.bo",
-"edu.bo",
-"gob.bo",
-"int.bo",
-"org.bo",
-"net.bo",
-"mil.bo",
-"tv.bo",
-"web.bo",
-"academia.bo",
-"agro.bo",
-"arte.bo",
-"blog.bo",
-"bolivia.bo",
-"ciencia.bo",
-"cooperativa.bo",
-"democracia.bo",
-"deporte.bo",
-"ecologia.bo",
-"economia.bo",
-"empresa.bo",
-"indigena.bo",
-"industria.bo",
-"info.bo",
-"medicina.bo",
-"movimiento.bo",
-"musica.bo",
-"natural.bo",
-"nombre.bo",
-"noticias.bo",
-"patria.bo",
-"politica.bo",
-"profesional.bo",
-"plurinacional.bo",
-"pueblo.bo",
-"revista.bo",
-"salud.bo",
-"tecnologia.bo",
-"tksat.bo",
-"transporte.bo",
-"wiki.bo",
-"br",
-"9guacu.br",
-"abc.br",
-"adm.br",
-"adv.br",
-"agr.br",
-"aju.br",
-"am.br",
-"anani.br",
-"aparecida.br",
-"arq.br",
-"art.br",
-"ato.br",
-"b.br",
-"barueri.br",
-"belem.br",
-"bhz.br",
-"bio.br",
-"blog.br",
-"bmd.br",
-"boavista.br",
-"bsb.br",
-"campinagrande.br",
-"campinas.br",
-"caxias.br",
-"cim.br",
-"cng.br",
-"cnt.br",
-"com.br",
-"contagem.br",
-"coop.br",
-"cri.br",
-"cuiaba.br",
-"curitiba.br",
-"def.br",
-"ecn.br",
-"eco.br",
-"edu.br",
-"emp.br",
-"eng.br",
-"esp.br",
-"etc.br",
-"eti.br",
-"far.br",
-"feira.br",
-"flog.br",
-"floripa.br",
-"fm.br",
-"fnd.br",
-"fortal.br",
-"fot.br",
-"foz.br",
-"fst.br",
-"g12.br",
-"ggf.br",
-"goiania.br",
-"gov.br",
-"ac.gov.br",
-"al.gov.br",
-"am.gov.br",
-"ap.gov.br",
-"ba.gov.br",
-"ce.gov.br",
-"df.gov.br",
-"es.gov.br",
-"go.gov.br",
-"ma.gov.br",
-"mg.gov.br",
-"ms.gov.br",
-"mt.gov.br",
-"pa.gov.br",
-"pb.gov.br",
-"pe.gov.br",
-"pi.gov.br",
-"pr.gov.br",
-"rj.gov.br",
-"rn.gov.br",
-"ro.gov.br",
-"rr.gov.br",
-"rs.gov.br",
-"sc.gov.br",
-"se.gov.br",
-"sp.gov.br",
-"to.gov.br",
-"gru.br",
-"imb.br",
-"ind.br",
-"inf.br",
-"jab.br",
-"jampa.br",
-"jdf.br",
-"joinville.br",
-"jor.br",
-"jus.br",
-"leg.br",
-"lel.br",
-"londrina.br",
-"macapa.br",
-"maceio.br",
-"manaus.br",
-"maringa.br",
-"mat.br",
-"med.br",
-"mil.br",
-"morena.br",
-"mp.br",
-"mus.br",
-"natal.br",
-"net.br",
-"niteroi.br",
-"*.nom.br",
-"not.br",
-"ntr.br",
-"odo.br",
-"ong.br",
-"org.br",
-"osasco.br",
-"palmas.br",
-"poa.br",
-"ppg.br",
-"pro.br",
-"psc.br",
-"psi.br",
-"pvh.br",
-"qsl.br",
-"radio.br",
-"rec.br",
-"recife.br",
-"ribeirao.br",
-"rio.br",
-"riobranco.br",
-"riopreto.br",
-"salvador.br",
-"sampa.br",
-"santamaria.br",
-"santoandre.br",
-"saobernardo.br",
-"saogonca.br",
-"sjc.br",
-"slg.br",
-"slz.br",
-"sorocaba.br",
-"srv.br",
-"taxi.br",
-"tc.br",
-"teo.br",
-"the.br",
-"tmp.br",
-"trd.br",
-"tur.br",
-"tv.br",
-"udi.br",
-"vet.br",
-"vix.br",
-"vlog.br",
-"wiki.br",
-"zlg.br",
-"bs",
-"com.bs",
-"net.bs",
-"org.bs",
-"edu.bs",
-"gov.bs",
-"bt",
-"com.bt",
-"edu.bt",
-"gov.bt",
-"net.bt",
-"org.bt",
-"bv",
-"bw",
-"co.bw",
-"org.bw",
-"by",
-"gov.by",
-"mil.by",
-"com.by",
-"of.by",
-"bz",
-"com.bz",
-"net.bz",
-"org.bz",
-"edu.bz",
-"gov.bz",
-"ca",
-"ab.ca",
-"bc.ca",
-"mb.ca",
-"nb.ca",
-"nf.ca",
-"nl.ca",
-"ns.ca",
-"nt.ca",
-"nu.ca",
-"on.ca",
-"pe.ca",
-"qc.ca",
-"sk.ca",
-"yk.ca",
-"gc.ca",
-"cat",
-"cc",
-"cd",
-"gov.cd",
-"cf",
-"cg",
-"ch",
-"ci",
-"org.ci",
-"or.ci",
-"com.ci",
-"co.ci",
-"edu.ci",
-"ed.ci",
-"ac.ci",
-"net.ci",
-"go.ci",
-"asso.ci",
-"aéroport.ci",
-"int.ci",
-"presse.ci",
-"md.ci",
-"gouv.ci",
-"*.ck",
-"!www.ck",
-"cl",
-"aprendemas.cl",
-"co.cl",
-"gob.cl",
-"gov.cl",
-"mil.cl",
-"cm",
-"co.cm",
-"com.cm",
-"gov.cm",
-"net.cm",
-"cn",
-"ac.cn",
-"com.cn",
-"edu.cn",
-"gov.cn",
-"net.cn",
-"org.cn",
-"mil.cn",
-"公司.cn",
-"网络.cn",
-"網絡.cn",
-"ah.cn",
-"bj.cn",
-"cq.cn",
-"fj.cn",
-"gd.cn",
-"gs.cn",
-"gz.cn",
-"gx.cn",
-"ha.cn",
-"hb.cn",
-"he.cn",
-"hi.cn",
-"hl.cn",
-"hn.cn",
-"jl.cn",
-"js.cn",
-"jx.cn",
-"ln.cn",
-"nm.cn",
-"nx.cn",
-"qh.cn",
-"sc.cn",
-"sd.cn",
-"sh.cn",
-"sn.cn",
-"sx.cn",
-"tj.cn",
-"xj.cn",
-"xz.cn",
-"yn.cn",
-"zj.cn",
-"hk.cn",
-"mo.cn",
-"tw.cn",
-"co",
-"arts.co",
-"com.co",
-"edu.co",
-"firm.co",
-"gov.co",
-"info.co",
-"int.co",
-"mil.co",
-"net.co",
-"nom.co",
-"org.co",
-"rec.co",
-"web.co",
-"com",
-"coop",
-"cr",
-"ac.cr",
-"co.cr",
-"ed.cr",
-"fi.cr",
-"go.cr",
-"or.cr",
-"sa.cr",
-"cu",
-"com.cu",
-"edu.cu",
-"org.cu",
-"net.cu",
-"gov.cu",
-"inf.cu",
-"cv",
-"cw",
-"com.cw",
-"edu.cw",
-"net.cw",
-"org.cw",
-"cx",
-"gov.cx",
-"cy",
-"ac.cy",
-"biz.cy",
-"com.cy",
-"ekloges.cy",
-"gov.cy",
-"ltd.cy",
-"name.cy",
-"net.cy",
-"org.cy",
-"parliament.cy",
-"press.cy",
-"pro.cy",
-"tm.cy",
-"cz",
-"de",
-"dj",
-"dk",
-"dm",
-"com.dm",
-"net.dm",
-"org.dm",
-"edu.dm",
-"gov.dm",
-"do",
-"art.do",
-"com.do",
-"edu.do",
-"gob.do",
-"gov.do",
-"mil.do",
-"net.do",
-"org.do",
-"sld.do",
-"web.do",
-"dz",
-"com.dz",
-"org.dz",
-"net.dz",
-"gov.dz",
-"edu.dz",
-"asso.dz",
-"pol.dz",
-"art.dz",
-"ec",
-"com.ec",
-"info.ec",
-"net.ec",
-"fin.ec",
-"k12.ec",
-"med.ec",
-"pro.ec",
-"org.ec",
-"edu.ec",
-"gov.ec",
-"gob.ec",
-"mil.ec",
-"edu",
-"ee",
-"edu.ee",
-"gov.ee",
-"riik.ee",
-"lib.ee",
-"med.ee",
-"com.ee",
-"pri.ee",
-"aip.ee",
-"org.ee",
-"fie.ee",
-"eg",
-"com.eg",
-"edu.eg",
-"eun.eg",
-"gov.eg",
-"mil.eg",
-"name.eg",
-"net.eg",
-"org.eg",
-"sci.eg",
-"*.er",
-"es",
-"com.es",
-"nom.es",
-"org.es",
-"gob.es",
-"edu.es",
-"et",
-"com.et",
-"gov.et",
-"org.et",
-"edu.et",
-"biz.et",
-"name.et",
-"info.et",
-"net.et",
-"eu",
-"fi",
-"aland.fi",
-"fj",
-"ac.fj",
-"biz.fj",
-"com.fj",
-"gov.fj",
-"info.fj",
-"mil.fj",
-"name.fj",
-"net.fj",
-"org.fj",
-"pro.fj",
-"*.fk",
-"fm",
-"fo",
-"fr",
-"asso.fr",
-"com.fr",
-"gouv.fr",
-"nom.fr",
-"prd.fr",
-"tm.fr",
-"aeroport.fr",
-"avocat.fr",
-"avoues.fr",
-"cci.fr",
-"chambagri.fr",
-"chirurgiens-dentistes.fr",
-"experts-comptables.fr",
-"geometre-expert.fr",
-"greta.fr",
-"huissier-justice.fr",
-"medecin.fr",
-"notaires.fr",
-"pharmacien.fr",
-"port.fr",
-"veterinaire.fr",
-"ga",
-"gb",
-"gd",
-"ge",
-"com.ge",
-"edu.ge",
-"gov.ge",
-"org.ge",
-"mil.ge",
-"net.ge",
-"pvt.ge",
-"gf",
-"gg",
-"co.gg",
-"net.gg",
-"org.gg",
-"gh",
-"com.gh",
-"edu.gh",
-"gov.gh",
-"org.gh",
-"mil.gh",
-"gi",
-"com.gi",
-"ltd.gi",
-"gov.gi",
-"mod.gi",
-"edu.gi",
-"org.gi",
-"gl",
-"co.gl",
-"com.gl",
-"edu.gl",
-"net.gl",
-"org.gl",
-"gm",
-"gn",
-"ac.gn",
-"com.gn",
-"edu.gn",
-"gov.gn",
-"org.gn",
-"net.gn",
-"gov",
-"gp",
-"com.gp",
-"net.gp",
-"mobi.gp",
-"edu.gp",
-"org.gp",
-"asso.gp",
-"gq",
-"gr",
-"com.gr",
-"edu.gr",
-"net.gr",
-"org.gr",
-"gov.gr",
-"gs",
-"gt",
-"com.gt",
-"edu.gt",
-"gob.gt",
-"ind.gt",
-"mil.gt",
-"net.gt",
-"org.gt",
-"gu",
-"com.gu",
-"edu.gu",
-"gov.gu",
-"guam.gu",
-"info.gu",
-"net.gu",
-"org.gu",
-"web.gu",
-"gw",
-"gy",
-"co.gy",
-"com.gy",
-"edu.gy",
-"gov.gy",
-"net.gy",
-"org.gy",
-"hk",
-"com.hk",
-"edu.hk",
-"gov.hk",
-"idv.hk",
-"net.hk",
-"org.hk",
-"公司.hk",
-"教育.hk",
-"敎育.hk",
-"政府.hk",
-"個人.hk",
-"个人.hk",
-"箇人.hk",
-"網络.hk",
-"网络.hk",
-"组織.hk",
-"網絡.hk",
-"网絡.hk",
-"组织.hk",
-"組織.hk",
-"組织.hk",
-"hm",
-"hn",
-"com.hn",
-"edu.hn",
-"org.hn",
-"net.hn",
-"mil.hn",
-"gob.hn",
-"hr",
-"iz.hr",
-"from.hr",
-"name.hr",
-"com.hr",
-"ht",
-"com.ht",
-"shop.ht",
-"firm.ht",
-"info.ht",
-"adult.ht",
-"net.ht",
-"pro.ht",
-"org.ht",
-"med.ht",
-"art.ht",
-"coop.ht",
-"pol.ht",
-"asso.ht",
-"edu.ht",
-"rel.ht",
-"gouv.ht",
-"perso.ht",
-"hu",
-"co.hu",
-"info.hu",
-"org.hu",
-"priv.hu",
-"sport.hu",
-"tm.hu",
-"2000.hu",
-"agrar.hu",
-"bolt.hu",
-"casino.hu",
-"city.hu",
-"erotica.hu",
-"erotika.hu",
-"film.hu",
-"forum.hu",
-"games.hu",
-"hotel.hu",
-"ingatlan.hu",
-"jogasz.hu",
-"konyvelo.hu",
-"lakas.hu",
-"media.hu",
-"news.hu",
-"reklam.hu",
-"sex.hu",
-"shop.hu",
-"suli.hu",
-"szex.hu",
-"tozsde.hu",
-"utazas.hu",
-"video.hu",
-"id",
-"ac.id",
-"biz.id",
-"co.id",
-"desa.id",
-"go.id",
-"mil.id",
-"my.id",
-"net.id",
-"or.id",
-"ponpes.id",
-"sch.id",
-"web.id",
-"ie",
-"gov.ie",
-"il",
-"ac.il",
-"co.il",
-"gov.il",
-"idf.il",
-"k12.il",
-"muni.il",
-"net.il",
-"org.il",
-"im",
-"ac.im",
-"co.im",
-"com.im",
-"ltd.co.im",
-"net.im",
-"org.im",
-"plc.co.im",
-"tt.im",
-"tv.im",
-"in",
-"co.in",
-"firm.in",
-"net.in",
-"org.in",
-"gen.in",
-"ind.in",
-"nic.in",
-"ac.in",
-"edu.in",
-"res.in",
-"gov.in",
-"mil.in",
-"info",
-"int",
-"eu.int",
-"io",
-"com.io",
-"iq",
-"gov.iq",
-"edu.iq",
-"mil.iq",
-"com.iq",
-"org.iq",
-"net.iq",
-"ir",
-"ac.ir",
-"co.ir",
-"gov.ir",
-"id.ir",
-"net.ir",
-"org.ir",
-"sch.ir",
-"ایران.ir",
-"ايران.ir",
-"is",
-"net.is",
-"com.is",
-"edu.is",
-"gov.is",
-"org.is",
-"int.is",
-"it",
-"gov.it",
-"edu.it",
-"abr.it",
-"abruzzo.it",
-"aosta-valley.it",
-"aostavalley.it",
-"bas.it",
-"basilicata.it",
-"cal.it",
-"calabria.it",
-"cam.it",
-"campania.it",
-"emilia-romagna.it",
-"emiliaromagna.it",
-"emr.it",
-"friuli-v-giulia.it",
-"friuli-ve-giulia.it",
-"friuli-vegiulia.it",
-"friuli-venezia-giulia.it",
-"friuli-veneziagiulia.it",
-"friuli-vgiulia.it",
-"friuliv-giulia.it",
-"friulive-giulia.it",
-"friulivegiulia.it",
-"friulivenezia-giulia.it",
-"friuliveneziagiulia.it",
-"friulivgiulia.it",
-"fvg.it",
-"laz.it",
-"lazio.it",
-"lig.it",
-"liguria.it",
-"lom.it",
-"lombardia.it",
-"lombardy.it",
-"lucania.it",
-"mar.it",
-"marche.it",
-"mol.it",
-"molise.it",
-"piedmont.it",
-"piemonte.it",
-"pmn.it",
-"pug.it",
-"puglia.it",
-"sar.it",
-"sardegna.it",
-"sardinia.it",
-"sic.it",
-"sicilia.it",
-"sicily.it",
-"taa.it",
-"tos.it",
-"toscana.it",
-"trentin-sud-tirol.it",
-"trentin-süd-tirol.it",
-"trentin-sudtirol.it",
-"trentin-südtirol.it",
-"trentin-sued-tirol.it",
-"trentin-suedtirol.it",
-"trentino-a-adige.it",
-"trentino-aadige.it",
-"trentino-alto-adige.it",
-"trentino-altoadige.it",
-"trentino-s-tirol.it",
-"trentino-stirol.it",
-"trentino-sud-tirol.it",
-"trentino-süd-tirol.it",
-"trentino-sudtirol.it",
-"trentino-südtirol.it",
-"trentino-sued-tirol.it",
-"trentino-suedtirol.it",
-"trentino.it",
-"trentinoa-adige.it",
-"trentinoaadige.it",
-"trentinoalto-adige.it",
-"trentinoaltoadige.it",
-"trentinos-tirol.it",
-"trentinostirol.it",
-"trentinosud-tirol.it",
-"trentinosüd-tirol.it",
-"trentinosudtirol.it",
-"trentinosüdtirol.it",
-"trentinosued-tirol.it",
-"trentinosuedtirol.it",
-"trentinsud-tirol.it",
-"trentinsüd-tirol.it",
-"trentinsudtirol.it",
-"trentinsüdtirol.it",
-"trentinsued-tirol.it",
-"trentinsuedtirol.it",
-"tuscany.it",
-"umb.it",
-"umbria.it",
-"val-d-aosta.it",
-"val-daosta.it",
-"vald-aosta.it",
-"valdaosta.it",
-"valle-aosta.it",
-"valle-d-aosta.it",
-"valle-daosta.it",
-"valleaosta.it",
-"valled-aosta.it",
-"valledaosta.it",
-"vallee-aoste.it",
-"vallée-aoste.it",
-"vallee-d-aoste.it",
-"vallée-d-aoste.it",
-"valleeaoste.it",
-"valléeaoste.it",
-"valleedaoste.it",
-"valléedaoste.it",
-"vao.it",
-"vda.it",
-"ven.it",
-"veneto.it",
-"ag.it",
-"agrigento.it",
-"al.it",
-"alessandria.it",
-"alto-adige.it",
-"altoadige.it",
-"an.it",
-"ancona.it",
-"andria-barletta-trani.it",
-"andria-trani-barletta.it",
-"andriabarlettatrani.it",
-"andriatranibarletta.it",
-"ao.it",
-"aosta.it",
-"aoste.it",
-"ap.it",
-"aq.it",
-"aquila.it",
-"ar.it",
-"arezzo.it",
-"ascoli-piceno.it",
-"ascolipiceno.it",
-"asti.it",
-"at.it",
-"av.it",
-"avellino.it",
-"ba.it",
-"balsan-sudtirol.it",
-"balsan-südtirol.it",
-"balsan-suedtirol.it",
-"balsan.it",
-"bari.it",
-"barletta-trani-andria.it",
-"barlettatraniandria.it",
-"belluno.it",
-"benevento.it",
-"bergamo.it",
-"bg.it",
-"bi.it",
-"biella.it",
-"bl.it",
-"bn.it",
-"bo.it",
-"bologna.it",
-"bolzano-altoadige.it",
-"bolzano.it",
-"bozen-sudtirol.it",
-"bozen-südtirol.it",
-"bozen-suedtirol.it",
-"bozen.it",
-"br.it",
-"brescia.it",
-"brindisi.it",
-"bs.it",
-"bt.it",
-"bulsan-sudtirol.it",
-"bulsan-südtirol.it",
-"bulsan-suedtirol.it",
-"bulsan.it",
-"bz.it",
-"ca.it",
-"cagliari.it",
-"caltanissetta.it",
-"campidano-medio.it",
-"campidanomedio.it",
-"campobasso.it",
-"carbonia-iglesias.it",
-"carboniaiglesias.it",
-"carrara-massa.it",
-"carraramassa.it",
-"caserta.it",
-"catania.it",
-"catanzaro.it",
-"cb.it",
-"ce.it",
-"cesena-forli.it",
-"cesena-forlì.it",
-"cesenaforli.it",
-"cesenaforlì.it",
-"ch.it",
-"chieti.it",
-"ci.it",
-"cl.it",
-"cn.it",
-"co.it",
-"como.it",
-"cosenza.it",
-"cr.it",
-"cremona.it",
-"crotone.it",
-"cs.it",
-"ct.it",
-"cuneo.it",
-"cz.it",
-"dell-ogliastra.it",
-"dellogliastra.it",
-"en.it",
-"enna.it",
-"fc.it",
-"fe.it",
-"fermo.it",
-"ferrara.it",
-"fg.it",
-"fi.it",
-"firenze.it",
-"florence.it",
-"fm.it",
-"foggia.it",
-"forli-cesena.it",
-"forlì-cesena.it",
-"forlicesena.it",
-"forlìcesena.it",
-"fr.it",
-"frosinone.it",
-"ge.it",
-"genoa.it",
-"genova.it",
-"go.it",
-"gorizia.it",
-"gr.it",
-"grosseto.it",
-"iglesias-carbonia.it",
-"iglesiascarbonia.it",
-"im.it",
-"imperia.it",
-"is.it",
-"isernia.it",
-"kr.it",
-"la-spezia.it",
-"laquila.it",
-"laspezia.it",
-"latina.it",
-"lc.it",
-"le.it",
-"lecce.it",
-"lecco.it",
-"li.it",
-"livorno.it",
-"lo.it",
-"lodi.it",
-"lt.it",
-"lu.it",
-"lucca.it",
-"macerata.it",
-"mantova.it",
-"massa-carrara.it",
-"massacarrara.it",
-"matera.it",
-"mb.it",
-"mc.it",
-"me.it",
-"medio-campidano.it",
-"mediocampidano.it",
-"messina.it",
-"mi.it",
-"milan.it",
-"milano.it",
-"mn.it",
-"mo.it",
-"modena.it",
-"monza-brianza.it",
-"monza-e-della-brianza.it",
-"monza.it",
-"monzabrianza.it",
-"monzaebrianza.it",
-"monzaedellabrianza.it",
-"ms.it",
-"mt.it",
-"na.it",
-"naples.it",
-"napoli.it",
-"no.it",
-"novara.it",
-"nu.it",
-"nuoro.it",
-"og.it",
-"ogliastra.it",
-"olbia-tempio.it",
-"olbiatempio.it",
-"or.it",
-"oristano.it",
-"ot.it",
-"pa.it",
-"padova.it",
-"padua.it",
-"palermo.it",
-"parma.it",
-"pavia.it",
-"pc.it",
-"pd.it",
-"pe.it",
-"perugia.it",
-"pesaro-urbino.it",
-"pesarourbino.it",
-"pescara.it",
-"pg.it",
-"pi.it",
-"piacenza.it",
-"pisa.it",
-"pistoia.it",
-"pn.it",
-"po.it",
-"pordenone.it",
-"potenza.it",
-"pr.it",
-"prato.it",
-"pt.it",
-"pu.it",
-"pv.it",
-"pz.it",
-"ra.it",
-"ragusa.it",
-"ravenna.it",
-"rc.it",
-"re.it",
-"reggio-calabria.it",
-"reggio-emilia.it",
-"reggiocalabria.it",
-"reggioemilia.it",
-"rg.it",
-"ri.it",
-"rieti.it",
-"rimini.it",
-"rm.it",
-"rn.it",
-"ro.it",
-"roma.it",
-"rome.it",
-"rovigo.it",
-"sa.it",
-"salerno.it",
-"sassari.it",
-"savona.it",
-"si.it",
-"siena.it",
-"siracusa.it",
-"so.it",
-"sondrio.it",
-"sp.it",
-"sr.it",
-"ss.it",
-"suedtirol.it",
-"südtirol.it",
-"sv.it",
-"ta.it",
-"taranto.it",
-"te.it",
-"tempio-olbia.it",
-"tempioolbia.it",
-"teramo.it",
-"terni.it",
-"tn.it",
-"to.it",
-"torino.it",
-"tp.it",
-"tr.it",
-"trani-andria-barletta.it",
-"trani-barletta-andria.it",
-"traniandriabarletta.it",
-"tranibarlettaandria.it",
-"trapani.it",
-"trento.it",
-"treviso.it",
-"trieste.it",
-"ts.it",
-"turin.it",
-"tv.it",
-"ud.it",
-"udine.it",
-"urbino-pesaro.it",
-"urbinopesaro.it",
-"va.it",
-"varese.it",
-"vb.it",
-"vc.it",
-"ve.it",
-"venezia.it",
-"venice.it",
-"verbania.it",
-"vercelli.it",
-"verona.it",
-"vi.it",
-"vibo-valentia.it",
-"vibovalentia.it",
-"vicenza.it",
-"viterbo.it",
-"vr.it",
-"vs.it",
-"vt.it",
-"vv.it",
-"je",
-"co.je",
-"net.je",
-"org.je",
-"*.jm",
-"jo",
-"com.jo",
-"org.jo",
-"net.jo",
-"edu.jo",
-"sch.jo",
-"gov.jo",
-"mil.jo",
-"name.jo",
-"jobs",
-"jp",
-"ac.jp",
-"ad.jp",
-"co.jp",
-"ed.jp",
-"go.jp",
-"gr.jp",
-"lg.jp",
-"ne.jp",
-"or.jp",
-"aichi.jp",
-"akita.jp",
-"aomori.jp",
-"chiba.jp",
-"ehime.jp",
-"fukui.jp",
-"fukuoka.jp",
-"fukushima.jp",
-"gifu.jp",
-"gunma.jp",
-"hiroshima.jp",
-"hokkaido.jp",
-"hyogo.jp",
-"ibaraki.jp",
-"ishikawa.jp",
-"iwate.jp",
-"kagawa.jp",
-"kagoshima.jp",
-"kanagawa.jp",
-"kochi.jp",
-"kumamoto.jp",
-"kyoto.jp",
-"mie.jp",
-"miyagi.jp",
-"miyazaki.jp",
-"nagano.jp",
-"nagasaki.jp",
-"nara.jp",
-"niigata.jp",
-"oita.jp",
-"okayama.jp",
-"okinawa.jp",
-"osaka.jp",
-"saga.jp",
-"saitama.jp",
-"shiga.jp",
-"shimane.jp",
-"shizuoka.jp",
-"tochigi.jp",
-"tokushima.jp",
-"tokyo.jp",
-"tottori.jp",
-"toyama.jp",
-"wakayama.jp",
-"yamagata.jp",
-"yamaguchi.jp",
-"yamanashi.jp",
-"栃木.jp",
-"愛知.jp",
-"愛媛.jp",
-"兵庫.jp",
-"熊本.jp",
-"茨城.jp",
-"北海道.jp",
-"千葉.jp",
-"和歌山.jp",
-"長崎.jp",
-"長野.jp",
-"新潟.jp",
-"青森.jp",
-"静岡.jp",
-"東京.jp",
-"石川.jp",
-"埼玉.jp",
-"三重.jp",
-"京都.jp",
-"佐賀.jp",
-"大分.jp",
-"大阪.jp",
-"奈良.jp",
-"宮城.jp",
-"宮崎.jp",
-"富山.jp",
-"山口.jp",
-"山形.jp",
-"山梨.jp",
-"岩手.jp",
-"岐阜.jp",
-"岡山.jp",
-"島根.jp",
-"広島.jp",
-"徳島.jp",
-"沖縄.jp",
-"滋賀.jp",
-"神奈川.jp",
-"福井.jp",
-"福岡.jp",
-"福島.jp",
-"秋田.jp",
-"群馬.jp",
-"香川.jp",
-"高知.jp",
-"鳥取.jp",
-"鹿児島.jp",
-"*.kawasaki.jp",
-"*.kitakyushu.jp",
-"*.kobe.jp",
-"*.nagoya.jp",
-"*.sapporo.jp",
-"*.sendai.jp",
-"*.yokohama.jp",
-"!city.kawasaki.jp",
-"!city.kitakyushu.jp",
-"!city.kobe.jp",
-"!city.nagoya.jp",
-"!city.sapporo.jp",
-"!city.sendai.jp",
-"!city.yokohama.jp",
-"aisai.aichi.jp",
-"ama.aichi.jp",
-"anjo.aichi.jp",
-"asuke.aichi.jp",
-"chiryu.aichi.jp",
-"chita.aichi.jp",
-"fuso.aichi.jp",
-"gamagori.aichi.jp",
-"handa.aichi.jp",
-"hazu.aichi.jp",
-"hekinan.aichi.jp",
-"higashiura.aichi.jp",
-"ichinomiya.aichi.jp",
-"inazawa.aichi.jp",
-"inuyama.aichi.jp",
-"isshiki.aichi.jp",
-"iwakura.aichi.jp",
-"kanie.aichi.jp",
-"kariya.aichi.jp",
-"kasugai.aichi.jp",
-"kira.aichi.jp",
-"kiyosu.aichi.jp",
-"komaki.aichi.jp",
-"konan.aichi.jp",
-"kota.aichi.jp",
-"mihama.aichi.jp",
-"miyoshi.aichi.jp",
-"nishio.aichi.jp",
-"nisshin.aichi.jp",
-"obu.aichi.jp",
-"oguchi.aichi.jp",
-"oharu.aichi.jp",
-"okazaki.aichi.jp",
-"owariasahi.aichi.jp",
-"seto.aichi.jp",
-"shikatsu.aichi.jp",
-"shinshiro.aichi.jp",
-"shitara.aichi.jp",
-"tahara.aichi.jp",
-"takahama.aichi.jp",
-"tobishima.aichi.jp",
-"toei.aichi.jp",
-"togo.aichi.jp",
-"tokai.aichi.jp",
-"tokoname.aichi.jp",
-"toyoake.aichi.jp",
-"toyohashi.aichi.jp",
-"toyokawa.aichi.jp",
-"toyone.aichi.jp",
-"toyota.aichi.jp",
-"tsushima.aichi.jp",
-"yatomi.aichi.jp",
-"akita.akita.jp",
-"daisen.akita.jp",
-"fujisato.akita.jp",
-"gojome.akita.jp",
-"hachirogata.akita.jp",
-"happou.akita.jp",
-"higashinaruse.akita.jp",
-"honjo.akita.jp",
-"honjyo.akita.jp",
-"ikawa.akita.jp",
-"kamikoani.akita.jp",
-"kamioka.akita.jp",
-"katagami.akita.jp",
-"kazuno.akita.jp",
-"kitaakita.akita.jp",
-"kosaka.akita.jp",
-"kyowa.akita.jp",
-"misato.akita.jp",
-"mitane.akita.jp",
-"moriyoshi.akita.jp",
-"nikaho.akita.jp",
-"noshiro.akita.jp",
-"odate.akita.jp",
-"oga.akita.jp",
-"ogata.akita.jp",
-"semboku.akita.jp",
-"yokote.akita.jp",
-"yurihonjo.akita.jp",
-"aomori.aomori.jp",
-"gonohe.aomori.jp",
-"hachinohe.aomori.jp",
-"hashikami.aomori.jp",
-"hiranai.aomori.jp",
-"hirosaki.aomori.jp",
-"itayanagi.aomori.jp",
-"kuroishi.aomori.jp",
-"misawa.aomori.jp",
-"mutsu.aomori.jp",
-"nakadomari.aomori.jp",
-"noheji.aomori.jp",
-"oirase.aomori.jp",
-"owani.aomori.jp",
-"rokunohe.aomori.jp",
-"sannohe.aomori.jp",
-"shichinohe.aomori.jp",
-"shingo.aomori.jp",
-"takko.aomori.jp",
-"towada.aomori.jp",
-"tsugaru.aomori.jp",
-"tsuruta.aomori.jp",
-"abiko.chiba.jp",
-"asahi.chiba.jp",
-"chonan.chiba.jp",
-"chosei.chiba.jp",
-"choshi.chiba.jp",
-"chuo.chiba.jp",
-"funabashi.chiba.jp",
-"futtsu.chiba.jp",
-"hanamigawa.chiba.jp",
-"ichihara.chiba.jp",
-"ichikawa.chiba.jp",
-"ichinomiya.chiba.jp",
-"inzai.chiba.jp",
-"isumi.chiba.jp",
-"kamagaya.chiba.jp",
-"kamogawa.chiba.jp",
-"kashiwa.chiba.jp",
-"katori.chiba.jp",
-"katsuura.chiba.jp",
-"kimitsu.chiba.jp",
-"kisarazu.chiba.jp",
-"kozaki.chiba.jp",
-"kujukuri.chiba.jp",
-"kyonan.chiba.jp",
-"matsudo.chiba.jp",
-"midori.chiba.jp",
-"mihama.chiba.jp",
-"minamiboso.chiba.jp",
-"mobara.chiba.jp",
-"mutsuzawa.chiba.jp",
-"nagara.chiba.jp",
-"nagareyama.chiba.jp",
-"narashino.chiba.jp",
-"narita.chiba.jp",
-"noda.chiba.jp",
-"oamishirasato.chiba.jp",
-"omigawa.chiba.jp",
-"onjuku.chiba.jp",
-"otaki.chiba.jp",
-"sakae.chiba.jp",
-"sakura.chiba.jp",
-"shimofusa.chiba.jp",
-"shirako.chiba.jp",
-"shiroi.chiba.jp",
-"shisui.chiba.jp",
-"sodegaura.chiba.jp",
-"sosa.chiba.jp",
-"tako.chiba.jp",
-"tateyama.chiba.jp",
-"togane.chiba.jp",
-"tohnosho.chiba.jp",
-"tomisato.chiba.jp",
-"urayasu.chiba.jp",
-"yachimata.chiba.jp",
-"yachiyo.chiba.jp",
-"yokaichiba.chiba.jp",
-"yokoshibahikari.chiba.jp",
-"yotsukaido.chiba.jp",
-"ainan.ehime.jp",
-"honai.ehime.jp",
-"ikata.ehime.jp",
-"imabari.ehime.jp",
-"iyo.ehime.jp",
-"kamijima.ehime.jp",
-"kihoku.ehime.jp",
-"kumakogen.ehime.jp",
-"masaki.ehime.jp",
-"matsuno.ehime.jp",
-"matsuyama.ehime.jp",
-"namikata.ehime.jp",
-"niihama.ehime.jp",
-"ozu.ehime.jp",
-"saijo.ehime.jp",
-"seiyo.ehime.jp",
-"shikokuchuo.ehime.jp",
-"tobe.ehime.jp",
-"toon.ehime.jp",
-"uchiko.ehime.jp",
-"uwajima.ehime.jp",
-"yawatahama.ehime.jp",
-"echizen.fukui.jp",
-"eiheiji.fukui.jp",
-"fukui.fukui.jp",
-"ikeda.fukui.jp",
-"katsuyama.fukui.jp",
-"mihama.fukui.jp",
-"minamiechizen.fukui.jp",
-"obama.fukui.jp",
-"ohi.fukui.jp",
-"ono.fukui.jp",
-"sabae.fukui.jp",
-"sakai.fukui.jp",
-"takahama.fukui.jp",
-"tsuruga.fukui.jp",
-"wakasa.fukui.jp",
-"ashiya.fukuoka.jp",
-"buzen.fukuoka.jp",
-"chikugo.fukuoka.jp",
-"chikuho.fukuoka.jp",
-"chikujo.fukuoka.jp",
-"chikushino.fukuoka.jp",
-"chikuzen.fukuoka.jp",
-"chuo.fukuoka.jp",
-"dazaifu.fukuoka.jp",
-"fukuchi.fukuoka.jp",
-"hakata.fukuoka.jp",
-"higashi.fukuoka.jp",
-"hirokawa.fukuoka.jp",
-"hisayama.fukuoka.jp",
-"iizuka.fukuoka.jp",
-"inatsuki.fukuoka.jp",
-"kaho.fukuoka.jp",
-"kasuga.fukuoka.jp",
-"kasuya.fukuoka.jp",
-"kawara.fukuoka.jp",
-"keisen.fukuoka.jp",
-"koga.fukuoka.jp",
-"kurate.fukuoka.jp",
-"kurogi.fukuoka.jp",
-"kurume.fukuoka.jp",
-"minami.fukuoka.jp",
-"miyako.fukuoka.jp",
-"miyama.fukuoka.jp",
-"miyawaka.fukuoka.jp",
-"mizumaki.fukuoka.jp",
-"munakata.fukuoka.jp",
-"nakagawa.fukuoka.jp",
-"nakama.fukuoka.jp",
-"nishi.fukuoka.jp",
-"nogata.fukuoka.jp",
-"ogori.fukuoka.jp",
-"okagaki.fukuoka.jp",
-"okawa.fukuoka.jp",
-"oki.fukuoka.jp",
-"omuta.fukuoka.jp",
-"onga.fukuoka.jp",
-"onojo.fukuoka.jp",
-"oto.fukuoka.jp",
-"saigawa.fukuoka.jp",
-"sasaguri.fukuoka.jp",
-"shingu.fukuoka.jp",
-"shinyoshitomi.fukuoka.jp",
-"shonai.fukuoka.jp",
-"soeda.fukuoka.jp",
-"sue.fukuoka.jp",
-"tachiarai.fukuoka.jp",
-"tagawa.fukuoka.jp",
-"takata.fukuoka.jp",
-"toho.fukuoka.jp",
-"toyotsu.fukuoka.jp",
-"tsuiki.fukuoka.jp",
-"ukiha.fukuoka.jp",
-"umi.fukuoka.jp",
-"usui.fukuoka.jp",
-"yamada.fukuoka.jp",
-"yame.fukuoka.jp",
-"yanagawa.fukuoka.jp",
-"yukuhashi.fukuoka.jp",
-"aizubange.fukushima.jp",
-"aizumisato.fukushima.jp",
-"aizuwakamatsu.fukushima.jp",
-"asakawa.fukushima.jp",
-"bandai.fukushima.jp",
-"date.fukushima.jp",
-"fukushima.fukushima.jp",
-"furudono.fukushima.jp",
-"futaba.fukushima.jp",
-"hanawa.fukushima.jp",
-"higashi.fukushima.jp",
-"hirata.fukushima.jp",
-"hirono.fukushima.jp",
-"iitate.fukushima.jp",
-"inawashiro.fukushima.jp",
-"ishikawa.fukushima.jp",
-"iwaki.fukushima.jp",
-"izumizaki.fukushima.jp",
-"kagamiishi.fukushima.jp",
-"kaneyama.fukushima.jp",
-"kawamata.fukushima.jp",
-"kitakata.fukushima.jp",
-"kitashiobara.fukushima.jp",
-"koori.fukushima.jp",
-"koriyama.fukushima.jp",
-"kunimi.fukushima.jp",
-"miharu.fukushima.jp",
-"mishima.fukushima.jp",
-"namie.fukushima.jp",
-"nango.fukushima.jp",
-"nishiaizu.fukushima.jp",
-"nishigo.fukushima.jp",
-"okuma.fukushima.jp",
-"omotego.fukushima.jp",
-"ono.fukushima.jp",
-"otama.fukushima.jp",
-"samegawa.fukushima.jp",
-"shimogo.fukushima.jp",
-"shirakawa.fukushima.jp",
-"showa.fukushima.jp",
-"soma.fukushima.jp",
-"sukagawa.fukushima.jp",
-"taishin.fukushima.jp",
-"tamakawa.fukushima.jp",
-"tanagura.fukushima.jp",
-"tenei.fukushima.jp",
-"yabuki.fukushima.jp",
-"yamato.fukushima.jp",
-"yamatsuri.fukushima.jp",
-"yanaizu.fukushima.jp",
-"yugawa.fukushima.jp",
-"anpachi.gifu.jp",
-"ena.gifu.jp",
-"gifu.gifu.jp",
-"ginan.gifu.jp",
-"godo.gifu.jp",
-"gujo.gifu.jp",
-"hashima.gifu.jp",
-"hichiso.gifu.jp",
-"hida.gifu.jp",
-"higashishirakawa.gifu.jp",
-"ibigawa.gifu.jp",
-"ikeda.gifu.jp",
-"kakamigahara.gifu.jp",
-"kani.gifu.jp",
-"kasahara.gifu.jp",
-"kasamatsu.gifu.jp",
-"kawaue.gifu.jp",
-"kitagata.gifu.jp",
-"mino.gifu.jp",
-"minokamo.gifu.jp",
-"mitake.gifu.jp",
-"mizunami.gifu.jp",
-"motosu.gifu.jp",
-"nakatsugawa.gifu.jp",
-"ogaki.gifu.jp",
-"sakahogi.gifu.jp",
-"seki.gifu.jp",
-"sekigahara.gifu.jp",
-"shirakawa.gifu.jp",
-"tajimi.gifu.jp",
-"takayama.gifu.jp",
-"tarui.gifu.jp",
-"toki.gifu.jp",
-"tomika.gifu.jp",
-"wanouchi.gifu.jp",
-"yamagata.gifu.jp",
-"yaotsu.gifu.jp",
-"yoro.gifu.jp",
-"annaka.gunma.jp",
-"chiyoda.gunma.jp",
-"fujioka.gunma.jp",
-"higashiagatsuma.gunma.jp",
-"isesaki.gunma.jp",
-"itakura.gunma.jp",
-"kanna.gunma.jp",
-"kanra.gunma.jp",
-"katashina.gunma.jp",
-"kawaba.gunma.jp",
-"kiryu.gunma.jp",
-"kusatsu.gunma.jp",
-"maebashi.gunma.jp",
-"meiwa.gunma.jp",
-"midori.gunma.jp",
-"minakami.gunma.jp",
-"naganohara.gunma.jp",
-"nakanojo.gunma.jp",
-"nanmoku.gunma.jp",
-"numata.gunma.jp",
-"oizumi.gunma.jp",
-"ora.gunma.jp",
-"ota.gunma.jp",
-"shibukawa.gunma.jp",
-"shimonita.gunma.jp",
-"shinto.gunma.jp",
-"showa.gunma.jp",
-"takasaki.gunma.jp",
-"takayama.gunma.jp",
-"tamamura.gunma.jp",
-"tatebayashi.gunma.jp",
-"tomioka.gunma.jp",
-"tsukiyono.gunma.jp",
-"tsumagoi.gunma.jp",
-"ueno.gunma.jp",
-"yoshioka.gunma.jp",
-"asaminami.hiroshima.jp",
-"daiwa.hiroshima.jp",
-"etajima.hiroshima.jp",
-"fuchu.hiroshima.jp",
-"fukuyama.hiroshima.jp",
-"hatsukaichi.hiroshima.jp",
-"higashihiroshima.hiroshima.jp",
-"hongo.hiroshima.jp",
-"jinsekikogen.hiroshima.jp",
-"kaita.hiroshima.jp",
-"kui.hiroshima.jp",
-"kumano.hiroshima.jp",
-"kure.hiroshima.jp",
-"mihara.hiroshima.jp",
-"miyoshi.hiroshima.jp",
-"naka.hiroshima.jp",
-"onomichi.hiroshima.jp",
-"osakikamijima.hiroshima.jp",
-"otake.hiroshima.jp",
-"saka.hiroshima.jp",
-"sera.hiroshima.jp",
-"seranishi.hiroshima.jp",
-"shinichi.hiroshima.jp",
-"shobara.hiroshima.jp",
-"takehara.hiroshima.jp",
-"abashiri.hokkaido.jp",
-"abira.hokkaido.jp",
-"aibetsu.hokkaido.jp",
-"akabira.hokkaido.jp",
-"akkeshi.hokkaido.jp",
-"asahikawa.hokkaido.jp",
-"ashibetsu.hokkaido.jp",
-"ashoro.hokkaido.jp",
-"assabu.hokkaido.jp",
-"atsuma.hokkaido.jp",
-"bibai.hokkaido.jp",
-"biei.hokkaido.jp",
-"bifuka.hokkaido.jp",
-"bihoro.hokkaido.jp",
-"biratori.hokkaido.jp",
-"chippubetsu.hokkaido.jp",
-"chitose.hokkaido.jp",
-"date.hokkaido.jp",
-"ebetsu.hokkaido.jp",
-"embetsu.hokkaido.jp",
-"eniwa.hokkaido.jp",
-"erimo.hokkaido.jp",
-"esan.hokkaido.jp",
-"esashi.hokkaido.jp",
-"fukagawa.hokkaido.jp",
-"fukushima.hokkaido.jp",
-"furano.hokkaido.jp",
-"furubira.hokkaido.jp",
-"haboro.hokkaido.jp",
-"hakodate.hokkaido.jp",
-"hamatonbetsu.hokkaido.jp",
-"hidaka.hokkaido.jp",
-"higashikagura.hokkaido.jp",
-"higashikawa.hokkaido.jp",
-"hiroo.hokkaido.jp",
-"hokuryu.hokkaido.jp",
-"hokuto.hokkaido.jp",
-"honbetsu.hokkaido.jp",
-"horokanai.hokkaido.jp",
-"horonobe.hokkaido.jp",
-"ikeda.hokkaido.jp",
-"imakane.hokkaido.jp",
-"ishikari.hokkaido.jp",
-"iwamizawa.hokkaido.jp",
-"iwanai.hokkaido.jp",
-"kamifurano.hokkaido.jp",
-"kamikawa.hokkaido.jp",
-"kamishihoro.hokkaido.jp",
-"kamisunagawa.hokkaido.jp",
-"kamoenai.hokkaido.jp",
-"kayabe.hokkaido.jp",
-"kembuchi.hokkaido.jp",
-"kikonai.hokkaido.jp",
-"kimobetsu.hokkaido.jp",
-"kitahiroshima.hokkaido.jp",
-"kitami.hokkaido.jp",
-"kiyosato.hokkaido.jp",
-"koshimizu.hokkaido.jp",
-"kunneppu.hokkaido.jp",
-"kuriyama.hokkaido.jp",
-"kuromatsunai.hokkaido.jp",
-"kushiro.hokkaido.jp",
-"kutchan.hokkaido.jp",
-"kyowa.hokkaido.jp",
-"mashike.hokkaido.jp",
-"matsumae.hokkaido.jp",
-"mikasa.hokkaido.jp",
-"minamifurano.hokkaido.jp",
-"mombetsu.hokkaido.jp",
-"moseushi.hokkaido.jp",
-"mukawa.hokkaido.jp",
-"muroran.hokkaido.jp",
-"naie.hokkaido.jp",
-"nakagawa.hokkaido.jp",
-"nakasatsunai.hokkaido.jp",
-"nakatombetsu.hokkaido.jp",
-"nanae.hokkaido.jp",
-"nanporo.hokkaido.jp",
-"nayoro.hokkaido.jp",
-"nemuro.hokkaido.jp",
-"niikappu.hokkaido.jp",
-"niki.hokkaido.jp",
-"nishiokoppe.hokkaido.jp",
-"noboribetsu.hokkaido.jp",
-"numata.hokkaido.jp",
-"obihiro.hokkaido.jp",
-"obira.hokkaido.jp",
-"oketo.hokkaido.jp",
-"okoppe.hokkaido.jp",
-"otaru.hokkaido.jp",
-"otobe.hokkaido.jp",
-"otofuke.hokkaido.jp",
-"otoineppu.hokkaido.jp",
-"oumu.hokkaido.jp",
-"ozora.hokkaido.jp",
-"pippu.hokkaido.jp",
-"rankoshi.hokkaido.jp",
-"rebun.hokkaido.jp",
-"rikubetsu.hokkaido.jp",
-"rishiri.hokkaido.jp",
-"rishirifuji.hokkaido.jp",
-"saroma.hokkaido.jp",
-"sarufutsu.hokkaido.jp",
-"shakotan.hokkaido.jp",
-"shari.hokkaido.jp",
-"shibecha.hokkaido.jp",
-"shibetsu.hokkaido.jp",
-"shikabe.hokkaido.jp",
-"shikaoi.hokkaido.jp",
-"shimamaki.hokkaido.jp",
-"shimizu.hokkaido.jp",
-"shimokawa.hokkaido.jp",
-"shinshinotsu.hokkaido.jp",
-"shintoku.hokkaido.jp",
-"shiranuka.hokkaido.jp",
-"shiraoi.hokkaido.jp",
-"shiriuchi.hokkaido.jp",
-"sobetsu.hokkaido.jp",
-"sunagawa.hokkaido.jp",
-"taiki.hokkaido.jp",
-"takasu.hokkaido.jp",
-"takikawa.hokkaido.jp",
-"takinoue.hokkaido.jp",
-"teshikaga.hokkaido.jp",
-"tobetsu.hokkaido.jp",
-"tohma.hokkaido.jp",
-"tomakomai.hokkaido.jp",
-"tomari.hokkaido.jp",
-"toya.hokkaido.jp",
-"toyako.hokkaido.jp",
-"toyotomi.hokkaido.jp",
-"toyoura.hokkaido.jp",
-"tsubetsu.hokkaido.jp",
-"tsukigata.hokkaido.jp",
-"urakawa.hokkaido.jp",
-"urausu.hokkaido.jp",
-"uryu.hokkaido.jp",
-"utashinai.hokkaido.jp",
-"wakkanai.hokkaido.jp",
-"wassamu.hokkaido.jp",
-"yakumo.hokkaido.jp",
-"yoichi.hokkaido.jp",
-"aioi.hyogo.jp",
-"akashi.hyogo.jp",
-"ako.hyogo.jp",
-"amagasaki.hyogo.jp",
-"aogaki.hyogo.jp",
-"asago.hyogo.jp",
-"ashiya.hyogo.jp",
-"awaji.hyogo.jp",
-"fukusaki.hyogo.jp",
-"goshiki.hyogo.jp",
-"harima.hyogo.jp",
-"himeji.hyogo.jp",
-"ichikawa.hyogo.jp",
-"inagawa.hyogo.jp",
-"itami.hyogo.jp",
-"kakogawa.hyogo.jp",
-"kamigori.hyogo.jp",
-"kamikawa.hyogo.jp",
-"kasai.hyogo.jp",
-"kasuga.hyogo.jp",
-"kawanishi.hyogo.jp",
-"miki.hyogo.jp",
-"minamiawaji.hyogo.jp",
-"nishinomiya.hyogo.jp",
-"nishiwaki.hyogo.jp",
-"ono.hyogo.jp",
-"sanda.hyogo.jp",
-"sannan.hyogo.jp",
-"sasayama.hyogo.jp",
-"sayo.hyogo.jp",
-"shingu.hyogo.jp",
-"shinonsen.hyogo.jp",
-"shiso.hyogo.jp",
-"sumoto.hyogo.jp",
-"taishi.hyogo.jp",
-"taka.hyogo.jp",
-"takarazuka.hyogo.jp",
-"takasago.hyogo.jp",
-"takino.hyogo.jp",
-"tamba.hyogo.jp",
-"tatsuno.hyogo.jp",
-"toyooka.hyogo.jp",
-"yabu.hyogo.jp",
-"yashiro.hyogo.jp",
-"yoka.hyogo.jp",
-"yokawa.hyogo.jp",
-"ami.ibaraki.jp",
-"asahi.ibaraki.jp",
-"bando.ibaraki.jp",
-"chikusei.ibaraki.jp",
-"daigo.ibaraki.jp",
-"fujishiro.ibaraki.jp",
-"hitachi.ibaraki.jp",
-"hitachinaka.ibaraki.jp",
-"hitachiomiya.ibaraki.jp",
-"hitachiota.ibaraki.jp",
-"ibaraki.ibaraki.jp",
-"ina.ibaraki.jp",
-"inashiki.ibaraki.jp",
-"itako.ibaraki.jp",
-"iwama.ibaraki.jp",
-"joso.ibaraki.jp",
-"kamisu.ibaraki.jp",
-"kasama.ibaraki.jp",
-"kashima.ibaraki.jp",
-"kasumigaura.ibaraki.jp",
-"koga.ibaraki.jp",
-"miho.ibaraki.jp",
-"mito.ibaraki.jp",
-"moriya.ibaraki.jp",
-"naka.ibaraki.jp",
-"namegata.ibaraki.jp",
-"oarai.ibaraki.jp",
-"ogawa.ibaraki.jp",
-"omitama.ibaraki.jp",
-"ryugasaki.ibaraki.jp",
-"sakai.ibaraki.jp",
-"sakuragawa.ibaraki.jp",
-"shimodate.ibaraki.jp",
-"shimotsuma.ibaraki.jp",
-"shirosato.ibaraki.jp",
-"sowa.ibaraki.jp",
-"suifu.ibaraki.jp",
-"takahagi.ibaraki.jp",
-"tamatsukuri.ibaraki.jp",
-"tokai.ibaraki.jp",
-"tomobe.ibaraki.jp",
-"tone.ibaraki.jp",
-"toride.ibaraki.jp",
-"tsuchiura.ibaraki.jp",
-"tsukuba.ibaraki.jp",
-"uchihara.ibaraki.jp",
-"ushiku.ibaraki.jp",
-"yachiyo.ibaraki.jp",
-"yamagata.ibaraki.jp",
-"yawara.ibaraki.jp",
-"yuki.ibaraki.jp",
-"anamizu.ishikawa.jp",
-"hakui.ishikawa.jp",
-"hakusan.ishikawa.jp",
-"kaga.ishikawa.jp",
-"kahoku.ishikawa.jp",
-"kanazawa.ishikawa.jp",
-"kawakita.ishikawa.jp",
-"komatsu.ishikawa.jp",
-"nakanoto.ishikawa.jp",
-"nanao.ishikawa.jp",
-"nomi.ishikawa.jp",
-"nonoichi.ishikawa.jp",
-"noto.ishikawa.jp",
-"shika.ishikawa.jp",
-"suzu.ishikawa.jp",
-"tsubata.ishikawa.jp",
-"tsurugi.ishikawa.jp",
-"uchinada.ishikawa.jp",
-"wajima.ishikawa.jp",
-"fudai.iwate.jp",
-"fujisawa.iwate.jp",
-"hanamaki.iwate.jp",
-"hiraizumi.iwate.jp",
-"hirono.iwate.jp",
-"ichinohe.iwate.jp",
-"ichinoseki.iwate.jp",
-"iwaizumi.iwate.jp",
-"iwate.iwate.jp",
-"joboji.iwate.jp",
-"kamaishi.iwate.jp",
-"kanegasaki.iwate.jp",
-"karumai.iwate.jp",
-"kawai.iwate.jp",
-"kitakami.iwate.jp",
-"kuji.iwate.jp",
-"kunohe.iwate.jp",
-"kuzumaki.iwate.jp",
-"miyako.iwate.jp",
-"mizusawa.iwate.jp",
-"morioka.iwate.jp",
-"ninohe.iwate.jp",
-"noda.iwate.jp",
-"ofunato.iwate.jp",
-"oshu.iwate.jp",
-"otsuchi.iwate.jp",
-"rikuzentakata.iwate.jp",
-"shiwa.iwate.jp",
-"shizukuishi.iwate.jp",
-"sumita.iwate.jp",
-"tanohata.iwate.jp",
-"tono.iwate.jp",
-"yahaba.iwate.jp",
-"yamada.iwate.jp",
-"ayagawa.kagawa.jp",
-"higashikagawa.kagawa.jp",
-"kanonji.kagawa.jp",
-"kotohira.kagawa.jp",
-"manno.kagawa.jp",
-"marugame.kagawa.jp",
-"mitoyo.kagawa.jp",
-"naoshima.kagawa.jp",
-"sanuki.kagawa.jp",
-"tadotsu.kagawa.jp",
-"takamatsu.kagawa.jp",
-"tonosho.kagawa.jp",
-"uchinomi.kagawa.jp",
-"utazu.kagawa.jp",
-"zentsuji.kagawa.jp",
-"akune.kagoshima.jp",
-"amami.kagoshima.jp",
-"hioki.kagoshima.jp",
-"isa.kagoshima.jp",
-"isen.kagoshima.jp",
-"izumi.kagoshima.jp",
-"kagoshima.kagoshima.jp",
-"kanoya.kagoshima.jp",
-"kawanabe.kagoshima.jp",
-"kinko.kagoshima.jp",
-"kouyama.kagoshima.jp",
-"makurazaki.kagoshima.jp",
-"matsumoto.kagoshima.jp",
-"minamitane.kagoshima.jp",
-"nakatane.kagoshima.jp",
-"nishinoomote.kagoshima.jp",
-"satsumasendai.kagoshima.jp",
-"soo.kagoshima.jp",
-"tarumizu.kagoshima.jp",
-"yusui.kagoshima.jp",
-"aikawa.kanagawa.jp",
-"atsugi.kanagawa.jp",
-"ayase.kanagawa.jp",
-"chigasaki.kanagawa.jp",
-"ebina.kanagawa.jp",
-"fujisawa.kanagawa.jp",
-"hadano.kanagawa.jp",
-"hakone.kanagawa.jp",
-"hiratsuka.kanagawa.jp",
-"isehara.kanagawa.jp",
-"kaisei.kanagawa.jp",
-"kamakura.kanagawa.jp",
-"kiyokawa.kanagawa.jp",
-"matsuda.kanagawa.jp",
-"minamiashigara.kanagawa.jp",
-"miura.kanagawa.jp",
-"nakai.kanagawa.jp",
-"ninomiya.kanagawa.jp",
-"odawara.kanagawa.jp",
-"oi.kanagawa.jp",
-"oiso.kanagawa.jp",
-"sagamihara.kanagawa.jp",
-"samukawa.kanagawa.jp",
-"tsukui.kanagawa.jp",
-"yamakita.kanagawa.jp",
-"yamato.kanagawa.jp",
-"yokosuka.kanagawa.jp",
-"yugawara.kanagawa.jp",
-"zama.kanagawa.jp",
-"zushi.kanagawa.jp",
-"aki.kochi.jp",
-"geisei.kochi.jp",
-"hidaka.kochi.jp",
-"higashitsuno.kochi.jp",
-"ino.kochi.jp",
-"kagami.kochi.jp",
-"kami.kochi.jp",
-"kitagawa.kochi.jp",
-"kochi.kochi.jp",
-"mihara.kochi.jp",
-"motoyama.kochi.jp",
-"muroto.kochi.jp",
-"nahari.kochi.jp",
-"nakamura.kochi.jp",
-"nankoku.kochi.jp",
-"nishitosa.kochi.jp",
-"niyodogawa.kochi.jp",
-"ochi.kochi.jp",
-"okawa.kochi.jp",
-"otoyo.kochi.jp",
-"otsuki.kochi.jp",
-"sakawa.kochi.jp",
-"sukumo.kochi.jp",
-"susaki.kochi.jp",
-"tosa.kochi.jp",
-"tosashimizu.kochi.jp",
-"toyo.kochi.jp",
-"tsuno.kochi.jp",
-"umaji.kochi.jp",
-"yasuda.kochi.jp",
-"yusuhara.kochi.jp",
-"amakusa.kumamoto.jp",
-"arao.kumamoto.jp",
-"aso.kumamoto.jp",
-"choyo.kumamoto.jp",
-"gyokuto.kumamoto.jp",
-"kamiamakusa.kumamoto.jp",
-"kikuchi.kumamoto.jp",
-"kumamoto.kumamoto.jp",
-"mashiki.kumamoto.jp",
-"mifune.kumamoto.jp",
-"minamata.kumamoto.jp",
-"minamioguni.kumamoto.jp",
-"nagasu.kumamoto.jp",
-"nishihara.kumamoto.jp",
-"oguni.kumamoto.jp",
-"ozu.kumamoto.jp",
-"sumoto.kumamoto.jp",
-"takamori.kumamoto.jp",
-"uki.kumamoto.jp",
-"uto.kumamoto.jp",
-"yamaga.kumamoto.jp",
-"yamato.kumamoto.jp",
-"yatsushiro.kumamoto.jp",
-"ayabe.kyoto.jp",
-"fukuchiyama.kyoto.jp",
-"higashiyama.kyoto.jp",
-"ide.kyoto.jp",
-"ine.kyoto.jp",
-"joyo.kyoto.jp",
-"kameoka.kyoto.jp",
-"kamo.kyoto.jp",
-"kita.kyoto.jp",
-"kizu.kyoto.jp",
-"kumiyama.kyoto.jp",
-"kyotamba.kyoto.jp",
-"kyotanabe.kyoto.jp",
-"kyotango.kyoto.jp",
-"maizuru.kyoto.jp",
-"minami.kyoto.jp",
-"minamiyamashiro.kyoto.jp",
-"miyazu.kyoto.jp",
-"muko.kyoto.jp",
-"nagaokakyo.kyoto.jp",
-"nakagyo.kyoto.jp",
-"nantan.kyoto.jp",
-"oyamazaki.kyoto.jp",
-"sakyo.kyoto.jp",
-"seika.kyoto.jp",
-"tanabe.kyoto.jp",
-"uji.kyoto.jp",
-"ujitawara.kyoto.jp",
-"wazuka.kyoto.jp",
-"yamashina.kyoto.jp",
-"yawata.kyoto.jp",
-"asahi.mie.jp",
-"inabe.mie.jp",
-"ise.mie.jp",
-"kameyama.mie.jp",
-"kawagoe.mie.jp",
-"kiho.mie.jp",
-"kisosaki.mie.jp",
-"kiwa.mie.jp",
-"komono.mie.jp",
-"kumano.mie.jp",
-"kuwana.mie.jp",
-"matsusaka.mie.jp",
-"meiwa.mie.jp",
-"mihama.mie.jp",
-"minamiise.mie.jp",
-"misugi.mie.jp",
-"miyama.mie.jp",
-"nabari.mie.jp",
-"shima.mie.jp",
-"suzuka.mie.jp",
-"tado.mie.jp",
-"taiki.mie.jp",
-"taki.mie.jp",
-"tamaki.mie.jp",
-"toba.mie.jp",
-"tsu.mie.jp",
-"udono.mie.jp",
-"ureshino.mie.jp",
-"watarai.mie.jp",
-"yokkaichi.mie.jp",
-"furukawa.miyagi.jp",
-"higashimatsushima.miyagi.jp",
-"ishinomaki.miyagi.jp",
-"iwanuma.miyagi.jp",
-"kakuda.miyagi.jp",
-"kami.miyagi.jp",
-"kawasaki.miyagi.jp",
-"marumori.miyagi.jp",
-"matsushima.miyagi.jp",
-"minamisanriku.miyagi.jp",
-"misato.miyagi.jp",
-"murata.miyagi.jp",
-"natori.miyagi.jp",
-"ogawara.miyagi.jp",
-"ohira.miyagi.jp",
-"onagawa.miyagi.jp",
-"osaki.miyagi.jp",
-"rifu.miyagi.jp",
-"semine.miyagi.jp",
-"shibata.miyagi.jp",
-"shichikashuku.miyagi.jp",
-"shikama.miyagi.jp",
-"shiogama.miyagi.jp",
-"shiroishi.miyagi.jp",
-"tagajo.miyagi.jp",
-"taiwa.miyagi.jp",
-"tome.miyagi.jp",
-"tomiya.miyagi.jp",
-"wakuya.miyagi.jp",
-"watari.miyagi.jp",
-"yamamoto.miyagi.jp",
-"zao.miyagi.jp",
-"aya.miyazaki.jp",
-"ebino.miyazaki.jp",
-"gokase.miyazaki.jp",
-"hyuga.miyazaki.jp",
-"kadogawa.miyazaki.jp",
-"kawaminami.miyazaki.jp",
-"kijo.miyazaki.jp",
-"kitagawa.miyazaki.jp",
-"kitakata.miyazaki.jp",
-"kitaura.miyazaki.jp",
-"kobayashi.miyazaki.jp",
-"kunitomi.miyazaki.jp",
-"kushima.miyazaki.jp",
-"mimata.miyazaki.jp",
-"miyakonojo.miyazaki.jp",
-"miyazaki.miyazaki.jp",
-"morotsuka.miyazaki.jp",
-"nichinan.miyazaki.jp",
-"nishimera.miyazaki.jp",
-"nobeoka.miyazaki.jp",
-"saito.miyazaki.jp",
-"shiiba.miyazaki.jp",
-"shintomi.miyazaki.jp",
-"takaharu.miyazaki.jp",
-"takanabe.miyazaki.jp",
-"takazaki.miyazaki.jp",
-"tsuno.miyazaki.jp",
-"achi.nagano.jp",
-"agematsu.nagano.jp",
-"anan.nagano.jp",
-"aoki.nagano.jp",
-"asahi.nagano.jp",
-"azumino.nagano.jp",
-"chikuhoku.nagano.jp",
-"chikuma.nagano.jp",
-"chino.nagano.jp",
-"fujimi.nagano.jp",
-"hakuba.nagano.jp",
-"hara.nagano.jp",
-"hiraya.nagano.jp",
-"iida.nagano.jp",
-"iijima.nagano.jp",
-"iiyama.nagano.jp",
-"iizuna.nagano.jp",
-"ikeda.nagano.jp",
-"ikusaka.nagano.jp",
-"ina.nagano.jp",
-"karuizawa.nagano.jp",
-"kawakami.nagano.jp",
-"kiso.nagano.jp",
-"kisofukushima.nagano.jp",
-"kitaaiki.nagano.jp",
-"komagane.nagano.jp",
-"komoro.nagano.jp",
-"matsukawa.nagano.jp",
-"matsumoto.nagano.jp",
-"miasa.nagano.jp",
-"minamiaiki.nagano.jp",
-"minamimaki.nagano.jp",
-"minamiminowa.nagano.jp",
-"minowa.nagano.jp",
-"miyada.nagano.jp",
-"miyota.nagano.jp",
-"mochizuki.nagano.jp",
-"nagano.nagano.jp",
-"nagawa.nagano.jp",
-"nagiso.nagano.jp",
-"nakagawa.nagano.jp",
-"nakano.nagano.jp",
-"nozawaonsen.nagano.jp",
-"obuse.nagano.jp",
-"ogawa.nagano.jp",
-"okaya.nagano.jp",
-"omachi.nagano.jp",
-"omi.nagano.jp",
-"ookuwa.nagano.jp",
-"ooshika.nagano.jp",
-"otaki.nagano.jp",
-"otari.nagano.jp",
-"sakae.nagano.jp",
-"sakaki.nagano.jp",
-"saku.nagano.jp",
-"sakuho.nagano.jp",
-"shimosuwa.nagano.jp",
-"shinanomachi.nagano.jp",
-"shiojiri.nagano.jp",
-"suwa.nagano.jp",
-"suzaka.nagano.jp",
-"takagi.nagano.jp",
-"takamori.nagano.jp",
-"takayama.nagano.jp",
-"tateshina.nagano.jp",
-"tatsuno.nagano.jp",
-"togakushi.nagano.jp",
-"togura.nagano.jp",
-"tomi.nagano.jp",
-"ueda.nagano.jp",
-"wada.nagano.jp",
-"yamagata.nagano.jp",
-"yamanouchi.nagano.jp",
-"yasaka.nagano.jp",
-"yasuoka.nagano.jp",
-"chijiwa.nagasaki.jp",
-"futsu.nagasaki.jp",
-"goto.nagasaki.jp",
-"hasami.nagasaki.jp",
-"hirado.nagasaki.jp",
-"iki.nagasaki.jp",
-"isahaya.nagasaki.jp",
-"kawatana.nagasaki.jp",
-"kuchinotsu.nagasaki.jp",
-"matsuura.nagasaki.jp",
-"nagasaki.nagasaki.jp",
-"obama.nagasaki.jp",
-"omura.nagasaki.jp",
-"oseto.nagasaki.jp",
-"saikai.nagasaki.jp",
-"sasebo.nagasaki.jp",
-"seihi.nagasaki.jp",
-"shimabara.nagasaki.jp",
-"shinkamigoto.nagasaki.jp",
-"togitsu.nagasaki.jp",
-"tsushima.nagasaki.jp",
-"unzen.nagasaki.jp",
-"ando.nara.jp",
-"gose.nara.jp",
-"heguri.nara.jp",
-"higashiyoshino.nara.jp",
-"ikaruga.nara.jp",
-"ikoma.nara.jp",
-"kamikitayama.nara.jp",
-"kanmaki.nara.jp",
-"kashiba.nara.jp",
-"kashihara.nara.jp",
-"katsuragi.nara.jp",
-"kawai.nara.jp",
-"kawakami.nara.jp",
-"kawanishi.nara.jp",
-"koryo.nara.jp",
-"kurotaki.nara.jp",
-"mitsue.nara.jp",
-"miyake.nara.jp",
-"nara.nara.jp",
-"nosegawa.nara.jp",
-"oji.nara.jp",
-"ouda.nara.jp",
-"oyodo.nara.jp",
-"sakurai.nara.jp",
-"sango.nara.jp",
-"shimoichi.nara.jp",
-"shimokitayama.nara.jp",
-"shinjo.nara.jp",
-"soni.nara.jp",
-"takatori.nara.jp",
-"tawaramoto.nara.jp",
-"tenkawa.nara.jp",
-"tenri.nara.jp",
-"uda.nara.jp",
-"yamatokoriyama.nara.jp",
-"yamatotakada.nara.jp",
-"yamazoe.nara.jp",
-"yoshino.nara.jp",
-"aga.niigata.jp",
-"agano.niigata.jp",
-"gosen.niigata.jp",
-"itoigawa.niigata.jp",
-"izumozaki.niigata.jp",
-"joetsu.niigata.jp",
-"kamo.niigata.jp",
-"kariwa.niigata.jp",
-"kashiwazaki.niigata.jp",
-"minamiuonuma.niigata.jp",
-"mitsuke.niigata.jp",
-"muika.niigata.jp",
-"murakami.niigata.jp",
-"myoko.niigata.jp",
-"nagaoka.niigata.jp",
-"niigata.niigata.jp",
-"ojiya.niigata.jp",
-"omi.niigata.jp",
-"sado.niigata.jp",
-"sanjo.niigata.jp",
-"seiro.niigata.jp",
-"seirou.niigata.jp",
-"sekikawa.niigata.jp",
-"shibata.niigata.jp",
-"tagami.niigata.jp",
-"tainai.niigata.jp",
-"tochio.niigata.jp",
-"tokamachi.niigata.jp",
-"tsubame.niigata.jp",
-"tsunan.niigata.jp",
-"uonuma.niigata.jp",
-"yahiko.niigata.jp",
-"yoita.niigata.jp",
-"yuzawa.niigata.jp",
-"beppu.oita.jp",
-"bungoono.oita.jp",
-"bungotakada.oita.jp",
-"hasama.oita.jp",
-"hiji.oita.jp",
-"himeshima.oita.jp",
-"hita.oita.jp",
-"kamitsue.oita.jp",
-"kokonoe.oita.jp",
-"kuju.oita.jp",
-"kunisaki.oita.jp",
-"kusu.oita.jp",
-"oita.oita.jp",
-"saiki.oita.jp",
-"taketa.oita.jp",
-"tsukumi.oita.jp",
-"usa.oita.jp",
-"usuki.oita.jp",
-"yufu.oita.jp",
-"akaiwa.okayama.jp",
-"asakuchi.okayama.jp",
-"bizen.okayama.jp",
-"hayashima.okayama.jp",
-"ibara.okayama.jp",
-"kagamino.okayama.jp",
-"kasaoka.okayama.jp",
-"kibichuo.okayama.jp",
-"kumenan.okayama.jp",
-"kurashiki.okayama.jp",
-"maniwa.okayama.jp",
-"misaki.okayama.jp",
-"nagi.okayama.jp",
-"niimi.okayama.jp",
-"nishiawakura.okayama.jp",
-"okayama.okayama.jp",
-"satosho.okayama.jp",
-"setouchi.okayama.jp",
-"shinjo.okayama.jp",
-"shoo.okayama.jp",
-"soja.okayama.jp",
-"takahashi.okayama.jp",
-"tamano.okayama.jp",
-"tsuyama.okayama.jp",
-"wake.okayama.jp",
-"yakage.okayama.jp",
-"aguni.okinawa.jp",
-"ginowan.okinawa.jp",
-"ginoza.okinawa.jp",
-"gushikami.okinawa.jp",
-"haebaru.okinawa.jp",
-"higashi.okinawa.jp",
-"hirara.okinawa.jp",
-"iheya.okinawa.jp",
-"ishigaki.okinawa.jp",
-"ishikawa.okinawa.jp",
-"itoman.okinawa.jp",
-"izena.okinawa.jp",
-"kadena.okinawa.jp",
-"kin.okinawa.jp",
-"kitadaito.okinawa.jp",
-"kitanakagusuku.okinawa.jp",
-"kumejima.okinawa.jp",
-"kunigami.okinawa.jp",
-"minamidaito.okinawa.jp",
-"motobu.okinawa.jp",
-"nago.okinawa.jp",
-"naha.okinawa.jp",
-"nakagusuku.okinawa.jp",
-"nakijin.okinawa.jp",
-"nanjo.okinawa.jp",
-"nishihara.okinawa.jp",
-"ogimi.okinawa.jp",
-"okinawa.okinawa.jp",
-"onna.okinawa.jp",
-"shimoji.okinawa.jp",
-"taketomi.okinawa.jp",
-"tarama.okinawa.jp",
-"tokashiki.okinawa.jp",
-"tomigusuku.okinawa.jp",
-"tonaki.okinawa.jp",
-"urasoe.okinawa.jp",
-"uruma.okinawa.jp",
-"yaese.okinawa.jp",
-"yomitan.okinawa.jp",
-"yonabaru.okinawa.jp",
-"yonaguni.okinawa.jp",
-"zamami.okinawa.jp",
-"abeno.osaka.jp",
-"chihayaakasaka.osaka.jp",
-"chuo.osaka.jp",
-"daito.osaka.jp",
-"fujiidera.osaka.jp",
-"habikino.osaka.jp",
-"hannan.osaka.jp",
-"higashiosaka.osaka.jp",
-"higashisumiyoshi.osaka.jp",
-"higashiyodogawa.osaka.jp",
-"hirakata.osaka.jp",
-"ibaraki.osaka.jp",
-"ikeda.osaka.jp",
-"izumi.osaka.jp",
-"izumiotsu.osaka.jp",
-"izumisano.osaka.jp",
-"kadoma.osaka.jp",
-"kaizuka.osaka.jp",
-"kanan.osaka.jp",
-"kashiwara.osaka.jp",
-"katano.osaka.jp",
-"kawachinagano.osaka.jp",
-"kishiwada.osaka.jp",
-"kita.osaka.jp",
-"kumatori.osaka.jp",
-"matsubara.osaka.jp",
-"minato.osaka.jp",
-"minoh.osaka.jp",
-"misaki.osaka.jp",
-"moriguchi.osaka.jp",
-"neyagawa.osaka.jp",
-"nishi.osaka.jp",
-"nose.osaka.jp",
-"osakasayama.osaka.jp",
-"sakai.osaka.jp",
-"sayama.osaka.jp",
-"sennan.osaka.jp",
-"settsu.osaka.jp",
-"shijonawate.osaka.jp",
-"shimamoto.osaka.jp",
-"suita.osaka.jp",
-"tadaoka.osaka.jp",
-"taishi.osaka.jp",
-"tajiri.osaka.jp",
-"takaishi.osaka.jp",
-"takatsuki.osaka.jp",
-"tondabayashi.osaka.jp",
-"toyonaka.osaka.jp",
-"toyono.osaka.jp",
-"yao.osaka.jp",
-"ariake.saga.jp",
-"arita.saga.jp",
-"fukudomi.saga.jp",
-"genkai.saga.jp",
-"hamatama.saga.jp",
-"hizen.saga.jp",
-"imari.saga.jp",
-"kamimine.saga.jp",
-"kanzaki.saga.jp",
-"karatsu.saga.jp",
-"kashima.saga.jp",
-"kitagata.saga.jp",
-"kitahata.saga.jp",
-"kiyama.saga.jp",
-"kouhoku.saga.jp",
-"kyuragi.saga.jp",
-"nishiarita.saga.jp",
-"ogi.saga.jp",
-"omachi.saga.jp",
-"ouchi.saga.jp",
-"saga.saga.jp",
-"shiroishi.saga.jp",
-"taku.saga.jp",
-"tara.saga.jp",
-"tosu.saga.jp",
-"yoshinogari.saga.jp",
-"arakawa.saitama.jp",
-"asaka.saitama.jp",
-"chichibu.saitama.jp",
-"fujimi.saitama.jp",
-"fujimino.saitama.jp",
-"fukaya.saitama.jp",
-"hanno.saitama.jp",
-"hanyu.saitama.jp",
-"hasuda.saitama.jp",
-"hatogaya.saitama.jp",
-"hatoyama.saitama.jp",
-"hidaka.saitama.jp",
-"higashichichibu.saitama.jp",
-"higashimatsuyama.saitama.jp",
-"honjo.saitama.jp",
-"ina.saitama.jp",
-"iruma.saitama.jp",
-"iwatsuki.saitama.jp",
-"kamiizumi.saitama.jp",
-"kamikawa.saitama.jp",
-"kamisato.saitama.jp",
-"kasukabe.saitama.jp",
-"kawagoe.saitama.jp",
-"kawaguchi.saitama.jp",
-"kawajima.saitama.jp",
-"kazo.saitama.jp",
-"kitamoto.saitama.jp",
-"koshigaya.saitama.jp",
-"kounosu.saitama.jp",
-"kuki.saitama.jp",
-"kumagaya.saitama.jp",
-"matsubushi.saitama.jp",
-"minano.saitama.jp",
-"misato.saitama.jp",
-"miyashiro.saitama.jp",
-"miyoshi.saitama.jp",
-"moroyama.saitama.jp",
-"nagatoro.saitama.jp",
-"namegawa.saitama.jp",
-"niiza.saitama.jp",
-"ogano.saitama.jp",
-"ogawa.saitama.jp",
-"ogose.saitama.jp",
-"okegawa.saitama.jp",
-"omiya.saitama.jp",
-"otaki.saitama.jp",
-"ranzan.saitama.jp",
-"ryokami.saitama.jp",
-"saitama.saitama.jp",
-"sakado.saitama.jp",
-"satte.saitama.jp",
-"sayama.saitama.jp",
-"shiki.saitama.jp",
-"shiraoka.saitama.jp",
-"soka.saitama.jp",
-"sugito.saitama.jp",
-"toda.saitama.jp",
-"tokigawa.saitama.jp",
-"tokorozawa.saitama.jp",
-"tsurugashima.saitama.jp",
-"urawa.saitama.jp",
-"warabi.saitama.jp",
-"yashio.saitama.jp",
-"yokoze.saitama.jp",
-"yono.saitama.jp",
-"yorii.saitama.jp",
-"yoshida.saitama.jp",
-"yoshikawa.saitama.jp",
-"yoshimi.saitama.jp",
-"aisho.shiga.jp",
-"gamo.shiga.jp",
-"higashiomi.shiga.jp",
-"hikone.shiga.jp",
-"koka.shiga.jp",
-"konan.shiga.jp",
-"kosei.shiga.jp",
-"koto.shiga.jp",
-"kusatsu.shiga.jp",
-"maibara.shiga.jp",
-"moriyama.shiga.jp",
-"nagahama.shiga.jp",
-"nishiazai.shiga.jp",
-"notogawa.shiga.jp",
-"omihachiman.shiga.jp",
-"otsu.shiga.jp",
-"ritto.shiga.jp",
-"ryuoh.shiga.jp",
-"takashima.shiga.jp",
-"takatsuki.shiga.jp",
-"torahime.shiga.jp",
-"toyosato.shiga.jp",
-"yasu.shiga.jp",
-"akagi.shimane.jp",
-"ama.shimane.jp",
-"gotsu.shimane.jp",
-"hamada.shimane.jp",
-"higashiizumo.shimane.jp",
-"hikawa.shimane.jp",
-"hikimi.shimane.jp",
-"izumo.shimane.jp",
-"kakinoki.shimane.jp",
-"masuda.shimane.jp",
-"matsue.shimane.jp",
-"misato.shimane.jp",
-"nishinoshima.shimane.jp",
-"ohda.shimane.jp",
-"okinoshima.shimane.jp",
-"okuizumo.shimane.jp",
-"shimane.shimane.jp",
-"tamayu.shimane.jp",
-"tsuwano.shimane.jp",
-"unnan.shimane.jp",
-"yakumo.shimane.jp",
-"yasugi.shimane.jp",
-"yatsuka.shimane.jp",
-"arai.shizuoka.jp",
-"atami.shizuoka.jp",
-"fuji.shizuoka.jp",
-"fujieda.shizuoka.jp",
-"fujikawa.shizuoka.jp",
-"fujinomiya.shizuoka.jp",
-"fukuroi.shizuoka.jp",
-"gotemba.shizuoka.jp",
-"haibara.shizuoka.jp",
-"hamamatsu.shizuoka.jp",
-"higashiizu.shizuoka.jp",
-"ito.shizuoka.jp",
-"iwata.shizuoka.jp",
-"izu.shizuoka.jp",
-"izunokuni.shizuoka.jp",
-"kakegawa.shizuoka.jp",
-"kannami.shizuoka.jp",
-"kawanehon.shizuoka.jp",
-"kawazu.shizuoka.jp",
-"kikugawa.shizuoka.jp",
-"kosai.shizuoka.jp",
-"makinohara.shizuoka.jp",
-"matsuzaki.shizuoka.jp",
-"minamiizu.shizuoka.jp",
-"mishima.shizuoka.jp",
-"morimachi.shizuoka.jp",
-"nishiizu.shizuoka.jp",
-"numazu.shizuoka.jp",
-"omaezaki.shizuoka.jp",
-"shimada.shizuoka.jp",
-"shimizu.shizuoka.jp",
-"shimoda.shizuoka.jp",
-"shizuoka.shizuoka.jp",
-"susono.shizuoka.jp",
-"yaizu.shizuoka.jp",
-"yoshida.shizuoka.jp",
-"ashikaga.tochigi.jp",
-"bato.tochigi.jp",
-"haga.tochigi.jp",
-"ichikai.tochigi.jp",
-"iwafune.tochigi.jp",
-"kaminokawa.tochigi.jp",
-"kanuma.tochigi.jp",
-"karasuyama.tochigi.jp",
-"kuroiso.tochigi.jp",
-"mashiko.tochigi.jp",
-"mibu.tochigi.jp",
-"moka.tochigi.jp",
-"motegi.tochigi.jp",
-"nasu.tochigi.jp",
-"nasushiobara.tochigi.jp",
-"nikko.tochigi.jp",
-"nishikata.tochigi.jp",
-"nogi.tochigi.jp",
-"ohira.tochigi.jp",
-"ohtawara.tochigi.jp",
-"oyama.tochigi.jp",
-"sakura.tochigi.jp",
-"sano.tochigi.jp",
-"shimotsuke.tochigi.jp",
-"shioya.tochigi.jp",
-"takanezawa.tochigi.jp",
-"tochigi.tochigi.jp",
-"tsuga.tochigi.jp",
-"ujiie.tochigi.jp",
-"utsunomiya.tochigi.jp",
-"yaita.tochigi.jp",
-"aizumi.tokushima.jp",
-"anan.tokushima.jp",
-"ichiba.tokushima.jp",
-"itano.tokushima.jp",
-"kainan.tokushima.jp",
-"komatsushima.tokushima.jp",
-"matsushige.tokushima.jp",
-"mima.tokushima.jp",
-"minami.tokushima.jp",
-"miyoshi.tokushima.jp",
-"mugi.tokushima.jp",
-"nakagawa.tokushima.jp",
-"naruto.tokushima.jp",
-"sanagochi.tokushima.jp",
-"shishikui.tokushima.jp",
-"tokushima.tokushima.jp",
-"wajiki.tokushima.jp",
-"adachi.tokyo.jp",
-"akiruno.tokyo.jp",
-"akishima.tokyo.jp",
-"aogashima.tokyo.jp",
-"arakawa.tokyo.jp",
-"bunkyo.tokyo.jp",
-"chiyoda.tokyo.jp",
-"chofu.tokyo.jp",
-"chuo.tokyo.jp",
-"edogawa.tokyo.jp",
-"fuchu.tokyo.jp",
-"fussa.tokyo.jp",
-"hachijo.tokyo.jp",
-"hachioji.tokyo.jp",
-"hamura.tokyo.jp",
-"higashikurume.tokyo.jp",
-"higashimurayama.tokyo.jp",
-"higashiyamato.tokyo.jp",
-"hino.tokyo.jp",
-"hinode.tokyo.jp",
-"hinohara.tokyo.jp",
-"inagi.tokyo.jp",
-"itabashi.tokyo.jp",
-"katsushika.tokyo.jp",
-"kita.tokyo.jp",
-"kiyose.tokyo.jp",
-"kodaira.tokyo.jp",
-"koganei.tokyo.jp",
-"kokubunji.tokyo.jp",
-"komae.tokyo.jp",
-"koto.tokyo.jp",
-"kouzushima.tokyo.jp",
-"kunitachi.tokyo.jp",
-"machida.tokyo.jp",
-"meguro.tokyo.jp",
-"minato.tokyo.jp",
-"mitaka.tokyo.jp",
-"mizuho.tokyo.jp",
-"musashimurayama.tokyo.jp",
-"musashino.tokyo.jp",
-"nakano.tokyo.jp",
-"nerima.tokyo.jp",
-"ogasawara.tokyo.jp",
-"okutama.tokyo.jp",
-"ome.tokyo.jp",
-"oshima.tokyo.jp",
-"ota.tokyo.jp",
-"setagaya.tokyo.jp",
-"shibuya.tokyo.jp",
-"shinagawa.tokyo.jp",
-"shinjuku.tokyo.jp",
-"suginami.tokyo.jp",
-"sumida.tokyo.jp",
-"tachikawa.tokyo.jp",
-"taito.tokyo.jp",
-"tama.tokyo.jp",
-"toshima.tokyo.jp",
-"chizu.tottori.jp",
-"hino.tottori.jp",
-"kawahara.tottori.jp",
-"koge.tottori.jp",
-"kotoura.tottori.jp",
-"misasa.tottori.jp",
-"nanbu.tottori.jp",
-"nichinan.tottori.jp",
-"sakaiminato.tottori.jp",
-"tottori.tottori.jp",
-"wakasa.tottori.jp",
-"yazu.tottori.jp",
-"yonago.tottori.jp",
-"asahi.toyama.jp",
-"fuchu.toyama.jp",
-"fukumitsu.toyama.jp",
-"funahashi.toyama.jp",
-"himi.toyama.jp",
-"imizu.toyama.jp",
-"inami.toyama.jp",
-"johana.toyama.jp",
-"kamiichi.toyama.jp",
-"kurobe.toyama.jp",
-"nakaniikawa.toyama.jp",
-"namerikawa.toyama.jp",
-"nanto.toyama.jp",
-"nyuzen.toyama.jp",
-"oyabe.toyama.jp",
-"taira.toyama.jp",
-"takaoka.toyama.jp",
-"tateyama.toyama.jp",
-"toga.toyama.jp",
-"tonami.toyama.jp",
-"toyama.toyama.jp",
-"unazuki.toyama.jp",
-"uozu.toyama.jp",
-"yamada.toyama.jp",
-"arida.wakayama.jp",
-"aridagawa.wakayama.jp",
-"gobo.wakayama.jp",
-"hashimoto.wakayama.jp",
-"hidaka.wakayama.jp",
-"hirogawa.wakayama.jp",
-"inami.wakayama.jp",
-"iwade.wakayama.jp",
-"kainan.wakayama.jp",
-"kamitonda.wakayama.jp",
-"katsuragi.wakayama.jp",
-"kimino.wakayama.jp",
-"kinokawa.wakayama.jp",
-"kitayama.wakayama.jp",
-"koya.wakayama.jp",
-"koza.wakayama.jp",
-"kozagawa.wakayama.jp",
-"kudoyama.wakayama.jp",
-"kushimoto.wakayama.jp",
-"mihama.wakayama.jp",
-"misato.wakayama.jp",
-"nachikatsuura.wakayama.jp",
-"shingu.wakayama.jp",
-"shirahama.wakayama.jp",
-"taiji.wakayama.jp",
-"tanabe.wakayama.jp",
-"wakayama.wakayama.jp",
-"yuasa.wakayama.jp",
-"yura.wakayama.jp",
-"asahi.yamagata.jp",
-"funagata.yamagata.jp",
-"higashine.yamagata.jp",
-"iide.yamagata.jp",
-"kahoku.yamagata.jp",
-"kaminoyama.yamagata.jp",
-"kaneyama.yamagata.jp",
-"kawanishi.yamagata.jp",
-"mamurogawa.yamagata.jp",
-"mikawa.yamagata.jp",
-"murayama.yamagata.jp",
-"nagai.yamagata.jp",
-"nakayama.yamagata.jp",
-"nanyo.yamagata.jp",
-"nishikawa.yamagata.jp",
-"obanazawa.yamagata.jp",
-"oe.yamagata.jp",
-"oguni.yamagata.jp",
-"ohkura.yamagata.jp",
-"oishida.yamagata.jp",
-"sagae.yamagata.jp",
-"sakata.yamagata.jp",
-"sakegawa.yamagata.jp",
-"shinjo.yamagata.jp",
-"shirataka.yamagata.jp",
-"shonai.yamagata.jp",
-"takahata.yamagata.jp",
-"tendo.yamagata.jp",
-"tozawa.yamagata.jp",
-"tsuruoka.yamagata.jp",
-"yamagata.yamagata.jp",
-"yamanobe.yamagata.jp",
-"yonezawa.yamagata.jp",
-"yuza.yamagata.jp",
-"abu.yamaguchi.jp",
-"hagi.yamaguchi.jp",
-"hikari.yamaguchi.jp",
-"hofu.yamaguchi.jp",
-"iwakuni.yamaguchi.jp",
-"kudamatsu.yamaguchi.jp",
-"mitou.yamaguchi.jp",
-"nagato.yamaguchi.jp",
-"oshima.yamaguchi.jp",
-"shimonoseki.yamaguchi.jp",
-"shunan.yamaguchi.jp",
-"tabuse.yamaguchi.jp",
-"tokuyama.yamaguchi.jp",
-"toyota.yamaguchi.jp",
-"ube.yamaguchi.jp",
-"yuu.yamaguchi.jp",
-"chuo.yamanashi.jp",
-"doshi.yamanashi.jp",
-"fuefuki.yamanashi.jp",
-"fujikawa.yamanashi.jp",
-"fujikawaguchiko.yamanashi.jp",
-"fujiyoshida.yamanashi.jp",
-"hayakawa.yamanashi.jp",
-"hokuto.yamanashi.jp",
-"ichikawamisato.yamanashi.jp",
-"kai.yamanashi.jp",
-"kofu.yamanashi.jp",
-"koshu.yamanashi.jp",
-"kosuge.yamanashi.jp",
-"minami-alps.yamanashi.jp",
-"minobu.yamanashi.jp",
-"nakamichi.yamanashi.jp",
-"nanbu.yamanashi.jp",
-"narusawa.yamanashi.jp",
-"nirasaki.yamanashi.jp",
-"nishikatsura.yamanashi.jp",
-"oshino.yamanashi.jp",
-"otsuki.yamanashi.jp",
-"showa.yamanashi.jp",
-"tabayama.yamanashi.jp",
-"tsuru.yamanashi.jp",
-"uenohara.yamanashi.jp",
-"yamanakako.yamanashi.jp",
-"yamanashi.yamanashi.jp",
-"ke",
-"ac.ke",
-"co.ke",
-"go.ke",
-"info.ke",
-"me.ke",
-"mobi.ke",
-"ne.ke",
-"or.ke",
-"sc.ke",
-"kg",
-"org.kg",
-"net.kg",
-"com.kg",
-"edu.kg",
-"gov.kg",
-"mil.kg",
-"*.kh",
-"ki",
-"edu.ki",
-"biz.ki",
-"net.ki",
-"org.ki",
-"gov.ki",
-"info.ki",
-"com.ki",
-"km",
-"org.km",
-"nom.km",
-"gov.km",
-"prd.km",
-"tm.km",
-"edu.km",
-"mil.km",
-"ass.km",
-"com.km",
-"coop.km",
-"asso.km",
-"presse.km",
-"medecin.km",
-"notaires.km",
-"pharmaciens.km",
-"veterinaire.km",
-"gouv.km",
-"kn",
-"net.kn",
-"org.kn",
-"edu.kn",
-"gov.kn",
-"kp",
-"com.kp",
-"edu.kp",
-"gov.kp",
-"org.kp",
-"rep.kp",
-"tra.kp",
-"kr",
-"ac.kr",
-"co.kr",
-"es.kr",
-"go.kr",
-"hs.kr",
-"kg.kr",
-"mil.kr",
-"ms.kr",
-"ne.kr",
-"or.kr",
-"pe.kr",
-"re.kr",
-"sc.kr",
-"busan.kr",
-"chungbuk.kr",
-"chungnam.kr",
-"daegu.kr",
-"daejeon.kr",
-"gangwon.kr",
-"gwangju.kr",
-"gyeongbuk.kr",
-"gyeonggi.kr",
-"gyeongnam.kr",
-"incheon.kr",
-"jeju.kr",
-"jeonbuk.kr",
-"jeonnam.kr",
-"seoul.kr",
-"ulsan.kr",
-"kw",
-"com.kw",
-"edu.kw",
-"emb.kw",
-"gov.kw",
-"ind.kw",
-"net.kw",
-"org.kw",
-"ky",
-"edu.ky",
-"gov.ky",
-"com.ky",
-"org.ky",
-"net.ky",
-"kz",
-"org.kz",
-"edu.kz",
-"net.kz",
-"gov.kz",
-"mil.kz",
-"com.kz",
-"la",
-"int.la",
-"net.la",
-"info.la",
-"edu.la",
-"gov.la",
-"per.la",
-"com.la",
-"org.la",
-"lb",
-"com.lb",
-"edu.lb",
-"gov.lb",
-"net.lb",
-"org.lb",
-"lc",
-"com.lc",
-"net.lc",
-"co.lc",
-"org.lc",
-"edu.lc",
-"gov.lc",
-"li",
-"lk",
-"gov.lk",
-"sch.lk",
-"net.lk",
-"int.lk",
-"com.lk",
-"org.lk",
-"edu.lk",
-"ngo.lk",
-"soc.lk",
-"web.lk",
-"ltd.lk",
-"assn.lk",
-"grp.lk",
-"hotel.lk",
-"ac.lk",
-"lr",
-"com.lr",
-"edu.lr",
-"gov.lr",
-"org.lr",
-"net.lr",
-"ls",
-"ac.ls",
-"biz.ls",
-"co.ls",
-"edu.ls",
-"gov.ls",
-"info.ls",
-"net.ls",
-"org.ls",
-"sc.ls",
-"lt",
-"gov.lt",
-"lu",
-"lv",
-"com.lv",
-"edu.lv",
-"gov.lv",
-"org.lv",
-"mil.lv",
-"id.lv",
-"net.lv",
-"asn.lv",
-"conf.lv",
-"ly",
-"com.ly",
-"net.ly",
-"gov.ly",
-"plc.ly",
-"edu.ly",
-"sch.ly",
-"med.ly",
-"org.ly",
-"id.ly",
-"ma",
-"co.ma",
-"net.ma",
-"gov.ma",
-"org.ma",
-"ac.ma",
-"press.ma",
-"mc",
-"tm.mc",
-"asso.mc",
-"md",
-"me",
-"co.me",
-"net.me",
-"org.me",
-"edu.me",
-"ac.me",
-"gov.me",
-"its.me",
-"priv.me",
-"mg",
-"org.mg",
-"nom.mg",
-"gov.mg",
-"prd.mg",
-"tm.mg",
-"edu.mg",
-"mil.mg",
-"com.mg",
-"co.mg",
-"mh",
-"mil",
-"mk",
-"com.mk",
-"org.mk",
-"net.mk",
-"edu.mk",
-"gov.mk",
-"inf.mk",
-"name.mk",
-"ml",
-"com.ml",
-"edu.ml",
-"gouv.ml",
-"gov.ml",
-"net.ml",
-"org.ml",
-"presse.ml",
-"*.mm",
-"mn",
-"gov.mn",
-"edu.mn",
-"org.mn",
-"mo",
-"com.mo",
-"net.mo",
-"org.mo",
-"edu.mo",
-"gov.mo",
-"mobi",
-"mp",
-"mq",
-"mr",
-"gov.mr",
-"ms",
-"com.ms",
-"edu.ms",
-"gov.ms",
-"net.ms",
-"org.ms",
-"mt",
-"com.mt",
-"edu.mt",
-"net.mt",
-"org.mt",
-"mu",
-"com.mu",
-"net.mu",
-"org.mu",
-"gov.mu",
-"ac.mu",
-"co.mu",
-"or.mu",
-"museum",
-"academy.museum",
-"agriculture.museum",
-"air.museum",
-"airguard.museum",
-"alabama.museum",
-"alaska.museum",
-"amber.museum",
-"ambulance.museum",
-"american.museum",
-"americana.museum",
-"americanantiques.museum",
-"americanart.museum",
-"amsterdam.museum",
-"and.museum",
-"annefrank.museum",
-"anthro.museum",
-"anthropology.museum",
-"antiques.museum",
-"aquarium.museum",
-"arboretum.museum",
-"archaeological.museum",
-"archaeology.museum",
-"architecture.museum",
-"art.museum",
-"artanddesign.museum",
-"artcenter.museum",
-"artdeco.museum",
-"arteducation.museum",
-"artgallery.museum",
-"arts.museum",
-"artsandcrafts.museum",
-"asmatart.museum",
-"assassination.museum",
-"assisi.museum",
-"association.museum",
-"astronomy.museum",
-"atlanta.museum",
-"austin.museum",
-"australia.museum",
-"automotive.museum",
-"aviation.museum",
-"axis.museum",
-"badajoz.museum",
-"baghdad.museum",
-"bahn.museum",
-"bale.museum",
-"baltimore.museum",
-"barcelona.museum",
-"baseball.museum",
-"basel.museum",
-"baths.museum",
-"bauern.museum",
-"beauxarts.museum",
-"beeldengeluid.museum",
-"bellevue.museum",
-"bergbau.museum",
-"berkeley.museum",
-"berlin.museum",
-"bern.museum",
-"bible.museum",
-"bilbao.museum",
-"bill.museum",
-"birdart.museum",
-"birthplace.museum",
-"bonn.museum",
-"boston.museum",
-"botanical.museum",
-"botanicalgarden.museum",
-"botanicgarden.museum",
-"botany.museum",
-"brandywinevalley.museum",
-"brasil.museum",
-"bristol.museum",
-"british.museum",
-"britishcolumbia.museum",
-"broadcast.museum",
-"brunel.museum",
-"brussel.museum",
-"brussels.museum",
-"bruxelles.museum",
-"building.museum",
-"burghof.museum",
-"bus.museum",
-"bushey.museum",
-"cadaques.museum",
-"california.museum",
-"cambridge.museum",
-"can.museum",
-"canada.museum",
-"capebreton.museum",
-"carrier.museum",
-"cartoonart.museum",
-"casadelamoneda.museum",
-"castle.museum",
-"castres.museum",
-"celtic.museum",
-"center.museum",
-"chattanooga.museum",
-"cheltenham.museum",
-"chesapeakebay.museum",
-"chicago.museum",
-"children.museum",
-"childrens.museum",
-"childrensgarden.museum",
-"chiropractic.museum",
-"chocolate.museum",
-"christiansburg.museum",
-"cincinnati.museum",
-"cinema.museum",
-"circus.museum",
-"civilisation.museum",
-"civilization.museum",
-"civilwar.museum",
-"clinton.museum",
-"clock.museum",
-"coal.museum",
-"coastaldefence.museum",
-"cody.museum",
-"coldwar.museum",
-"collection.museum",
-"colonialwilliamsburg.museum",
-"coloradoplateau.museum",
-"columbia.museum",
-"columbus.museum",
-"communication.museum",
-"communications.museum",
-"community.museum",
-"computer.museum",
-"computerhistory.museum",
-"comunicações.museum",
-"contemporary.museum",
-"contemporaryart.museum",
-"convent.museum",
-"copenhagen.museum",
-"corporation.museum",
-"correios-e-telecomunicações.museum",
-"corvette.museum",
-"costume.museum",
-"countryestate.museum",
-"county.museum",
-"crafts.museum",
-"cranbrook.museum",
-"creation.museum",
-"cultural.museum",
-"culturalcenter.museum",
-"culture.museum",
-"cyber.museum",
-"cymru.museum",
-"dali.museum",
-"dallas.museum",
-"database.museum",
-"ddr.museum",
-"decorativearts.museum",
-"delaware.museum",
-"delmenhorst.museum",
-"denmark.museum",
-"depot.museum",
-"design.museum",
-"detroit.museum",
-"dinosaur.museum",
-"discovery.museum",
-"dolls.museum",
-"donostia.museum",
-"durham.museum",
-"eastafrica.museum",
-"eastcoast.museum",
-"education.museum",
-"educational.museum",
-"egyptian.museum",
-"eisenbahn.museum",
-"elburg.museum",
-"elvendrell.museum",
-"embroidery.museum",
-"encyclopedic.museum",
-"england.museum",
-"entomology.museum",
-"environment.museum",
-"environmentalconservation.museum",
-"epilepsy.museum",
-"essex.museum",
-"estate.museum",
-"ethnology.museum",
-"exeter.museum",
-"exhibition.museum",
-"family.museum",
-"farm.museum",
-"farmequipment.museum",
-"farmers.museum",
-"farmstead.museum",
-"field.museum",
-"figueres.museum",
-"filatelia.museum",
-"film.museum",
-"fineart.museum",
-"finearts.museum",
-"finland.museum",
-"flanders.museum",
-"florida.museum",
-"force.museum",
-"fortmissoula.museum",
-"fortworth.museum",
-"foundation.museum",
-"francaise.museum",
-"frankfurt.museum",
-"franziskaner.museum",
-"freemasonry.museum",
-"freiburg.museum",
-"fribourg.museum",
-"frog.museum",
-"fundacio.museum",
-"furniture.museum",
-"gallery.museum",
-"garden.museum",
-"gateway.museum",
-"geelvinck.museum",
-"gemological.museum",
-"geology.museum",
-"georgia.museum",
-"giessen.museum",
-"glas.museum",
-"glass.museum",
-"gorge.museum",
-"grandrapids.museum",
-"graz.museum",
-"guernsey.museum",
-"halloffame.museum",
-"hamburg.museum",
-"handson.museum",
-"harvestcelebration.museum",
-"hawaii.museum",
-"health.museum",
-"heimatunduhren.museum",
-"hellas.museum",
-"helsinki.museum",
-"hembygdsforbund.museum",
-"heritage.museum",
-"histoire.museum",
-"historical.museum",
-"historicalsociety.museum",
-"historichouses.museum",
-"historisch.museum",
-"historisches.museum",
-"history.museum",
-"historyofscience.museum",
-"horology.museum",
-"house.museum",
-"humanities.museum",
-"illustration.museum",
-"imageandsound.museum",
-"indian.museum",
-"indiana.museum",
-"indianapolis.museum",
-"indianmarket.museum",
-"intelligence.museum",
-"interactive.museum",
-"iraq.museum",
-"iron.museum",
-"isleofman.museum",
-"jamison.museum",
-"jefferson.museum",
-"jerusalem.museum",
-"jewelry.museum",
-"jewish.museum",
-"jewishart.museum",
-"jfk.museum",
-"journalism.museum",
-"judaica.museum",
-"judygarland.museum",
-"juedisches.museum",
-"juif.museum",
-"karate.museum",
-"karikatur.museum",
-"kids.museum",
-"koebenhavn.museum",
-"koeln.museum",
-"kunst.museum",
-"kunstsammlung.museum",
-"kunstunddesign.museum",
-"labor.museum",
-"labour.museum",
-"lajolla.museum",
-"lancashire.museum",
-"landes.museum",
-"lans.museum",
-"läns.museum",
-"larsson.museum",
-"lewismiller.museum",
-"lincoln.museum",
-"linz.museum",
-"living.museum",
-"livinghistory.museum",
-"localhistory.museum",
-"london.museum",
-"losangeles.museum",
-"louvre.museum",
-"loyalist.museum",
-"lucerne.museum",
-"luxembourg.museum",
-"luzern.museum",
-"mad.museum",
-"madrid.museum",
-"mallorca.museum",
-"manchester.museum",
-"mansion.museum",
-"mansions.museum",
-"manx.museum",
-"marburg.museum",
-"maritime.museum",
-"maritimo.museum",
-"maryland.museum",
-"marylhurst.museum",
-"media.museum",
-"medical.museum",
-"medizinhistorisches.museum",
-"meeres.museum",
-"memorial.museum",
-"mesaverde.museum",
-"michigan.museum",
-"midatlantic.museum",
-"military.museum",
-"mill.museum",
-"miners.museum",
-"mining.museum",
-"minnesota.museum",
-"missile.museum",
-"missoula.museum",
-"modern.museum",
-"moma.museum",
-"money.museum",
-"monmouth.museum",
-"monticello.museum",
-"montreal.museum",
-"moscow.museum",
-"motorcycle.museum",
-"muenchen.museum",
-"muenster.museum",
-"mulhouse.museum",
-"muncie.museum",
-"museet.museum",
-"museumcenter.museum",
-"museumvereniging.museum",
-"music.museum",
-"national.museum",
-"nationalfirearms.museum",
-"nationalheritage.museum",
-"nativeamerican.museum",
-"naturalhistory.museum",
-"naturalhistorymuseum.museum",
-"naturalsciences.museum",
-"nature.museum",
-"naturhistorisches.museum",
-"natuurwetenschappen.museum",
-"naumburg.museum",
-"naval.museum",
-"nebraska.museum",
-"neues.museum",
-"newhampshire.museum",
-"newjersey.museum",
-"newmexico.museum",
-"newport.museum",
-"newspaper.museum",
-"newyork.museum",
-"niepce.museum",
-"norfolk.museum",
-"north.museum",
-"nrw.museum",
-"nyc.museum",
-"nyny.museum",
-"oceanographic.museum",
-"oceanographique.museum",
-"omaha.museum",
-"online.museum",
-"ontario.museum",
-"openair.museum",
-"oregon.museum",
-"oregontrail.museum",
-"otago.museum",
-"oxford.museum",
-"pacific.museum",
-"paderborn.museum",
-"palace.museum",
-"paleo.museum",
-"palmsprings.museum",
-"panama.museum",
-"paris.museum",
-"pasadena.museum",
-"pharmacy.museum",
-"philadelphia.museum",
-"philadelphiaarea.museum",
-"philately.museum",
-"phoenix.museum",
-"photography.museum",
-"pilots.museum",
-"pittsburgh.museum",
-"planetarium.museum",
-"plantation.museum",
-"plants.museum",
-"plaza.museum",
-"portal.museum",
-"portland.museum",
-"portlligat.museum",
-"posts-and-telecommunications.museum",
-"preservation.museum",
-"presidio.museum",
-"press.museum",
-"project.museum",
-"public.museum",
-"pubol.museum",
-"quebec.museum",
-"railroad.museum",
-"railway.museum",
-"research.museum",
-"resistance.museum",
-"riodejaneiro.museum",
-"rochester.museum",
-"rockart.museum",
-"roma.museum",
-"russia.museum",
-"saintlouis.museum",
-"salem.museum",
-"salvadordali.museum",
-"salzburg.museum",
-"sandiego.museum",
-"sanfrancisco.museum",
-"santabarbara.museum",
-"santacruz.museum",
-"santafe.museum",
-"saskatchewan.museum",
-"satx.museum",
-"savannahga.museum",
-"schlesisches.museum",
-"schoenbrunn.museum",
-"schokoladen.museum",
-"school.museum",
-"schweiz.museum",
-"science.museum",
-"scienceandhistory.museum",
-"scienceandindustry.museum",
-"sciencecenter.museum",
-"sciencecenters.museum",
-"science-fiction.museum",
-"sciencehistory.museum",
-"sciences.museum",
-"sciencesnaturelles.museum",
-"scotland.museum",
-"seaport.museum",
-"settlement.museum",
-"settlers.museum",
-"shell.museum",
-"sherbrooke.museum",
-"sibenik.museum",
-"silk.museum",
-"ski.museum",
-"skole.museum",
-"society.museum",
-"sologne.museum",
-"soundandvision.museum",
-"southcarolina.museum",
-"southwest.museum",
-"space.museum",
-"spy.museum",
-"square.museum",
-"stadt.museum",
-"stalbans.museum",
-"starnberg.museum",
-"state.museum",
-"stateofdelaware.museum",
-"station.museum",
-"steam.museum",
-"steiermark.museum",
-"stjohn.museum",
-"stockholm.museum",
-"stpetersburg.museum",
-"stuttgart.museum",
-"suisse.museum",
-"surgeonshall.museum",
-"surrey.museum",
-"svizzera.museum",
-"sweden.museum",
-"sydney.museum",
-"tank.museum",
-"tcm.museum",
-"technology.museum",
-"telekommunikation.museum",
-"television.museum",
-"texas.museum",
-"textile.museum",
-"theater.museum",
-"time.museum",
-"timekeeping.museum",
-"topology.museum",
-"torino.museum",
-"touch.museum",
-"town.museum",
-"transport.museum",
-"tree.museum",
-"trolley.museum",
-"trust.museum",
-"trustee.museum",
-"uhren.museum",
-"ulm.museum",
-"undersea.museum",
-"university.museum",
-"usa.museum",
-"usantiques.museum",
-"usarts.museum",
-"uscountryestate.museum",
-"usculture.museum",
-"usdecorativearts.museum",
-"usgarden.museum",
-"ushistory.museum",
-"ushuaia.museum",
-"uslivinghistory.museum",
-"utah.museum",
-"uvic.museum",
-"valley.museum",
-"vantaa.museum",
-"versailles.museum",
-"viking.museum",
-"village.museum",
-"virginia.museum",
-"virtual.museum",
-"virtuel.museum",
-"vlaanderen.museum",
-"volkenkunde.museum",
-"wales.museum",
-"wallonie.museum",
-"war.museum",
-"washingtondc.museum",
-"watchandclock.museum",
-"watch-and-clock.museum",
-"western.museum",
-"westfalen.museum",
-"whaling.museum",
-"wildlife.museum",
-"williamsburg.museum",
-"windmill.museum",
-"workshop.museum",
-"york.museum",
-"yorkshire.museum",
-"yosemite.museum",
-"youth.museum",
-"zoological.museum",
-"zoology.museum",
-"ירושלים.museum",
-"иком.museum",
-"mv",
-"aero.mv",
-"biz.mv",
-"com.mv",
-"coop.mv",
-"edu.mv",
-"gov.mv",
-"info.mv",
-"int.mv",
-"mil.mv",
-"museum.mv",
-"name.mv",
-"net.mv",
-"org.mv",
-"pro.mv",
-"mw",
-"ac.mw",
-"biz.mw",
-"co.mw",
-"com.mw",
-"coop.mw",
-"edu.mw",
-"gov.mw",
-"int.mw",
-"museum.mw",
-"net.mw",
-"org.mw",
-"mx",
-"com.mx",
-"org.mx",
-"gob.mx",
-"edu.mx",
-"net.mx",
-"my",
-"com.my",
-"net.my",
-"org.my",
-"gov.my",
-"edu.my",
-"mil.my",
-"name.my",
-"mz",
-"ac.mz",
-"adv.mz",
-"co.mz",
-"edu.mz",
-"gov.mz",
-"mil.mz",
-"net.mz",
-"org.mz",
-"na",
-"info.na",
-"pro.na",
-"name.na",
-"school.na",
-"or.na",
-"dr.na",
-"us.na",
-"mx.na",
-"ca.na",
-"in.na",
-"cc.na",
-"tv.na",
-"ws.na",
-"mobi.na",
-"co.na",
-"com.na",
-"org.na",
-"name",
-"nc",
-"asso.nc",
-"nom.nc",
-"ne",
-"net",
-"nf",
-"com.nf",
-"net.nf",
-"per.nf",
-"rec.nf",
-"web.nf",
-"arts.nf",
-"firm.nf",
-"info.nf",
-"other.nf",
-"store.nf",
-"ng",
-"com.ng",
-"edu.ng",
-"gov.ng",
-"i.ng",
-"mil.ng",
-"mobi.ng",
-"name.ng",
-"net.ng",
-"org.ng",
-"sch.ng",
-"ni",
-"ac.ni",
-"biz.ni",
-"co.ni",
-"com.ni",
-"edu.ni",
-"gob.ni",
-"in.ni",
-"info.ni",
-"int.ni",
-"mil.ni",
-"net.ni",
-"nom.ni",
-"org.ni",
-"web.ni",
-"nl",
-"no",
-"fhs.no",
-"vgs.no",
-"fylkesbibl.no",
-"folkebibl.no",
-"museum.no",
-"idrett.no",
-"priv.no",
-"mil.no",
-"stat.no",
-"dep.no",
-"kommune.no",
-"herad.no",
-"aa.no",
-"ah.no",
-"bu.no",
-"fm.no",
-"hl.no",
-"hm.no",
-"jan-mayen.no",
-"mr.no",
-"nl.no",
-"nt.no",
-"of.no",
-"ol.no",
-"oslo.no",
-"rl.no",
-"sf.no",
-"st.no",
-"svalbard.no",
-"tm.no",
-"tr.no",
-"va.no",
-"vf.no",
-"gs.aa.no",
-"gs.ah.no",
-"gs.bu.no",
-"gs.fm.no",
-"gs.hl.no",
-"gs.hm.no",
-"gs.jan-mayen.no",
-"gs.mr.no",
-"gs.nl.no",
-"gs.nt.no",
-"gs.of.no",
-"gs.ol.no",
-"gs.oslo.no",
-"gs.rl.no",
-"gs.sf.no",
-"gs.st.no",
-"gs.svalbard.no",
-"gs.tm.no",
-"gs.tr.no",
-"gs.va.no",
-"gs.vf.no",
-"akrehamn.no",
-"åkrehamn.no",
-"algard.no",
-"ålgård.no",
-"arna.no",
-"brumunddal.no",
-"bryne.no",
-"bronnoysund.no",
-"brønnøysund.no",
-"drobak.no",
-"drøbak.no",
-"egersund.no",
-"fetsund.no",
-"floro.no",
-"florø.no",
-"fredrikstad.no",
-"hokksund.no",
-"honefoss.no",
-"hønefoss.no",
-"jessheim.no",
-"jorpeland.no",
-"jørpeland.no",
-"kirkenes.no",
-"kopervik.no",
-"krokstadelva.no",
-"langevag.no",
-"langevåg.no",
-"leirvik.no",
-"mjondalen.no",
-"mjøndalen.no",
-"mo-i-rana.no",
-"mosjoen.no",
-"mosjøen.no",
-"nesoddtangen.no",
-"orkanger.no",
-"osoyro.no",
-"osøyro.no",
-"raholt.no",
-"råholt.no",
-"sandnessjoen.no",
-"sandnessjøen.no",
-"skedsmokorset.no",
-"slattum.no",
-"spjelkavik.no",
-"stathelle.no",
-"stavern.no",
-"stjordalshalsen.no",
-"stjørdalshalsen.no",
-"tananger.no",
-"tranby.no",
-"vossevangen.no",
-"afjord.no",
-"åfjord.no",
-"agdenes.no",
-"al.no",
-"ål.no",
-"alesund.no",
-"ålesund.no",
-"alstahaug.no",
-"alta.no",
-"áltá.no",
-"alaheadju.no",
-"álaheadju.no",
-"alvdal.no",
-"amli.no",
-"åmli.no",
-"amot.no",
-"åmot.no",
-"andebu.no",
-"andoy.no",
-"andøy.no",
-"andasuolo.no",
-"ardal.no",
-"årdal.no",
-"aremark.no",
-"arendal.no",
-"ås.no",
-"aseral.no",
-"åseral.no",
-"asker.no",
-"askim.no",
-"askvoll.no",
-"askoy.no",
-"askøy.no",
-"asnes.no",
-"åsnes.no",
-"audnedaln.no",
-"aukra.no",
-"aure.no",
-"aurland.no",
-"aurskog-holand.no",
-"aurskog-høland.no",
-"austevoll.no",
-"austrheim.no",
-"averoy.no",
-"averøy.no",
-"balestrand.no",
-"ballangen.no",
-"balat.no",
-"bálát.no",
-"balsfjord.no",
-"bahccavuotna.no",
-"báhccavuotna.no",
-"bamble.no",
-"bardu.no",
-"beardu.no",
-"beiarn.no",
-"bajddar.no",
-"bájddar.no",
-"baidar.no",
-"báidár.no",
-"berg.no",
-"bergen.no",
-"berlevag.no",
-"berlevåg.no",
-"bearalvahki.no",
-"bearalváhki.no",
-"bindal.no",
-"birkenes.no",
-"bjarkoy.no",
-"bjarkøy.no",
-"bjerkreim.no",
-"bjugn.no",
-"bodo.no",
-"bodø.no",
-"badaddja.no",
-"bådåddjå.no",
-"budejju.no",
-"bokn.no",
-"bremanger.no",
-"bronnoy.no",
-"brønnøy.no",
-"bygland.no",
-"bykle.no",
-"barum.no",
-"bærum.no",
-"bo.telemark.no",
-"bø.telemark.no",
-"bo.nordland.no",
-"bø.nordland.no",
-"bievat.no",
-"bievát.no",
-"bomlo.no",
-"bømlo.no",
-"batsfjord.no",
-"båtsfjord.no",
-"bahcavuotna.no",
-"báhcavuotna.no",
-"dovre.no",
-"drammen.no",
-"drangedal.no",
-"dyroy.no",
-"dyrøy.no",
-"donna.no",
-"dønna.no",
-"eid.no",
-"eidfjord.no",
-"eidsberg.no",
-"eidskog.no",
-"eidsvoll.no",
-"eigersund.no",
-"elverum.no",
-"enebakk.no",
-"engerdal.no",
-"etne.no",
-"etnedal.no",
-"evenes.no",
-"evenassi.no",
-"evenášši.no",
-"evje-og-hornnes.no",
-"farsund.no",
-"fauske.no",
-"fuossko.no",
-"fuoisku.no",
-"fedje.no",
-"fet.no",
-"finnoy.no",
-"finnøy.no",
-"fitjar.no",
-"fjaler.no",
-"fjell.no",
-"flakstad.no",
-"flatanger.no",
-"flekkefjord.no",
-"flesberg.no",
-"flora.no",
-"fla.no",
-"flå.no",
-"folldal.no",
-"forsand.no",
-"fosnes.no",
-"frei.no",
-"frogn.no",
-"froland.no",
-"frosta.no",
-"frana.no",
-"fræna.no",
-"froya.no",
-"frøya.no",
-"fusa.no",
-"fyresdal.no",
-"forde.no",
-"førde.no",
-"gamvik.no",
-"gangaviika.no",
-"gáŋgaviika.no",
-"gaular.no",
-"gausdal.no",
-"gildeskal.no",
-"gildeskål.no",
-"giske.no",
-"gjemnes.no",
-"gjerdrum.no",
-"gjerstad.no",
-"gjesdal.no",
-"gjovik.no",
-"gjøvik.no",
-"gloppen.no",
-"gol.no",
-"gran.no",
-"grane.no",
-"granvin.no",
-"gratangen.no",
-"grimstad.no",
-"grong.no",
-"kraanghke.no",
-"kråanghke.no",
-"grue.no",
-"gulen.no",
-"hadsel.no",
-"halden.no",
-"halsa.no",
-"hamar.no",
-"hamaroy.no",
-"habmer.no",
-"hábmer.no",
-"hapmir.no",
-"hápmir.no",
-"hammerfest.no",
-"hammarfeasta.no",
-"hámmárfeasta.no",
-"haram.no",
-"hareid.no",
-"harstad.no",
-"hasvik.no",
-"aknoluokta.no",
-"ákŋoluokta.no",
-"hattfjelldal.no",
-"aarborte.no",
-"haugesund.no",
-"hemne.no",
-"hemnes.no",
-"hemsedal.no",
-"heroy.more-og-romsdal.no",
-"herøy.møre-og-romsdal.no",
-"heroy.nordland.no",
-"herøy.nordland.no",
-"hitra.no",
-"hjartdal.no",
-"hjelmeland.no",
-"hobol.no",
-"hobøl.no",
-"hof.no",
-"hol.no",
-"hole.no",
-"holmestrand.no",
-"holtalen.no",
-"holtålen.no",
-"hornindal.no",
-"horten.no",
-"hurdal.no",
-"hurum.no",
-"hvaler.no",
-"hyllestad.no",
-"hagebostad.no",
-"hægebostad.no",
-"hoyanger.no",
-"høyanger.no",
-"hoylandet.no",
-"høylandet.no",
-"ha.no",
-"hå.no",
-"ibestad.no",
-"inderoy.no",
-"inderøy.no",
-"iveland.no",
-"jevnaker.no",
-"jondal.no",
-"jolster.no",
-"jølster.no",
-"karasjok.no",
-"karasjohka.no",
-"kárášjohka.no",
-"karlsoy.no",
-"galsa.no",
-"gálsá.no",
-"karmoy.no",
-"karmøy.no",
-"kautokeino.no",
-"guovdageaidnu.no",
-"klepp.no",
-"klabu.no",
-"klæbu.no",
-"kongsberg.no",
-"kongsvinger.no",
-"kragero.no",
-"kragerø.no",
-"kristiansand.no",
-"kristiansund.no",
-"krodsherad.no",
-"krødsherad.no",
-"kvalsund.no",
-"rahkkeravju.no",
-"ráhkkerávju.no",
-"kvam.no",
-"kvinesdal.no",
-"kvinnherad.no",
-"kviteseid.no",
-"kvitsoy.no",
-"kvitsøy.no",
-"kvafjord.no",
-"kvæfjord.no",
-"giehtavuoatna.no",
-"kvanangen.no",
-"kvænangen.no",
-"navuotna.no",
-"návuotna.no",
-"kafjord.no",
-"kåfjord.no",
-"gaivuotna.no",
-"gáivuotna.no",
-"larvik.no",
-"lavangen.no",
-"lavagis.no",
-"loabat.no",
-"loabát.no",
-"lebesby.no",
-"davvesiida.no",
-"leikanger.no",
-"leirfjord.no",
-"leka.no",
-"leksvik.no",
-"lenvik.no",
-"leangaviika.no",
-"leaŋgaviika.no",
-"lesja.no",
-"levanger.no",
-"lier.no",
-"lierne.no",
-"lillehammer.no",
-"lillesand.no",
-"lindesnes.no",
-"lindas.no",
-"lindås.no",
-"lom.no",
-"loppa.no",
-"lahppi.no",
-"láhppi.no",
-"lund.no",
-"lunner.no",
-"luroy.no",
-"lurøy.no",
-"luster.no",
-"lyngdal.no",
-"lyngen.no",
-"ivgu.no",
-"lardal.no",
-"lerdal.no",
-"lærdal.no",
-"lodingen.no",
-"lødingen.no",
-"lorenskog.no",
-"lørenskog.no",
-"loten.no",
-"løten.no",
-"malvik.no",
-"masoy.no",
-"måsøy.no",
-"muosat.no",
-"muosát.no",
-"mandal.no",
-"marker.no",
-"marnardal.no",
-"masfjorden.no",
-"meland.no",
-"meldal.no",
-"melhus.no",
-"meloy.no",
-"meløy.no",
-"meraker.no",
-"meråker.no",
-"moareke.no",
-"moåreke.no",
-"midsund.no",
-"midtre-gauldal.no",
-"modalen.no",
-"modum.no",
-"molde.no",
-"moskenes.no",
-"moss.no",
-"mosvik.no",
-"malselv.no",
-"målselv.no",
-"malatvuopmi.no",
-"málatvuopmi.no",
-"namdalseid.no",
-"aejrie.no",
-"namsos.no",
-"namsskogan.no",
-"naamesjevuemie.no",
-"nååmesjevuemie.no",
-"laakesvuemie.no",
-"nannestad.no",
-"narvik.no",
-"narviika.no",
-"naustdal.no",
-"nedre-eiker.no",
-"nes.akershus.no",
-"nes.buskerud.no",
-"nesna.no",
-"nesodden.no",
-"nesseby.no",
-"unjarga.no",
-"unjárga.no",
-"nesset.no",
-"nissedal.no",
-"nittedal.no",
-"nord-aurdal.no",
-"nord-fron.no",
-"nord-odal.no",
-"norddal.no",
-"nordkapp.no",
-"davvenjarga.no",
-"davvenjárga.no",
-"nordre-land.no",
-"nordreisa.no",
-"raisa.no",
-"ráisa.no",
-"nore-og-uvdal.no",
-"notodden.no",
-"naroy.no",
-"nærøy.no",
-"notteroy.no",
-"nøtterøy.no",
-"odda.no",
-"oksnes.no",
-"øksnes.no",
-"oppdal.no",
-"oppegard.no",
-"oppegård.no",
-"orkdal.no",
-"orland.no",
-"ørland.no",
-"orskog.no",
-"ørskog.no",
-"orsta.no",
-"ørsta.no",
-"os.hedmark.no",
-"os.hordaland.no",
-"osen.no",
-"osteroy.no",
-"osterøy.no",
-"ostre-toten.no",
-"østre-toten.no",
-"overhalla.no",
-"ovre-eiker.no",
-"øvre-eiker.no",
-"oyer.no",
-"øyer.no",
-"oygarden.no",
-"øygarden.no",
-"oystre-slidre.no",
-"øystre-slidre.no",
-"porsanger.no",
-"porsangu.no",
-"porsáŋgu.no",
-"porsgrunn.no",
-"radoy.no",
-"radøy.no",
-"rakkestad.no",
-"rana.no",
-"ruovat.no",
-"randaberg.no",
-"rauma.no",
-"rendalen.no",
-"rennebu.no",
-"rennesoy.no",
-"rennesøy.no",
-"rindal.no",
-"ringebu.no",
-"ringerike.no",
-"ringsaker.no",
-"rissa.no",
-"risor.no",
-"risør.no",
-"roan.no",
-"rollag.no",
-"rygge.no",
-"ralingen.no",
-"rælingen.no",
-"rodoy.no",
-"rødøy.no",
-"romskog.no",
-"rømskog.no",
-"roros.no",
-"røros.no",
-"rost.no",
-"røst.no",
-"royken.no",
-"røyken.no",
-"royrvik.no",
-"røyrvik.no",
-"rade.no",
-"råde.no",
-"salangen.no",
-"siellak.no",
-"saltdal.no",
-"salat.no",
-"sálát.no",
-"sálat.no",
-"samnanger.no",
-"sande.more-og-romsdal.no",
-"sande.møre-og-romsdal.no",
-"sande.vestfold.no",
-"sandefjord.no",
-"sandnes.no",
-"sandoy.no",
-"sandøy.no",
-"sarpsborg.no",
-"sauda.no",
-"sauherad.no",
-"sel.no",
-"selbu.no",
-"selje.no",
-"seljord.no",
-"sigdal.no",
-"siljan.no",
-"sirdal.no",
-"skaun.no",
-"skedsmo.no",
-"ski.no",
-"skien.no",
-"skiptvet.no",
-"skjervoy.no",
-"skjervøy.no",
-"skierva.no",
-"skiervá.no",
-"skjak.no",
-"skjåk.no",
-"skodje.no",
-"skanland.no",
-"skånland.no",
-"skanit.no",
-"skánit.no",
-"smola.no",
-"smøla.no",
-"snillfjord.no",
-"snasa.no",
-"snåsa.no",
-"snoasa.no",
-"snaase.no",
-"snåase.no",
-"sogndal.no",
-"sokndal.no",
-"sola.no",
-"solund.no",
-"songdalen.no",
-"sortland.no",
-"spydeberg.no",
-"stange.no",
-"stavanger.no",
-"steigen.no",
-"steinkjer.no",
-"stjordal.no",
-"stjørdal.no",
-"stokke.no",
-"stor-elvdal.no",
-"stord.no",
-"stordal.no",
-"storfjord.no",
-"omasvuotna.no",
-"strand.no",
-"stranda.no",
-"stryn.no",
-"sula.no",
-"suldal.no",
-"sund.no",
-"sunndal.no",
-"surnadal.no",
-"sveio.no",
-"svelvik.no",
-"sykkylven.no",
-"sogne.no",
-"søgne.no",
-"somna.no",
-"sømna.no",
-"sondre-land.no",
-"søndre-land.no",
-"sor-aurdal.no",
-"sør-aurdal.no",
-"sor-fron.no",
-"sør-fron.no",
-"sor-odal.no",
-"sør-odal.no",
-"sor-varanger.no",
-"sør-varanger.no",
-"matta-varjjat.no",
-"mátta-várjjat.no",
-"sorfold.no",
-"sørfold.no",
-"sorreisa.no",
-"sørreisa.no",
-"sorum.no",
-"sørum.no",
-"tana.no",
-"deatnu.no",
-"time.no",
-"tingvoll.no",
-"tinn.no",
-"tjeldsund.no",
-"dielddanuorri.no",
-"tjome.no",
-"tjøme.no",
-"tokke.no",
-"tolga.no",
-"torsken.no",
-"tranoy.no",
-"tranøy.no",
-"tromso.no",
-"tromsø.no",
-"tromsa.no",
-"romsa.no",
-"trondheim.no",
-"troandin.no",
-"trysil.no",
-"trana.no",
-"træna.no",
-"trogstad.no",
-"trøgstad.no",
-"tvedestrand.no",
-"tydal.no",
-"tynset.no",
-"tysfjord.no",
-"divtasvuodna.no",
-"divttasvuotna.no",
-"tysnes.no",
-"tysvar.no",
-"tysvær.no",
-"tonsberg.no",
-"tønsberg.no",
-"ullensaker.no",
-"ullensvang.no",
-"ulvik.no",
-"utsira.no",
-"vadso.no",
-"vadsø.no",
-"cahcesuolo.no",
-"čáhcesuolo.no",
-"vaksdal.no",
-"valle.no",
-"vang.no",
-"vanylven.no",
-"vardo.no",
-"vardø.no",
-"varggat.no",
-"várggát.no",
-"vefsn.no",
-"vaapste.no",
-"vega.no",
-"vegarshei.no",
-"vegårshei.no",
-"vennesla.no",
-"verdal.no",
-"verran.no",
-"vestby.no",
-"vestnes.no",
-"vestre-slidre.no",
-"vestre-toten.no",
-"vestvagoy.no",
-"vestvågøy.no",
-"vevelstad.no",
-"vik.no",
-"vikna.no",
-"vindafjord.no",
-"volda.no",
-"voss.no",
-"varoy.no",
-"værøy.no",
-"vagan.no",
-"vågan.no",
-"voagat.no",
-"vagsoy.no",
-"vågsøy.no",
-"vaga.no",
-"vågå.no",
-"valer.ostfold.no",
-"våler.østfold.no",
-"valer.hedmark.no",
-"våler.hedmark.no",
-"*.np",
-"nr",
-"biz.nr",
-"info.nr",
-"gov.nr",
-"edu.nr",
-"org.nr",
-"net.nr",
-"com.nr",
-"nu",
-"nz",
-"ac.nz",
-"co.nz",
-"cri.nz",
-"geek.nz",
-"gen.nz",
-"govt.nz",
-"health.nz",
-"iwi.nz",
-"kiwi.nz",
-"maori.nz",
-"mil.nz",
-"māori.nz",
-"net.nz",
-"org.nz",
-"parliament.nz",
-"school.nz",
-"om",
-"co.om",
-"com.om",
-"edu.om",
-"gov.om",
-"med.om",
-"museum.om",
-"net.om",
-"org.om",
-"pro.om",
-"onion",
-"org",
-"pa",
-"ac.pa",
-"gob.pa",
-"com.pa",
-"org.pa",
-"sld.pa",
-"edu.pa",
-"net.pa",
-"ing.pa",
-"abo.pa",
-"med.pa",
-"nom.pa",
-"pe",
-"edu.pe",
-"gob.pe",
-"nom.pe",
-"mil.pe",
-"org.pe",
-"com.pe",
-"net.pe",
-"pf",
-"com.pf",
-"org.pf",
-"edu.pf",
-"*.pg",
-"ph",
-"com.ph",
-"net.ph",
-"org.ph",
-"gov.ph",
-"edu.ph",
-"ngo.ph",
-"mil.ph",
-"i.ph",
-"pk",
-"com.pk",
-"net.pk",
-"edu.pk",
-"org.pk",
-"fam.pk",
-"biz.pk",
-"web.pk",
-"gov.pk",
-"gob.pk",
-"gok.pk",
-"gon.pk",
-"gop.pk",
-"gos.pk",
-"info.pk",
-"pl",
-"com.pl",
-"net.pl",
-"org.pl",
-"aid.pl",
-"agro.pl",
-"atm.pl",
-"auto.pl",
-"biz.pl",
-"edu.pl",
-"gmina.pl",
-"gsm.pl",
-"info.pl",
-"mail.pl",
-"miasta.pl",
-"media.pl",
-"mil.pl",
-"nieruchomosci.pl",
-"nom.pl",
-"pc.pl",
-"powiat.pl",
-"priv.pl",
-"realestate.pl",
-"rel.pl",
-"sex.pl",
-"shop.pl",
-"sklep.pl",
-"sos.pl",
-"szkola.pl",
-"targi.pl",
-"tm.pl",
-"tourism.pl",
-"travel.pl",
-"turystyka.pl",
-"gov.pl",
-"ap.gov.pl",
-"ic.gov.pl",
-"is.gov.pl",
-"us.gov.pl",
-"kmpsp.gov.pl",
-"kppsp.gov.pl",
-"kwpsp.gov.pl",
-"psp.gov.pl",
-"wskr.gov.pl",
-"kwp.gov.pl",
-"mw.gov.pl",
-"ug.gov.pl",
-"um.gov.pl",
-"umig.gov.pl",
-"ugim.gov.pl",
-"upow.gov.pl",
-"uw.gov.pl",
-"starostwo.gov.pl",
-"pa.gov.pl",
-"po.gov.pl",
-"psse.gov.pl",
-"pup.gov.pl",
-"rzgw.gov.pl",
-"sa.gov.pl",
-"so.gov.pl",
-"sr.gov.pl",
-"wsa.gov.pl",
-"sko.gov.pl",
-"uzs.gov.pl",
-"wiih.gov.pl",
-"winb.gov.pl",
-"pinb.gov.pl",
-"wios.gov.pl",
-"witd.gov.pl",
-"wzmiuw.gov.pl",
-"piw.gov.pl",
-"wiw.gov.pl",
-"griw.gov.pl",
-"wif.gov.pl",
-"oum.gov.pl",
-"sdn.gov.pl",
-"zp.gov.pl",
-"uppo.gov.pl",
-"mup.gov.pl",
-"wuoz.gov.pl",
-"konsulat.gov.pl",
-"oirm.gov.pl",
-"augustow.pl",
-"babia-gora.pl",
-"bedzin.pl",
-"beskidy.pl",
-"bialowieza.pl",
-"bialystok.pl",
-"bielawa.pl",
-"bieszczady.pl",
-"boleslawiec.pl",
-"bydgoszcz.pl",
-"bytom.pl",
-"cieszyn.pl",
-"czeladz.pl",
-"czest.pl",
-"dlugoleka.pl",
-"elblag.pl",
-"elk.pl",
-"glogow.pl",
-"gniezno.pl",
-"gorlice.pl",
-"grajewo.pl",
-"ilawa.pl",
-"jaworzno.pl",
-"jelenia-gora.pl",
-"jgora.pl",
-"kalisz.pl",
-"kazimierz-dolny.pl",
-"karpacz.pl",
-"kartuzy.pl",
-"kaszuby.pl",
-"katowice.pl",
-"kepno.pl",
-"ketrzyn.pl",
-"klodzko.pl",
-"kobierzyce.pl",
-"kolobrzeg.pl",
-"konin.pl",
-"konskowola.pl",
-"kutno.pl",
-"lapy.pl",
-"lebork.pl",
-"legnica.pl",
-"lezajsk.pl",
-"limanowa.pl",
-"lomza.pl",
-"lowicz.pl",
-"lubin.pl",
-"lukow.pl",
-"malbork.pl",
-"malopolska.pl",
-"mazowsze.pl",
-"mazury.pl",
-"mielec.pl",
-"mielno.pl",
-"mragowo.pl",
-"naklo.pl",
-"nowaruda.pl",
-"nysa.pl",
-"olawa.pl",
-"olecko.pl",
-"olkusz.pl",
-"olsztyn.pl",
-"opoczno.pl",
-"opole.pl",
-"ostroda.pl",
-"ostroleka.pl",
-"ostrowiec.pl",
-"ostrowwlkp.pl",
-"pila.pl",
-"pisz.pl",
-"podhale.pl",
-"podlasie.pl",
-"polkowice.pl",
-"pomorze.pl",
-"pomorskie.pl",
-"prochowice.pl",
-"pruszkow.pl",
-"przeworsk.pl",
-"pulawy.pl",
-"radom.pl",
-"rawa-maz.pl",
-"rybnik.pl",
-"rzeszow.pl",
-"sanok.pl",
-"sejny.pl",
-"slask.pl",
-"slupsk.pl",
-"sosnowiec.pl",
-"stalowa-wola.pl",
-"skoczow.pl",
-"starachowice.pl",
-"stargard.pl",
-"suwalki.pl",
-"swidnica.pl",
-"swiebodzin.pl",
-"swinoujscie.pl",
-"szczecin.pl",
-"szczytno.pl",
-"tarnobrzeg.pl",
-"tgory.pl",
-"turek.pl",
-"tychy.pl",
-"ustka.pl",
-"walbrzych.pl",
-"warmia.pl",
-"warszawa.pl",
-"waw.pl",
-"wegrow.pl",
-"wielun.pl",
-"wlocl.pl",
-"wloclawek.pl",
-"wodzislaw.pl",
-"wolomin.pl",
-"wroclaw.pl",
-"zachpomor.pl",
-"zagan.pl",
-"zarow.pl",
-"zgora.pl",
-"zgorzelec.pl",
-"pm",
-"pn",
-"gov.pn",
-"co.pn",
-"org.pn",
-"edu.pn",
-"net.pn",
-"post",
-"pr",
-"com.pr",
-"net.pr",
-"org.pr",
-"gov.pr",
-"edu.pr",
-"isla.pr",
-"pro.pr",
-"biz.pr",
-"info.pr",
-"name.pr",
-"est.pr",
-"prof.pr",
-"ac.pr",
-"pro",
-"aaa.pro",
-"aca.pro",
-"acct.pro",
-"avocat.pro",
-"bar.pro",
-"cpa.pro",
-"eng.pro",
-"jur.pro",
-"law.pro",
-"med.pro",
-"recht.pro",
-"ps",
-"edu.ps",
-"gov.ps",
-"sec.ps",
-"plo.ps",
-"com.ps",
-"org.ps",
-"net.ps",
-"pt",
-"net.pt",
-"gov.pt",
-"org.pt",
-"edu.pt",
-"int.pt",
-"publ.pt",
-"com.pt",
-"nome.pt",
-"pw",
-"co.pw",
-"ne.pw",
-"or.pw",
-"ed.pw",
-"go.pw",
-"belau.pw",
-"py",
-"com.py",
-"coop.py",
-"edu.py",
-"gov.py",
-"mil.py",
-"net.py",
-"org.py",
-"qa",
-"com.qa",
-"edu.qa",
-"gov.qa",
-"mil.qa",
-"name.qa",
-"net.qa",
-"org.qa",
-"sch.qa",
-"re",
-"asso.re",
-"com.re",
-"nom.re",
-"ro",
-"arts.ro",
-"com.ro",
-"firm.ro",
-"info.ro",
-"nom.ro",
-"nt.ro",
-"org.ro",
-"rec.ro",
-"store.ro",
-"tm.ro",
-"www.ro",
-"rs",
-"ac.rs",
-"co.rs",
-"edu.rs",
-"gov.rs",
-"in.rs",
-"org.rs",
-"ru",
-"rw",
-"ac.rw",
-"co.rw",
-"coop.rw",
-"gov.rw",
-"mil.rw",
-"net.rw",
-"org.rw",
-"sa",
-"com.sa",
-"net.sa",
-"org.sa",
-"gov.sa",
-"med.sa",
-"pub.sa",
-"edu.sa",
-"sch.sa",
-"sb",
-"com.sb",
-"edu.sb",
-"gov.sb",
-"net.sb",
-"org.sb",
-"sc",
-"com.sc",
-"gov.sc",
-"net.sc",
-"org.sc",
-"edu.sc",
-"sd",
-"com.sd",
-"net.sd",
-"org.sd",
-"edu.sd",
-"med.sd",
-"tv.sd",
-"gov.sd",
-"info.sd",
-"se",
-"a.se",
-"ac.se",
-"b.se",
-"bd.se",
-"brand.se",
-"c.se",
-"d.se",
-"e.se",
-"f.se",
-"fh.se",
-"fhsk.se",
-"fhv.se",
-"g.se",
-"h.se",
-"i.se",
-"k.se",
-"komforb.se",
-"kommunalforbund.se",
-"komvux.se",
-"l.se",
-"lanbib.se",
-"m.se",
-"n.se",
-"naturbruksgymn.se",
-"o.se",
-"org.se",
-"p.se",
-"parti.se",
-"pp.se",
-"press.se",
-"r.se",
-"s.se",
-"t.se",
-"tm.se",
-"u.se",
-"w.se",
-"x.se",
-"y.se",
-"z.se",
-"sg",
-"com.sg",
-"net.sg",
-"org.sg",
-"gov.sg",
-"edu.sg",
-"per.sg",
-"sh",
-"com.sh",
-"net.sh",
-"gov.sh",
-"org.sh",
-"mil.sh",
-"si",
-"sj",
-"sk",
-"sl",
-"com.sl",
-"net.sl",
-"edu.sl",
-"gov.sl",
-"org.sl",
-"sm",
-"sn",
-"art.sn",
-"com.sn",
-"edu.sn",
-"gouv.sn",
-"org.sn",
-"perso.sn",
-"univ.sn",
-"so",
-"com.so",
-"edu.so",
-"gov.so",
-"me.so",
-"net.so",
-"org.so",
-"sr",
-"ss",
-"biz.ss",
-"com.ss",
-"edu.ss",
-"gov.ss",
-"net.ss",
-"org.ss",
-"st",
-"co.st",
-"com.st",
-"consulado.st",
-"edu.st",
-"embaixada.st",
-"gov.st",
-"mil.st",
-"net.st",
-"org.st",
-"principe.st",
-"saotome.st",
-"store.st",
-"su",
-"sv",
-"com.sv",
-"edu.sv",
-"gob.sv",
-"org.sv",
-"red.sv",
-"sx",
-"gov.sx",
-"sy",
-"edu.sy",
-"gov.sy",
-"net.sy",
-"mil.sy",
-"com.sy",
-"org.sy",
-"sz",
-"co.sz",
-"ac.sz",
-"org.sz",
-"tc",
-"td",
-"tel",
-"tf",
-"tg",
-"th",
-"ac.th",
-"co.th",
-"go.th",
-"in.th",
-"mi.th",
-"net.th",
-"or.th",
-"tj",
-"ac.tj",
-"biz.tj",
-"co.tj",
-"com.tj",
-"edu.tj",
-"go.tj",
-"gov.tj",
-"int.tj",
-"mil.tj",
-"name.tj",
-"net.tj",
-"nic.tj",
-"org.tj",
-"test.tj",
-"web.tj",
-"tk",
-"tl",
-"gov.tl",
-"tm",
-"com.tm",
-"co.tm",
-"org.tm",
-"net.tm",
-"nom.tm",
-"gov.tm",
-"mil.tm",
-"edu.tm",
-"tn",
-"com.tn",
-"ens.tn",
-"fin.tn",
-"gov.tn",
-"ind.tn",
-"intl.tn",
-"nat.tn",
-"net.tn",
-"org.tn",
-"info.tn",
-"perso.tn",
-"tourism.tn",
-"edunet.tn",
-"rnrt.tn",
-"rns.tn",
-"rnu.tn",
-"mincom.tn",
-"agrinet.tn",
-"defense.tn",
-"turen.tn",
-"to",
-"com.to",
-"gov.to",
-"net.to",
-"org.to",
-"edu.to",
-"mil.to",
-"tr",
-"av.tr",
-"bbs.tr",
-"bel.tr",
-"biz.tr",
-"com.tr",
-"dr.tr",
-"edu.tr",
-"gen.tr",
-"gov.tr",
-"info.tr",
-"mil.tr",
-"k12.tr",
-"kep.tr",
-"name.tr",
-"net.tr",
-"org.tr",
-"pol.tr",
-"tel.tr",
-"tsk.tr",
-"tv.tr",
-"web.tr",
-"nc.tr",
-"gov.nc.tr",
-"tt",
-"co.tt",
-"com.tt",
-"org.tt",
-"net.tt",
-"biz.tt",
-"info.tt",
-"pro.tt",
-"int.tt",
-"coop.tt",
-"jobs.tt",
-"mobi.tt",
-"travel.tt",
-"museum.tt",
-"aero.tt",
-"name.tt",
-"gov.tt",
-"edu.tt",
-"tv",
-"tw",
-"edu.tw",
-"gov.tw",
-"mil.tw",
-"com.tw",
-"net.tw",
-"org.tw",
-"idv.tw",
-"game.tw",
-"ebiz.tw",
-"club.tw",
-"網路.tw",
-"組織.tw",
-"商業.tw",
-"tz",
-"ac.tz",
-"co.tz",
-"go.tz",
-"hotel.tz",
-"info.tz",
-"me.tz",
-"mil.tz",
-"mobi.tz",
-"ne.tz",
-"or.tz",
-"sc.tz",
-"tv.tz",
-"ua",
-"com.ua",
-"edu.ua",
-"gov.ua",
-"in.ua",
-"net.ua",
-"org.ua",
-"cherkassy.ua",
-"cherkasy.ua",
-"chernigov.ua",
-"chernihiv.ua",
-"chernivtsi.ua",
-"chernovtsy.ua",
-"ck.ua",
-"cn.ua",
-"cr.ua",
-"crimea.ua",
-"cv.ua",
-"dn.ua",
-"dnepropetrovsk.ua",
-"dnipropetrovsk.ua",
-"dominic.ua",
-"donetsk.ua",
-"dp.ua",
-"if.ua",
-"ivano-frankivsk.ua",
-"kh.ua",
-"kharkiv.ua",
-"kharkov.ua",
-"kherson.ua",
-"khmelnitskiy.ua",
-"khmelnytskyi.ua",
-"kiev.ua",
-"kirovograd.ua",
-"km.ua",
-"kr.ua",
-"krym.ua",
-"ks.ua",
-"kv.ua",
-"kyiv.ua",
-"lg.ua",
-"lt.ua",
-"lugansk.ua",
-"lutsk.ua",
-"lv.ua",
-"lviv.ua",
-"mk.ua",
-"mykolaiv.ua",
-"nikolaev.ua",
-"od.ua",
-"odesa.ua",
-"odessa.ua",
-"pl.ua",
-"poltava.ua",
-"rivne.ua",
-"rovno.ua",
-"rv.ua",
-"sb.ua",
-"sebastopol.ua",
-"sevastopol.ua",
-"sm.ua",
-"sumy.ua",
-"te.ua",
-"ternopil.ua",
-"uz.ua",
-"uzhgorod.ua",
-"vinnica.ua",
-"vinnytsia.ua",
-"vn.ua",
-"volyn.ua",
-"yalta.ua",
-"zaporizhzhe.ua",
-"zaporizhzhia.ua",
-"zhitomir.ua",
-"zhytomyr.ua",
-"zp.ua",
-"zt.ua",
-"ug",
-"co.ug",
-"or.ug",
-"ac.ug",
-"sc.ug",
-"go.ug",
-"ne.ug",
-"com.ug",
-"org.ug",
-"uk",
-"ac.uk",
-"co.uk",
-"gov.uk",
-"ltd.uk",
-"me.uk",
-"net.uk",
-"nhs.uk",
-"org.uk",
-"plc.uk",
-"police.uk",
-"*.sch.uk",
-"us",
-"dni.us",
-"fed.us",
-"isa.us",
-"kids.us",
-"nsn.us",
-"ak.us",
-"al.us",
-"ar.us",
-"as.us",
-"az.us",
-"ca.us",
-"co.us",
-"ct.us",
-"dc.us",
-"de.us",
-"fl.us",
-"ga.us",
-"gu.us",
-"hi.us",
-"ia.us",
-"id.us",
-"il.us",
-"in.us",
-"ks.us",
-"ky.us",
-"la.us",
-"ma.us",
-"md.us",
-"me.us",
-"mi.us",
-"mn.us",
-"mo.us",
-"ms.us",
-"mt.us",
-"nc.us",
-"nd.us",
-"ne.us",
-"nh.us",
-"nj.us",
-"nm.us",
-"nv.us",
-"ny.us",
-"oh.us",
-"ok.us",
-"or.us",
-"pa.us",
-"pr.us",
-"ri.us",
-"sc.us",
-"sd.us",
-"tn.us",
-"tx.us",
-"ut.us",
-"vi.us",
-"vt.us",
-"va.us",
-"wa.us",
-"wi.us",
-"wv.us",
-"wy.us",
-"k12.ak.us",
-"k12.al.us",
-"k12.ar.us",
-"k12.as.us",
-"k12.az.us",
-"k12.ca.us",
-"k12.co.us",
-"k12.ct.us",
-"k12.dc.us",
-"k12.de.us",
-"k12.fl.us",
-"k12.ga.us",
-"k12.gu.us",
-"k12.ia.us",
-"k12.id.us",
-"k12.il.us",
-"k12.in.us",
-"k12.ks.us",
-"k12.ky.us",
-"k12.la.us",
-"k12.ma.us",
-"k12.md.us",
-"k12.me.us",
-"k12.mi.us",
-"k12.mn.us",
-"k12.mo.us",
-"k12.ms.us",
-"k12.mt.us",
-"k12.nc.us",
-"k12.ne.us",
-"k12.nh.us",
-"k12.nj.us",
-"k12.nm.us",
-"k12.nv.us",
-"k12.ny.us",
-"k12.oh.us",
-"k12.ok.us",
-"k12.or.us",
-"k12.pa.us",
-"k12.pr.us",
-"k12.ri.us",
-"k12.sc.us",
-"k12.tn.us",
-"k12.tx.us",
-"k12.ut.us",
-"k12.vi.us",
-"k12.vt.us",
-"k12.va.us",
-"k12.wa.us",
-"k12.wi.us",
-"k12.wy.us",
-"cc.ak.us",
-"cc.al.us",
-"cc.ar.us",
-"cc.as.us",
-"cc.az.us",
-"cc.ca.us",
-"cc.co.us",
-"cc.ct.us",
-"cc.dc.us",
-"cc.de.us",
-"cc.fl.us",
-"cc.ga.us",
-"cc.gu.us",
-"cc.hi.us",
-"cc.ia.us",
-"cc.id.us",
-"cc.il.us",
-"cc.in.us",
-"cc.ks.us",
-"cc.ky.us",
-"cc.la.us",
-"cc.ma.us",
-"cc.md.us",
-"cc.me.us",
-"cc.mi.us",
-"cc.mn.us",
-"cc.mo.us",
-"cc.ms.us",
-"cc.mt.us",
-"cc.nc.us",
-"cc.nd.us",
-"cc.ne.us",
-"cc.nh.us",
-"cc.nj.us",
-"cc.nm.us",
-"cc.nv.us",
-"cc.ny.us",
-"cc.oh.us",
-"cc.ok.us",
-"cc.or.us",
-"cc.pa.us",
-"cc.pr.us",
-"cc.ri.us",
-"cc.sc.us",
-"cc.sd.us",
-"cc.tn.us",
-"cc.tx.us",
-"cc.ut.us",
-"cc.vi.us",
-"cc.vt.us",
-"cc.va.us",
-"cc.wa.us",
-"cc.wi.us",
-"cc.wv.us",
-"cc.wy.us",
-"lib.ak.us",
-"lib.al.us",
-"lib.ar.us",
-"lib.as.us",
-"lib.az.us",
-"lib.ca.us",
-"lib.co.us",
-"lib.ct.us",
-"lib.dc.us",
-"lib.fl.us",
-"lib.ga.us",
-"lib.gu.us",
-"lib.hi.us",
-"lib.ia.us",
-"lib.id.us",
-"lib.il.us",
-"lib.in.us",
-"lib.ks.us",
-"lib.ky.us",
-"lib.la.us",
-"lib.ma.us",
-"lib.md.us",
-"lib.me.us",
-"lib.mi.us",
-"lib.mn.us",
-"lib.mo.us",
-"lib.ms.us",
-"lib.mt.us",
-"lib.nc.us",
-"lib.nd.us",
-"lib.ne.us",
-"lib.nh.us",
-"lib.nj.us",
-"lib.nm.us",
-"lib.nv.us",
-"lib.ny.us",
-"lib.oh.us",
-"lib.ok.us",
-"lib.or.us",
-"lib.pa.us",
-"lib.pr.us",
-"lib.ri.us",
-"lib.sc.us",
-"lib.sd.us",
-"lib.tn.us",
-"lib.tx.us",
-"lib.ut.us",
-"lib.vi.us",
-"lib.vt.us",
-"lib.va.us",
-"lib.wa.us",
-"lib.wi.us",
-"lib.wy.us",
-"pvt.k12.ma.us",
-"chtr.k12.ma.us",
-"paroch.k12.ma.us",
-"ann-arbor.mi.us",
-"cog.mi.us",
-"dst.mi.us",
-"eaton.mi.us",
-"gen.mi.us",
-"mus.mi.us",
-"tec.mi.us",
-"washtenaw.mi.us",
-"uy",
-"com.uy",
-"edu.uy",
-"gub.uy",
-"mil.uy",
-"net.uy",
-"org.uy",
-"uz",
-"co.uz",
-"com.uz",
-"net.uz",
-"org.uz",
-"va",
-"vc",
-"com.vc",
-"net.vc",
-"org.vc",
-"gov.vc",
-"mil.vc",
-"edu.vc",
-"ve",
-"arts.ve",
-"co.ve",
-"com.ve",
-"e12.ve",
-"edu.ve",
-"firm.ve",
-"gob.ve",
-"gov.ve",
-"info.ve",
-"int.ve",
-"mil.ve",
-"net.ve",
-"org.ve",
-"rec.ve",
-"store.ve",
-"tec.ve",
-"web.ve",
-"vg",
-"vi",
-"co.vi",
-"com.vi",
-"k12.vi",
-"net.vi",
-"org.vi",
-"vn",
-"com.vn",
-"net.vn",
-"org.vn",
-"edu.vn",
-"gov.vn",
-"int.vn",
-"ac.vn",
-"biz.vn",
-"info.vn",
-"name.vn",
-"pro.vn",
-"health.vn",
-"vu",
-"com.vu",
-"edu.vu",
-"net.vu",
-"org.vu",
-"wf",
-"ws",
-"com.ws",
-"net.ws",
-"org.ws",
-"gov.ws",
-"edu.ws",
-"yt",
-"امارات",
-"հայ",
-"বাংলা",
-"бг",
-"бел",
-"中国",
-"中國",
-"الجزائر",
-"مصر",
-"ею",
-"ευ",
-"موريتانيا",
-"გე",
-"ελ",
-"香港",
-"公司.香港",
-"教育.香港",
-"政府.香港",
-"個人.香港",
-"網絡.香港",
-"組織.香港",
-"ಭಾರತ",
-"ଭାରତ",
-"ভাৰত",
-"भारतम्",
-"भारोत",
-"ڀارت",
-"ഭാരതം",
-"भारत",
-"بارت",
-"بھارت",
-"భారత్",
-"ભારત",
-"ਭਾਰਤ",
-"ভারত",
-"இந்தியா",
-"ایران",
-"ايران",
-"عراق",
-"الاردن",
-"한국",
-"қаз",
-"ලංකා",
-"இலங்கை",
-"المغرب",
-"мкд",
-"мон",
-"澳門",
-"澳门",
-"مليسيا",
-"عمان",
-"پاکستان",
-"پاكستان",
-"فلسطين",
-"срб",
-"пр.срб",
-"орг.срб",
-"обр.срб",
-"од.срб",
-"упр.срб",
-"ак.срб",
-"рф",
-"قطر",
-"السعودية",
-"السعودیة",
-"السعودیۃ",
-"السعوديه",
-"سودان",
-"新加坡",
-"சிங்கப்பூர்",
-"سورية",
-"سوريا",
-"ไทย",
-"ศึกษา.ไทย",
-"ธุรกิจ.ไทย",
-"รัฐบาล.ไทย",
-"ทหาร.ไทย",
-"เน็ต.ไทย",
-"องค์กร.ไทย",
-"تونس",
-"台灣",
-"台湾",
-"臺灣",
-"укр",
-"اليمن",
-"xxx",
-"*.ye",
-"ac.za",
-"agric.za",
-"alt.za",
-"co.za",
-"edu.za",
-"gov.za",
-"grondar.za",
-"law.za",
-"mil.za",
-"net.za",
-"ngo.za",
-"nic.za",
-"nis.za",
-"nom.za",
-"org.za",
-"school.za",
-"tm.za",
-"web.za",
-"zm",
-"ac.zm",
-"biz.zm",
-"co.zm",
-"com.zm",
-"edu.zm",
-"gov.zm",
-"info.zm",
-"mil.zm",
-"net.zm",
-"org.zm",
-"sch.zm",
-"zw",
-"ac.zw",
-"co.zw",
-"gov.zw",
-"mil.zw",
-"org.zw",
-"aaa",
-"aarp",
-"abarth",
-"abb",
-"abbott",
-"abbvie",
-"abc",
-"able",
-"abogado",
-"abudhabi",
-"academy",
-"accenture",
-"accountant",
-"accountants",
-"aco",
-"actor",
-"adac",
-"ads",
-"adult",
-"aeg",
-"aetna",
-"afamilycompany",
-"afl",
-"africa",
-"agakhan",
-"agency",
-"aig",
-"aigo",
-"airbus",
-"airforce",
-"airtel",
-"akdn",
-"alfaromeo",
-"alibaba",
-"alipay",
-"allfinanz",
-"allstate",
-"ally",
-"alsace",
-"alstom",
-"amazon",
-"americanexpress",
-"americanfamily",
-"amex",
-"amfam",
-"amica",
-"amsterdam",
-"analytics",
-"android",
-"anquan",
-"anz",
-"aol",
-"apartments",
-"app",
-"apple",
-"aquarelle",
-"arab",
-"aramco",
-"archi",
-"army",
-"art",
-"arte",
-"asda",
-"associates",
-"athleta",
-"attorney",
-"auction",
-"audi",
-"audible",
-"audio",
-"auspost",
-"author",
-"auto",
-"autos",
-"avianca",
-"aws",
-"axa",
-"azure",
-"baby",
-"baidu",
-"banamex",
-"bananarepublic",
-"band",
-"bank",
-"bar",
-"barcelona",
-"barclaycard",
-"barclays",
-"barefoot",
-"bargains",
-"baseball",
-"basketball",
-"bauhaus",
-"bayern",
-"bbc",
-"bbt",
-"bbva",
-"bcg",
-"bcn",
-"beats",
-"beauty",
-"beer",
-"bentley",
-"berlin",
-"best",
-"bestbuy",
-"bet",
-"bharti",
-"bible",
-"bid",
-"bike",
-"bing",
-"bingo",
-"bio",
-"black",
-"blackfriday",
-"blockbuster",
-"blog",
-"bloomberg",
-"blue",
-"bms",
-"bmw",
-"bnpparibas",
-"boats",
-"boehringer",
-"bofa",
-"bom",
-"bond",
-"boo",
-"book",
-"booking",
-"bosch",
-"bostik",
-"boston",
-"bot",
-"boutique",
-"box",
-"bradesco",
-"bridgestone",
-"broadway",
-"broker",
-"brother",
-"brussels",
-"budapest",
-"bugatti",
-"build",
-"builders",
-"business",
-"buy",
-"buzz",
-"bzh",
-"cab",
-"cafe",
-"cal",
-"call",
-"calvinklein",
-"cam",
-"camera",
-"camp",
-"cancerresearch",
-"canon",
-"capetown",
-"capital",
-"capitalone",
-"car",
-"caravan",
-"cards",
-"care",
-"career",
-"careers",
-"cars",
-"casa",
-"case",
-"caseih",
-"cash",
-"casino",
-"catering",
-"catholic",
-"cba",
-"cbn",
-"cbre",
-"cbs",
-"ceb",
-"center",
-"ceo",
-"cern",
-"cfa",
-"cfd",
-"chanel",
-"channel",
-"charity",
-"chase",
-"chat",
-"cheap",
-"chintai",
-"christmas",
-"chrome",
-"church",
-"cipriani",
-"circle",
-"cisco",
-"citadel",
-"citi",
-"citic",
-"city",
-"cityeats",
-"claims",
-"cleaning",
-"click",
-"clinic",
-"clinique",
-"clothing",
-"cloud",
-"club",
-"clubmed",
-"coach",
-"codes",
-"coffee",
-"college",
-"cologne",
-"comcast",
-"commbank",
-"community",
-"company",
-"compare",
-"computer",
-"comsec",
-"condos",
-"construction",
-"consulting",
-"contact",
-"contractors",
-"cooking",
-"cookingchannel",
-"cool",
-"corsica",
-"country",
-"coupon",
-"coupons",
-"courses",
-"cpa",
-"credit",
-"creditcard",
-"creditunion",
-"cricket",
-"crown",
-"crs",
-"cruise",
-"cruises",
-"csc",
-"cuisinella",
-"cymru",
-"cyou",
-"dabur",
-"dad",
-"dance",
-"data",
-"date",
-"dating",
-"datsun",
-"day",
-"dclk",
-"dds",
-"deal",
-"dealer",
-"deals",
-"degree",
-"delivery",
-"dell",
-"deloitte",
-"delta",
-"democrat",
-"dental",
-"dentist",
-"desi",
-"design",
-"dev",
-"dhl",
-"diamonds",
-"diet",
-"digital",
-"direct",
-"directory",
-"discount",
-"discover",
-"dish",
-"diy",
-"dnp",
-"docs",
-"doctor",
-"dog",
-"domains",
-"dot",
-"download",
-"drive",
-"dtv",
-"dubai",
-"duck",
-"dunlop",
-"dupont",
-"durban",
-"dvag",
-"dvr",
-"earth",
-"eat",
-"eco",
-"edeka",
-"education",
-"email",
-"emerck",
-"energy",
-"engineer",
-"engineering",
-"enterprises",
-"epson",
-"equipment",
-"ericsson",
-"erni",
-"esq",
-"estate",
-"esurance",
-"etisalat",
-"eurovision",
-"eus",
-"events",
-"exchange",
-"expert",
-"exposed",
-"express",
-"extraspace",
-"fage",
-"fail",
-"fairwinds",
-"faith",
-"family",
-"fan",
-"fans",
-"farm",
-"farmers",
-"fashion",
-"fast",
-"fedex",
-"feedback",
-"ferrari",
-"ferrero",
-"fiat",
-"fidelity",
-"fido",
-"film",
-"final",
-"finance",
-"financial",
-"fire",
-"firestone",
-"firmdale",
-"fish",
-"fishing",
-"fit",
-"fitness",
-"flickr",
-"flights",
-"flir",
-"florist",
-"flowers",
-"fly",
-"foo",
-"food",
-"foodnetwork",
-"football",
-"ford",
-"forex",
-"forsale",
-"forum",
-"foundation",
-"fox",
-"free",
-"fresenius",
-"frl",
-"frogans",
-"frontdoor",
-"frontier",
-"ftr",
-"fujitsu",
-"fujixerox",
-"fun",
-"fund",
-"furniture",
-"futbol",
-"fyi",
-"gal",
-"gallery",
-"gallo",
-"gallup",
-"game",
-"games",
-"gap",
-"garden",
-"gay",
-"gbiz",
-"gdn",
-"gea",
-"gent",
-"genting",
-"george",
-"ggee",
-"gift",
-"gifts",
-"gives",
-"giving",
-"glade",
-"glass",
-"gle",
-"global",
-"globo",
-"gmail",
-"gmbh",
-"gmo",
-"gmx",
-"godaddy",
-"gold",
-"goldpoint",
-"golf",
-"goo",
-"goodyear",
-"goog",
-"google",
-"gop",
-"got",
-"grainger",
-"graphics",
-"gratis",
-"green",
-"gripe",
-"grocery",
-"group",
-"guardian",
-"gucci",
-"guge",
-"guide",
-"guitars",
-"guru",
-"hair",
-"hamburg",
-"hangout",
-"haus",
-"hbo",
-"hdfc",
-"hdfcbank",
-"health",
-"healthcare",
-"help",
-"helsinki",
-"here",
-"hermes",
-"hgtv",
-"hiphop",
-"hisamitsu",
-"hitachi",
-"hiv",
-"hkt",
-"hockey",
-"holdings",
-"holiday",
-"homedepot",
-"homegoods",
-"homes",
-"homesense",
-"honda",
-"horse",
-"hospital",
-"host",
-"hosting",
-"hot",
-"hoteles",
-"hotels",
-"hotmail",
-"house",
-"how",
-"hsbc",
-"hughes",
-"hyatt",
-"hyundai",
-"ibm",
-"icbc",
-"ice",
-"icu",
-"ieee",
-"ifm",
-"ikano",
-"imamat",
-"imdb",
-"immo",
-"immobilien",
-"inc",
-"industries",
-"infiniti",
-"ing",
-"ink",
-"institute",
-"insurance",
-"insure",
-"intel",
-"international",
-"intuit",
-"investments",
-"ipiranga",
-"irish",
-"ismaili",
-"ist",
-"istanbul",
-"itau",
-"itv",
-"iveco",
-"jaguar",
-"java",
-"jcb",
-"jcp",
-"jeep",
-"jetzt",
-"jewelry",
-"jio",
-"jll",
-"jmp",
-"jnj",
-"joburg",
-"jot",
-"joy",
-"jpmorgan",
-"jprs",
-"juegos",
-"juniper",
-"kaufen",
-"kddi",
-"kerryhotels",
-"kerrylogistics",
-"kerryproperties",
-"kfh",
-"kia",
-"kim",
-"kinder",
-"kindle",
-"kitchen",
-"kiwi",
-"koeln",
-"komatsu",
-"kosher",
-"kpmg",
-"kpn",
-"krd",
-"kred",
-"kuokgroup",
-"kyoto",
-"lacaixa",
-"lamborghini",
-"lamer",
-"lancaster",
-"lancia",
-"land",
-"landrover",
-"lanxess",
-"lasalle",
-"lat",
-"latino",
-"latrobe",
-"law",
-"lawyer",
-"lds",
-"lease",
-"leclerc",
-"lefrak",
-"legal",
-"lego",
-"lexus",
-"lgbt",
-"lidl",
-"life",
-"lifeinsurance",
-"lifestyle",
-"lighting",
-"like",
-"lilly",
-"limited",
-"limo",
-"lincoln",
-"linde",
-"link",
-"lipsy",
-"live",
-"living",
-"lixil",
-"llc",
-"llp",
-"loan",
-"loans",
-"locker",
-"locus",
-"loft",
-"lol",
-"london",
-"lotte",
-"lotto",
-"love",
-"lpl",
-"lplfinancial",
-"ltd",
-"ltda",
-"lundbeck",
-"lupin",
-"luxe",
-"luxury",
-"macys",
-"madrid",
-"maif",
-"maison",
-"makeup",
-"man",
-"management",
-"mango",
-"map",
-"market",
-"marketing",
-"markets",
-"marriott",
-"marshalls",
-"maserati",
-"mattel",
-"mba",
-"mckinsey",
-"med",
-"media",
-"meet",
-"melbourne",
-"meme",
-"memorial",
-"men",
-"menu",
-"merckmsd",
-"metlife",
-"miami",
-"microsoft",
-"mini",
-"mint",
-"mit",
-"mitsubishi",
-"mlb",
-"mls",
-"mma",
-"mobile",
-"moda",
-"moe",
-"moi",
-"mom",
-"monash",
-"money",
-"monster",
-"mormon",
-"mortgage",
-"moscow",
-"moto",
-"motorcycles",
-"mov",
-"movie",
-"msd",
-"mtn",
-"mtr",
-"mutual",
-"nab",
-"nadex",
-"nagoya",
-"nationwide",
-"natura",
-"navy",
-"nba",
-"nec",
-"netbank",
-"netflix",
-"network",
-"neustar",
-"new",
-"newholland",
-"news",
-"next",
-"nextdirect",
-"nexus",
-"nfl",
-"ngo",
-"nhk",
-"nico",
-"nike",
-"nikon",
-"ninja",
-"nissan",
-"nissay",
-"nokia",
-"northwesternmutual",
-"norton",
-"now",
-"nowruz",
-"nowtv",
-"nra",
-"nrw",
-"ntt",
-"nyc",
-"obi",
-"observer",
-"off",
-"office",
-"okinawa",
-"olayan",
-"olayangroup",
-"oldnavy",
-"ollo",
-"omega",
-"one",
-"ong",
-"onl",
-"online",
-"onyourside",
-"ooo",
-"open",
-"oracle",
-"orange",
-"organic",
-"origins",
-"osaka",
-"otsuka",
-"ott",
-"ovh",
-"page",
-"panasonic",
-"paris",
-"pars",
-"partners",
-"parts",
-"party",
-"passagens",
-"pay",
-"pccw",
-"pet",
-"pfizer",
-"pharmacy",
-"phd",
-"philips",
-"phone",
-"photo",
-"photography",
-"photos",
-"physio",
-"pics",
-"pictet",
-"pictures",
-"pid",
-"pin",
-"ping",
-"pink",
-"pioneer",
-"pizza",
-"place",
-"play",
-"playstation",
-"plumbing",
-"plus",
-"pnc",
-"pohl",
-"poker",
-"politie",
-"porn",
-"pramerica",
-"praxi",
-"press",
-"prime",
-"prod",
-"productions",
-"prof",
-"progressive",
-"promo",
-"properties",
-"property",
-"protection",
-"pru",
-"prudential",
-"pub",
-"pwc",
-"qpon",
-"quebec",
-"quest",
-"qvc",
-"racing",
-"radio",
-"raid",
-"read",
-"realestate",
-"realtor",
-"realty",
-"recipes",
-"red",
-"redstone",
-"redumbrella",
-"rehab",
-"reise",
-"reisen",
-"reit",
-"reliance",
-"ren",
-"rent",
-"rentals",
-"repair",
-"report",
-"republican",
-"rest",
-"restaurant",
-"review",
-"reviews",
-"rexroth",
-"rich",
-"richardli",
-"ricoh",
-"rightathome",
-"ril",
-"rio",
-"rip",
-"rmit",
-"rocher",
-"rocks",
-"rodeo",
-"rogers",
-"room",
-"rsvp",
-"rugby",
-"ruhr",
-"run",
-"rwe",
-"ryukyu",
-"saarland",
-"safe",
-"safety",
-"sakura",
-"sale",
-"salon",
-"samsclub",
-"samsung",
-"sandvik",
-"sandvikcoromant",
-"sanofi",
-"sap",
-"sarl",
-"sas",
-"save",
-"saxo",
-"sbi",
-"sbs",
-"sca",
-"scb",
-"schaeffler",
-"schmidt",
-"scholarships",
-"school",
-"schule",
-"schwarz",
-"science",
-"scjohnson",
-"scor",
-"scot",
-"search",
-"seat",
-"secure",
-"security",
-"seek",
-"select",
-"sener",
-"services",
-"ses",
-"seven",
-"sew",
-"sex",
-"sexy",
-"sfr",
-"shangrila",
-"sharp",
-"shaw",
-"shell",
-"shia",
-"shiksha",
-"shoes",
-"shop",
-"shopping",
-"shouji",
-"show",
-"showtime",
-"shriram",
-"silk",
-"sina",
-"singles",
-"site",
-"ski",
-"skin",
-"sky",
-"skype",
-"sling",
-"smart",
-"smile",
-"sncf",
-"soccer",
-"social",
-"softbank",
-"software",
-"sohu",
-"solar",
-"solutions",
-"song",
-"sony",
-"soy",
-"spa",
-"space",
-"sport",
-"spot",
-"spreadbetting",
-"srl",
-"stada",
-"staples",
-"star",
-"statebank",
-"statefarm",
-"stc",
-"stcgroup",
-"stockholm",
-"storage",
-"store",
-"stream",
-"studio",
-"study",
-"style",
-"sucks",
-"supplies",
-"supply",
-"support",
-"surf",
-"surgery",
-"suzuki",
-"swatch",
-"swiftcover",
-"swiss",
-"sydney",
-"symantec",
-"systems",
-"tab",
-"taipei",
-"talk",
-"taobao",
-"target",
-"tatamotors",
-"tatar",
-"tattoo",
-"tax",
-"taxi",
-"tci",
-"tdk",
-"team",
-"tech",
-"technology",
-"temasek",
-"tennis",
-"teva",
-"thd",
-"theater",
-"theatre",
-"tiaa",
-"tickets",
-"tienda",
-"tiffany",
-"tips",
-"tires",
-"tirol",
-"tjmaxx",
-"tjx",
-"tkmaxx",
-"tmall",
-"today",
-"tokyo",
-"tools",
-"top",
-"toray",
-"toshiba",
-"total",
-"tours",
-"town",
-"toyota",
-"toys",
-"trade",
-"trading",
-"training",
-"travel",
-"travelchannel",
-"travelers",
-"travelersinsurance",
-"trust",
-"trv",
-"tube",
-"tui",
-"tunes",
-"tushu",
-"tvs",
-"ubank",
-"ubs",
-"unicom",
-"university",
-"uno",
-"uol",
-"ups",
-"vacations",
-"vana",
-"vanguard",
-"vegas",
-"ventures",
-"verisign",
-"versicherung",
-"vet",
-"viajes",
-"video",
-"vig",
-"viking",
-"villas",
-"vin",
-"vip",
-"virgin",
-"visa",
-"vision",
-"viva",
-"vivo",
-"vlaanderen",
-"vodka",
-"volkswagen",
-"volvo",
-"vote",
-"voting",
-"voto",
-"voyage",
-"vuelos",
-"wales",
-"walmart",
-"walter",
-"wang",
-"wanggou",
-"watch",
-"watches",
-"weather",
-"weatherchannel",
-"webcam",
-"weber",
-"website",
-"wed",
-"wedding",
-"weibo",
-"weir",
-"whoswho",
-"wien",
-"wiki",
-"williamhill",
-"win",
-"windows",
-"wine",
-"winners",
-"wme",
-"wolterskluwer",
-"woodside",
-"work",
-"works",
-"world",
-"wow",
-"wtc",
-"wtf",
-"xbox",
-"xerox",
-"xfinity",
-"xihuan",
-"xin",
-"कॉम",
-"セール",
-"佛山",
-"慈善",
-"集团",
-"在线",
-"大众汽车",
-"点看",
-"คอม",
-"八卦",
-"موقع",
-"公益",
-"公司",
-"香格里拉",
-"网站",
-"移动",
-"我爱你",
-"москва",
-"католик",
-"онлайн",
-"сайт",
-"联通",
-"קום",
-"时尚",
-"微博",
-"淡马锡",
-"ファッション",
-"орг",
-"नेट",
-"ストア",
-"アマゾン",
-"삼성",
-"商标",
-"商店",
-"商城",
-"дети",
-"ポイント",
-"新闻",
-"工行",
-"家電",
-"كوم",
-"中文网",
-"中信",
-"娱乐",
-"谷歌",
-"電訊盈科",
-"购物",
-"クラウド",
-"通販",
-"网店",
-"संगठन",
-"餐厅",
-"网络",
-"ком",
-"亚马逊",
-"诺基亚",
-"食品",
-"飞利浦",
-"手表",
-"手机",
-"ارامكو",
-"العليان",
-"اتصالات",
-"بازار",
-"ابوظبي",
-"كاثوليك",
-"همراه",
-"닷컴",
-"政府",
-"شبكة",
-"بيتك",
-"عرب",
-"机构",
-"组织机构",
-"健康",
-"招聘",
-"рус",
-"珠宝",
-"大拿",
-"みんな",
-"グーグル",
-"世界",
-"書籍",
-"网址",
-"닷넷",
-"コム",
-"天主教",
-"游戏",
-"vermögensberater",
-"vermögensberatung",
-"企业",
-"信息",
-"嘉里大酒店",
-"嘉里",
-"广东",
-"政务",
-"xyz",
-"yachts",
-"yahoo",
-"yamaxun",
-"yandex",
-"yodobashi",
-"yoga",
-"yokohama",
-"you",
-"youtube",
-"yun",
-"zappos",
-"zara",
-"zero",
-"zip",
-"zone",
-"zuerich",
-"cc.ua",
-"inf.ua",
-"ltd.ua",
-"adobeaemcloud.com",
-"adobeaemcloud.net",
-"*.dev.adobeaemcloud.com",
-"beep.pl",
-"barsy.ca",
-"*.compute.estate",
-"*.alces.network",
-"altervista.org",
-"alwaysdata.net",
-"cloudfront.net",
-"*.compute.amazonaws.com",
-"*.compute-1.amazonaws.com",
-"*.compute.amazonaws.com.cn",
-"us-east-1.amazonaws.com",
-"cn-north-1.eb.amazonaws.com.cn",
-"cn-northwest-1.eb.amazonaws.com.cn",
-"elasticbeanstalk.com",
-"ap-northeast-1.elasticbeanstalk.com",
-"ap-northeast-2.elasticbeanstalk.com",
-"ap-northeast-3.elasticbeanstalk.com",
-"ap-south-1.elasticbeanstalk.com",
-"ap-southeast-1.elasticbeanstalk.com",
-"ap-southeast-2.elasticbeanstalk.com",
-"ca-central-1.elasticbeanstalk.com",
-"eu-central-1.elasticbeanstalk.com",
-"eu-west-1.elasticbeanstalk.com",
-"eu-west-2.elasticbeanstalk.com",
-"eu-west-3.elasticbeanstalk.com",
-"sa-east-1.elasticbeanstalk.com",
-"us-east-1.elasticbeanstalk.com",
-"us-east-2.elasticbeanstalk.com",
-"us-gov-west-1.elasticbeanstalk.com",
-"us-west-1.elasticbeanstalk.com",
-"us-west-2.elasticbeanstalk.com",
-"*.elb.amazonaws.com",
-"*.elb.amazonaws.com.cn",
-"s3.amazonaws.com",
-"s3-ap-northeast-1.amazonaws.com",
-"s3-ap-northeast-2.amazonaws.com",
-"s3-ap-south-1.amazonaws.com",
-"s3-ap-southeast-1.amazonaws.com",
-"s3-ap-southeast-2.amazonaws.com",
-"s3-ca-central-1.amazonaws.com",
-"s3-eu-central-1.amazonaws.com",
-"s3-eu-west-1.amazonaws.com",
-"s3-eu-west-2.amazonaws.com",
-"s3-eu-west-3.amazonaws.com",
-"s3-external-1.amazonaws.com",
-"s3-fips-us-gov-west-1.amazonaws.com",
-"s3-sa-east-1.amazonaws.com",
-"s3-us-gov-west-1.amazonaws.com",
-"s3-us-east-2.amazonaws.com",
-"s3-us-west-1.amazonaws.com",
-"s3-us-west-2.amazonaws.com",
-"s3.ap-northeast-2.amazonaws.com",
-"s3.ap-south-1.amazonaws.com",
-"s3.cn-north-1.amazonaws.com.cn",
-"s3.ca-central-1.amazonaws.com",
-"s3.eu-central-1.amazonaws.com",
-"s3.eu-west-2.amazonaws.com",
-"s3.eu-west-3.amazonaws.com",
-"s3.us-east-2.amazonaws.com",
-"s3.dualstack.ap-northeast-1.amazonaws.com",
-"s3.dualstack.ap-northeast-2.amazonaws.com",
-"s3.dualstack.ap-south-1.amazonaws.com",
-"s3.dualstack.ap-southeast-1.amazonaws.com",
-"s3.dualstack.ap-southeast-2.amazonaws.com",
-"s3.dualstack.ca-central-1.amazonaws.com",
-"s3.dualstack.eu-central-1.amazonaws.com",
-"s3.dualstack.eu-west-1.amazonaws.com",
-"s3.dualstack.eu-west-2.amazonaws.com",
-"s3.dualstack.eu-west-3.amazonaws.com",
-"s3.dualstack.sa-east-1.amazonaws.com",
-"s3.dualstack.us-east-1.amazonaws.com",
-"s3.dualstack.us-east-2.amazonaws.com",
-"s3-website-us-east-1.amazonaws.com",
-"s3-website-us-west-1.amazonaws.com",
-"s3-website-us-west-2.amazonaws.com",
-"s3-website-ap-northeast-1.amazonaws.com",
-"s3-website-ap-southeast-1.amazonaws.com",
-"s3-website-ap-southeast-2.amazonaws.com",
-"s3-website-eu-west-1.amazonaws.com",
-"s3-website-sa-east-1.amazonaws.com",
-"s3-website.ap-northeast-2.amazonaws.com",
-"s3-website.ap-south-1.amazonaws.com",
-"s3-website.ca-central-1.amazonaws.com",
-"s3-website.eu-central-1.amazonaws.com",
-"s3-website.eu-west-2.amazonaws.com",
-"s3-website.eu-west-3.amazonaws.com",
-"s3-website.us-east-2.amazonaws.com",
-"amsw.nl",
-"t3l3p0rt.net",
-"tele.amune.org",
-"apigee.io",
-"on-aptible.com",
-"user.aseinet.ne.jp",
-"gv.vc",
-"d.gv.vc",
-"user.party.eus",
-"pimienta.org",
-"poivron.org",
-"potager.org",
-"sweetpepper.org",
-"myasustor.com",
-"myfritz.net",
-"*.awdev.ca",
-"*.advisor.ws",
-"b-data.io",
-"backplaneapp.io",
-"balena-devices.com",
-"app.banzaicloud.io",
-"betainabox.com",
-"bnr.la",
-"blackbaudcdn.net",
-"boomla.net",
-"boxfuse.io",
-"square7.ch",
-"bplaced.com",
-"bplaced.de",
-"square7.de",
-"bplaced.net",
-"square7.net",
-"browsersafetymark.io",
-"uk0.bigv.io",
-"dh.bytemark.co.uk",
-"vm.bytemark.co.uk",
-"mycd.eu",
-"carrd.co",
-"crd.co",
-"uwu.ai",
-"ae.org",
-"ar.com",
-"br.com",
-"cn.com",
-"com.de",
-"com.se",
-"de.com",
-"eu.com",
-"gb.com",
-"gb.net",
-"hu.com",
-"hu.net",
-"jp.net",
-"jpn.com",
-"kr.com",
-"mex.com",
-"no.com",
-"qc.com",
-"ru.com",
-"sa.com",
-"se.net",
-"uk.com",
-"uk.net",
-"us.com",
-"uy.com",
-"za.bz",
-"za.com",
-"africa.com",
-"gr.com",
-"in.net",
-"us.org",
-"co.com",
-"c.la",
-"certmgr.org",
-"xenapponazure.com",
-"discourse.group",
-"discourse.team",
-"virtueeldomein.nl",
-"cleverapps.io",
-"*.lcl.dev",
-"*.stg.dev",
-"c66.me",
-"cloud66.ws",
-"cloud66.zone",
-"jdevcloud.com",
-"wpdevcloud.com",
-"cloudaccess.host",
-"freesite.host",
-"cloudaccess.net",
-"cloudcontrolled.com",
-"cloudcontrolapp.com",
-"cloudera.site",
-"trycloudflare.com",
-"workers.dev",
-"wnext.app",
-"co.ca",
-"*.otap.co",
-"co.cz",
-"c.cdn77.org",
-"cdn77-ssl.net",
-"r.cdn77.net",
-"rsc.cdn77.org",
-"ssl.origin.cdn77-secure.org",
-"cloudns.asia",
-"cloudns.biz",
-"cloudns.club",
-"cloudns.cc",
-"cloudns.eu",
-"cloudns.in",
-"cloudns.info",
-"cloudns.org",
-"cloudns.pro",
-"cloudns.pw",
-"cloudns.us",
-"cloudeity.net",
-"cnpy.gdn",
-"co.nl",
-"co.no",
-"webhosting.be",
-"hosting-cluster.nl",
-"ac.ru",
-"edu.ru",
-"gov.ru",
-"int.ru",
-"mil.ru",
-"test.ru",
-"dyn.cosidns.de",
-"dynamisches-dns.de",
-"dnsupdater.de",
-"internet-dns.de",
-"l-o-g-i-n.de",
-"dynamic-dns.info",
-"feste-ip.net",
-"knx-server.net",
-"static-access.net",
-"realm.cz",
-"*.cryptonomic.net",
-"cupcake.is",
-"*.customer-oci.com",
-"*.oci.customer-oci.com",
-"*.ocp.customer-oci.com",
-"*.ocs.customer-oci.com",
-"cyon.link",
-"cyon.site",
-"daplie.me",
-"localhost.daplie.me",
-"dattolocal.com",
-"dattorelay.com",
-"dattoweb.com",
-"mydatto.com",
-"dattolocal.net",
-"mydatto.net",
-"biz.dk",
-"co.dk",
-"firm.dk",
-"reg.dk",
-"store.dk",
-"*.dapps.earth",
-"*.bzz.dapps.earth",
-"builtwithdark.com",
-"edgestack.me",
-"debian.net",
-"dedyn.io",
-"dnshome.de",
-"online.th",
-"shop.th",
-"drayddns.com",
-"dreamhosters.com",
-"mydrobo.com",
-"drud.io",
-"drud.us",
-"duckdns.org",
-"dy.fi",
-"tunk.org",
-"dyndns-at-home.com",
-"dyndns-at-work.com",
-"dyndns-blog.com",
-"dyndns-free.com",
-"dyndns-home.com",
-"dyndns-ip.com",
-"dyndns-mail.com",
-"dyndns-office.com",
-"dyndns-pics.com",
-"dyndns-remote.com",
-"dyndns-server.com",
-"dyndns-web.com",
-"dyndns-wiki.com",
-"dyndns-work.com",
-"dyndns.biz",
-"dyndns.info",
-"dyndns.org",
-"dyndns.tv",
-"at-band-camp.net",
-"ath.cx",
-"barrel-of-knowledge.info",
-"barrell-of-knowledge.info",
-"better-than.tv",
-"blogdns.com",
-"blogdns.net",
-"blogdns.org",
-"blogsite.org",
-"boldlygoingnowhere.org",
-"broke-it.net",
-"buyshouses.net",
-"cechire.com",
-"dnsalias.com",
-"dnsalias.net",
-"dnsalias.org",
-"dnsdojo.com",
-"dnsdojo.net",
-"dnsdojo.org",
-"does-it.net",
-"doesntexist.com",
-"doesntexist.org",
-"dontexist.com",
-"dontexist.net",
-"dontexist.org",
-"doomdns.com",
-"doomdns.org",
-"dvrdns.org",
-"dyn-o-saur.com",
-"dynalias.com",
-"dynalias.net",
-"dynalias.org",
-"dynathome.net",
-"dyndns.ws",
-"endofinternet.net",
-"endofinternet.org",
-"endoftheinternet.org",
-"est-a-la-maison.com",
-"est-a-la-masion.com",
-"est-le-patron.com",
-"est-mon-blogueur.com",
-"for-better.biz",
-"for-more.biz",
-"for-our.info",
-"for-some.biz",
-"for-the.biz",
-"forgot.her.name",
-"forgot.his.name",
-"from-ak.com",
-"from-al.com",
-"from-ar.com",
-"from-az.net",
-"from-ca.com",
-"from-co.net",
-"from-ct.com",
-"from-dc.com",
-"from-de.com",
-"from-fl.com",
-"from-ga.com",
-"from-hi.com",
-"from-ia.com",
-"from-id.com",
-"from-il.com",
-"from-in.com",
-"from-ks.com",
-"from-ky.com",
-"from-la.net",
-"from-ma.com",
-"from-md.com",
-"from-me.org",
-"from-mi.com",
-"from-mn.com",
-"from-mo.com",
-"from-ms.com",
-"from-mt.com",
-"from-nc.com",
-"from-nd.com",
-"from-ne.com",
-"from-nh.com",
-"from-nj.com",
-"from-nm.com",
-"from-nv.com",
-"from-ny.net",
-"from-oh.com",
-"from-ok.com",
-"from-or.com",
-"from-pa.com",
-"from-pr.com",
-"from-ri.com",
-"from-sc.com",
-"from-sd.com",
-"from-tn.com",
-"from-tx.com",
-"from-ut.com",
-"from-va.com",
-"from-vt.com",
-"from-wa.com",
-"from-wi.com",
-"from-wv.com",
-"from-wy.com",
-"ftpaccess.cc",
-"fuettertdasnetz.de",
-"game-host.org",
-"game-server.cc",
-"getmyip.com",
-"gets-it.net",
-"go.dyndns.org",
-"gotdns.com",
-"gotdns.org",
-"groks-the.info",
-"groks-this.info",
-"ham-radio-op.net",
-"here-for-more.info",
-"hobby-site.com",
-"hobby-site.org",
-"home.dyndns.org",
-"homedns.org",
-"homeftp.net",
-"homeftp.org",
-"homeip.net",
-"homelinux.com",
-"homelinux.net",
-"homelinux.org",
-"homeunix.com",
-"homeunix.net",
-"homeunix.org",
-"iamallama.com",
-"in-the-band.net",
-"is-a-anarchist.com",
-"is-a-blogger.com",
-"is-a-bookkeeper.com",
-"is-a-bruinsfan.org",
-"is-a-bulls-fan.com",
-"is-a-candidate.org",
-"is-a-caterer.com",
-"is-a-celticsfan.org",
-"is-a-chef.com",
-"is-a-chef.net",
-"is-a-chef.org",
-"is-a-conservative.com",
-"is-a-cpa.com",
-"is-a-cubicle-slave.com",
-"is-a-democrat.com",
-"is-a-designer.com",
-"is-a-doctor.com",
-"is-a-financialadvisor.com",
-"is-a-geek.com",
-"is-a-geek.net",
-"is-a-geek.org",
-"is-a-green.com",
-"is-a-guru.com",
-"is-a-hard-worker.com",
-"is-a-hunter.com",
-"is-a-knight.org",
-"is-a-landscaper.com",
-"is-a-lawyer.com",
-"is-a-liberal.com",
-"is-a-libertarian.com",
-"is-a-linux-user.org",
-"is-a-llama.com",
-"is-a-musician.com",
-"is-a-nascarfan.com",
-"is-a-nurse.com",
-"is-a-painter.com",
-"is-a-patsfan.org",
-"is-a-personaltrainer.com",
-"is-a-photographer.com",
-"is-a-player.com",
-"is-a-republican.com",
-"is-a-rockstar.com",
-"is-a-socialist.com",
-"is-a-soxfan.org",
-"is-a-student.com",
-"is-a-teacher.com",
-"is-a-techie.com",
-"is-a-therapist.com",
-"is-an-accountant.com",
-"is-an-actor.com",
-"is-an-actress.com",
-"is-an-anarchist.com",
-"is-an-artist.com",
-"is-an-engineer.com",
-"is-an-entertainer.com",
-"is-by.us",
-"is-certified.com",
-"is-found.org",
-"is-gone.com",
-"is-into-anime.com",
-"is-into-cars.com",
-"is-into-cartoons.com",
-"is-into-games.com",
-"is-leet.com",
-"is-lost.org",
-"is-not-certified.com",
-"is-saved.org",
-"is-slick.com",
-"is-uberleet.com",
-"is-very-bad.org",
-"is-very-evil.org",
-"is-very-good.org",
-"is-very-nice.org",
-"is-very-sweet.org",
-"is-with-theband.com",
-"isa-geek.com",
-"isa-geek.net",
-"isa-geek.org",
-"isa-hockeynut.com",
-"issmarterthanyou.com",
-"isteingeek.de",
-"istmein.de",
-"kicks-ass.net",
-"kicks-ass.org",
-"knowsitall.info",
-"land-4-sale.us",
-"lebtimnetz.de",
-"leitungsen.de",
-"likes-pie.com",
-"likescandy.com",
-"merseine.nu",
-"mine.nu",
-"misconfused.org",
-"mypets.ws",
-"myphotos.cc",
-"neat-url.com",
-"office-on-the.net",
-"on-the-web.tv",
-"podzone.net",
-"podzone.org",
-"readmyblog.org",
-"saves-the-whales.com",
-"scrapper-site.net",
-"scrapping.cc",
-"selfip.biz",
-"selfip.com",
-"selfip.info",
-"selfip.net",
-"selfip.org",
-"sells-for-less.com",
-"sells-for-u.com",
-"sells-it.net",
-"sellsyourhome.org",
-"servebbs.com",
-"servebbs.net",
-"servebbs.org",
-"serveftp.net",
-"serveftp.org",
-"servegame.org",
-"shacknet.nu",
-"simple-url.com",
-"space-to-rent.com",
-"stuff-4-sale.org",
-"stuff-4-sale.us",
-"teaches-yoga.com",
-"thruhere.net",
-"traeumtgerade.de",
-"webhop.biz",
-"webhop.info",
-"webhop.net",
-"webhop.org",
-"worse-than.tv",
-"writesthisblog.com",
-"ddnss.de",
-"dyn.ddnss.de",
-"dyndns.ddnss.de",
-"dyndns1.de",
-"dyn-ip24.de",
-"home-webserver.de",
-"dyn.home-webserver.de",
-"myhome-server.de",
-"ddnss.org",
-"definima.net",
-"definima.io",
-"bci.dnstrace.pro",
-"ddnsfree.com",
-"ddnsgeek.com",
-"giize.com",
-"gleeze.com",
-"kozow.com",
-"loseyourip.com",
-"ooguy.com",
-"theworkpc.com",
-"casacam.net",
-"dynu.net",
-"accesscam.org",
-"camdvr.org",
-"freeddns.org",
-"mywire.org",
-"webredirect.org",
-"myddns.rocks",
-"blogsite.xyz",
-"dynv6.net",
-"e4.cz",
-"en-root.fr",
-"mytuleap.com",
-"onred.one",
-"staging.onred.one",
-"enonic.io",
-"customer.enonic.io",
-"eu.org",
-"al.eu.org",
-"asso.eu.org",
-"at.eu.org",
-"au.eu.org",
-"be.eu.org",
-"bg.eu.org",
-"ca.eu.org",
-"cd.eu.org",
-"ch.eu.org",
-"cn.eu.org",
-"cy.eu.org",
-"cz.eu.org",
-"de.eu.org",
-"dk.eu.org",
-"edu.eu.org",
-"ee.eu.org",
-"es.eu.org",
-"fi.eu.org",
-"fr.eu.org",
-"gr.eu.org",
-"hr.eu.org",
-"hu.eu.org",
-"ie.eu.org",
-"il.eu.org",
-"in.eu.org",
-"int.eu.org",
-"is.eu.org",
-"it.eu.org",
-"jp.eu.org",
-"kr.eu.org",
-"lt.eu.org",
-"lu.eu.org",
-"lv.eu.org",
-"mc.eu.org",
-"me.eu.org",
-"mk.eu.org",
-"mt.eu.org",
-"my.eu.org",
-"net.eu.org",
-"ng.eu.org",
-"nl.eu.org",
-"no.eu.org",
-"nz.eu.org",
-"paris.eu.org",
-"pl.eu.org",
-"pt.eu.org",
-"q-a.eu.org",
-"ro.eu.org",
-"ru.eu.org",
-"se.eu.org",
-"si.eu.org",
-"sk.eu.org",
-"tr.eu.org",
-"uk.eu.org",
-"us.eu.org",
-"eu-1.evennode.com",
-"eu-2.evennode.com",
-"eu-3.evennode.com",
-"eu-4.evennode.com",
-"us-1.evennode.com",
-"us-2.evennode.com",
-"us-3.evennode.com",
-"us-4.evennode.com",
-"twmail.cc",
-"twmail.net",
-"twmail.org",
-"mymailer.com.tw",
-"url.tw",
-"apps.fbsbx.com",
-"ru.net",
-"adygeya.ru",
-"bashkiria.ru",
-"bir.ru",
-"cbg.ru",
-"com.ru",
-"dagestan.ru",
-"grozny.ru",
-"kalmykia.ru",
-"kustanai.ru",
-"marine.ru",
-"mordovia.ru",
-"msk.ru",
-"mytis.ru",
-"nalchik.ru",
-"nov.ru",
-"pyatigorsk.ru",
-"spb.ru",
-"vladikavkaz.ru",
-"vladimir.ru",
-"abkhazia.su",
-"adygeya.su",
-"aktyubinsk.su",
-"arkhangelsk.su",
-"armenia.su",
-"ashgabad.su",
-"azerbaijan.su",
-"balashov.su",
-"bashkiria.su",
-"bryansk.su",
-"bukhara.su",
-"chimkent.su",
-"dagestan.su",
-"east-kazakhstan.su",
-"exnet.su",
-"georgia.su",
-"grozny.su",
-"ivanovo.su",
-"jambyl.su",
-"kalmykia.su",
-"kaluga.su",
-"karacol.su",
-"karaganda.su",
-"karelia.su",
-"khakassia.su",
-"krasnodar.su",
-"kurgan.su",
-"kustanai.su",
-"lenug.su",
-"mangyshlak.su",
-"mordovia.su",
-"msk.su",
-"murmansk.su",
-"nalchik.su",
-"navoi.su",
-"north-kazakhstan.su",
-"nov.su",
-"obninsk.su",
-"penza.su",
-"pokrovsk.su",
-"sochi.su",
-"spb.su",
-"tashkent.su",
-"termez.su",
-"togliatti.su",
-"troitsk.su",
-"tselinograd.su",
-"tula.su",
-"tuva.su",
-"vladikavkaz.su",
-"vladimir.su",
-"vologda.su",
-"channelsdvr.net",
-"u.channelsdvr.net",
-"fastly-terrarium.com",
-"fastlylb.net",
-"map.fastlylb.net",
-"freetls.fastly.net",
-"map.fastly.net",
-"a.prod.fastly.net",
-"global.prod.fastly.net",
-"a.ssl.fastly.net",
-"b.ssl.fastly.net",
-"global.ssl.fastly.net",
-"fastpanel.direct",
-"fastvps-server.com",
-"fhapp.xyz",
-"fedorainfracloud.org",
-"fedorapeople.org",
-"cloud.fedoraproject.org",
-"app.os.fedoraproject.org",
-"app.os.stg.fedoraproject.org",
-"mydobiss.com",
-"filegear.me",
-"filegear-au.me",
-"filegear-de.me",
-"filegear-gb.me",
-"filegear-ie.me",
-"filegear-jp.me",
-"filegear-sg.me",
-"firebaseapp.com",
-"flynnhub.com",
-"flynnhosting.net",
-"0e.vc",
-"freebox-os.com",
-"freeboxos.com",
-"fbx-os.fr",
-"fbxos.fr",
-"freebox-os.fr",
-"freeboxos.fr",
-"freedesktop.org",
-"*.futurecms.at",
-"*.ex.futurecms.at",
-"*.in.futurecms.at",
-"futurehosting.at",
-"futuremailing.at",
-"*.ex.ortsinfo.at",
-"*.kunden.ortsinfo.at",
-"*.statics.cloud",
-"service.gov.uk",
-"gehirn.ne.jp",
-"usercontent.jp",
-"gentapps.com",
-"lab.ms",
-"github.io",
-"githubusercontent.com",
-"gitlab.io",
-"glitch.me",
-"lolipop.io",
-"cloudapps.digital",
-"london.cloudapps.digital",
-"homeoffice.gov.uk",
-"ro.im",
-"shop.ro",
-"goip.de",
-"run.app",
-"a.run.app",
-"web.app",
-"*.0emm.com",
-"appspot.com",
-"*.r.appspot.com",
-"blogspot.ae",
-"blogspot.al",
-"blogspot.am",
-"blogspot.ba",
-"blogspot.be",
-"blogspot.bg",
-"blogspot.bj",
-"blogspot.ca",
-"blogspot.cf",
-"blogspot.ch",
-"blogspot.cl",
-"blogspot.co.at",
-"blogspot.co.id",
-"blogspot.co.il",
-"blogspot.co.ke",
-"blogspot.co.nz",
-"blogspot.co.uk",
-"blogspot.co.za",
-"blogspot.com",
-"blogspot.com.ar",
-"blogspot.com.au",
-"blogspot.com.br",
-"blogspot.com.by",
-"blogspot.com.co",
-"blogspot.com.cy",
-"blogspot.com.ee",
-"blogspot.com.eg",
-"blogspot.com.es",
-"blogspot.com.mt",
-"blogspot.com.ng",
-"blogspot.com.tr",
-"blogspot.com.uy",
-"blogspot.cv",
-"blogspot.cz",
-"blogspot.de",
-"blogspot.dk",
-"blogspot.fi",
-"blogspot.fr",
-"blogspot.gr",
-"blogspot.hk",
-"blogspot.hr",
-"blogspot.hu",
-"blogspot.ie",
-"blogspot.in",
-"blogspot.is",
-"blogspot.it",
-"blogspot.jp",
-"blogspot.kr",
-"blogspot.li",
-"blogspot.lt",
-"blogspot.lu",
-"blogspot.md",
-"blogspot.mk",
-"blogspot.mr",
-"blogspot.mx",
-"blogspot.my",
-"blogspot.nl",
-"blogspot.no",
-"blogspot.pe",
-"blogspot.pt",
-"blogspot.qa",
-"blogspot.re",
-"blogspot.ro",
-"blogspot.rs",
-"blogspot.ru",
-"blogspot.se",
-"blogspot.sg",
-"blogspot.si",
-"blogspot.sk",
-"blogspot.sn",
-"blogspot.td",
-"blogspot.tw",
-"blogspot.ug",
-"blogspot.vn",
-"cloudfunctions.net",
-"cloud.goog",
-"codespot.com",
-"googleapis.com",
-"googlecode.com",
-"pagespeedmobilizer.com",
-"publishproxy.com",
-"withgoogle.com",
-"withyoutube.com",
-"awsmppl.com",
-"fin.ci",
-"free.hr",
-"caa.li",
-"ua.rs",
-"conf.se",
-"hs.zone",
-"hs.run",
-"hashbang.sh",
-"hasura.app",
-"hasura-app.io",
-"hepforge.org",
-"herokuapp.com",
-"herokussl.com",
-"myravendb.com",
-"ravendb.community",
-"ravendb.me",
-"development.run",
-"ravendb.run",
-"bpl.biz",
-"orx.biz",
-"ng.city",
-"biz.gl",
-"ng.ink",
-"col.ng",
-"firm.ng",
-"gen.ng",
-"ltd.ng",
-"ngo.ng",
-"ng.school",
-"sch.so",
-"häkkinen.fi",
-"*.moonscale.io",
-"moonscale.net",
-"iki.fi",
-"dyn-berlin.de",
-"in-berlin.de",
-"in-brb.de",
-"in-butter.de",
-"in-dsl.de",
-"in-dsl.net",
-"in-dsl.org",
-"in-vpn.de",
-"in-vpn.net",
-"in-vpn.org",
-"biz.at",
-"info.at",
-"info.cx",
-"ac.leg.br",
-"al.leg.br",
-"am.leg.br",
-"ap.leg.br",
-"ba.leg.br",
-"ce.leg.br",
-"df.leg.br",
-"es.leg.br",
-"go.leg.br",
-"ma.leg.br",
-"mg.leg.br",
-"ms.leg.br",
-"mt.leg.br",
-"pa.leg.br",
-"pb.leg.br",
-"pe.leg.br",
-"pi.leg.br",
-"pr.leg.br",
-"rj.leg.br",
-"rn.leg.br",
-"ro.leg.br",
-"rr.leg.br",
-"rs.leg.br",
-"sc.leg.br",
-"se.leg.br",
-"sp.leg.br",
-"to.leg.br",
-"pixolino.com",
-"ipifony.net",
-"mein-iserv.de",
-"test-iserv.de",
-"iserv.dev",
-"iobb.net",
-"myjino.ru",
-"*.hosting.myjino.ru",
-"*.landing.myjino.ru",
-"*.spectrum.myjino.ru",
-"*.vps.myjino.ru",
-"*.triton.zone",
-"*.cns.joyent.com",
-"js.org",
-"kaas.gg",
-"khplay.nl",
-"keymachine.de",
-"kinghost.net",
-"uni5.net",
-"knightpoint.systems",
-"oya.to",
-"co.krd",
-"edu.krd",
-"git-repos.de",
-"lcube-server.de",
-"svn-repos.de",
-"leadpages.co",
-"lpages.co",
-"lpusercontent.com",
-"lelux.site",
-"co.business",
-"co.education",
-"co.events",
-"co.financial",
-"co.network",
-"co.place",
-"co.technology",
-"app.lmpm.com",
-"linkitools.space",
-"linkyard.cloud",
-"linkyard-cloud.ch",
-"members.linode.com",
-"nodebalancer.linode.com",
-"we.bs",
-"loginline.app",
-"loginline.dev",
-"loginline.io",
-"loginline.services",
-"loginline.site",
-"krasnik.pl",
-"leczna.pl",
-"lubartow.pl",
-"lublin.pl",
-"poniatowa.pl",
-"swidnik.pl",
-"uklugs.org",
-"glug.org.uk",
-"lug.org.uk",
-"lugs.org.uk",
-"barsy.bg",
-"barsy.co.uk",
-"barsyonline.co.uk",
-"barsycenter.com",
-"barsyonline.com",
-"barsy.club",
-"barsy.de",
-"barsy.eu",
-"barsy.in",
-"barsy.info",
-"barsy.io",
-"barsy.me",
-"barsy.menu",
-"barsy.mobi",
-"barsy.net",
-"barsy.online",
-"barsy.org",
-"barsy.pro",
-"barsy.pub",
-"barsy.shop",
-"barsy.site",
-"barsy.support",
-"barsy.uk",
-"*.magentosite.cloud",
-"mayfirst.info",
-"mayfirst.org",
-"hb.cldmail.ru",
-"miniserver.com",
-"memset.net",
-"cloud.metacentrum.cz",
-"custom.metacentrum.cz",
-"flt.cloud.muni.cz",
-"usr.cloud.muni.cz",
-"meteorapp.com",
-"eu.meteorapp.com",
-"co.pl",
-"azurecontainer.io",
-"azurewebsites.net",
-"azure-mobile.net",
-"cloudapp.net",
-"mozilla-iot.org",
-"bmoattachments.org",
-"net.ru",
-"org.ru",
-"pp.ru",
-"ui.nabu.casa",
-"pony.club",
-"of.fashion",
-"on.fashion",
-"of.football",
-"in.london",
-"of.london",
-"for.men",
-"and.mom",
-"for.mom",
-"for.one",
-"for.sale",
-"of.work",
-"to.work",
-"nctu.me",
-"bitballoon.com",
-"netlify.com",
-"4u.com",
-"ngrok.io",
-"nh-serv.co.uk",
-"nfshost.com",
-"dnsking.ch",
-"mypi.co",
-"n4t.co",
-"001www.com",
-"ddnslive.com",
-"myiphost.com",
-"forumz.info",
-"16-b.it",
-"32-b.it",
-"64-b.it",
-"soundcast.me",
-"tcp4.me",
-"dnsup.net",
-"hicam.net",
-"now-dns.net",
-"ownip.net",
-"vpndns.net",
-"dynserv.org",
-"now-dns.org",
-"x443.pw",
-"now-dns.top",
-"ntdll.top",
-"freeddns.us",
-"crafting.xyz",
-"zapto.xyz",
-"nsupdate.info",
-"nerdpol.ovh",
-"blogsyte.com",
-"brasilia.me",
-"cable-modem.org",
-"ciscofreak.com",
-"collegefan.org",
-"couchpotatofries.org",
-"damnserver.com",
-"ddns.me",
-"ditchyourip.com",
-"dnsfor.me",
-"dnsiskinky.com",
-"dvrcam.info",
-"dynns.com",
-"eating-organic.net",
-"fantasyleague.cc",
-"geekgalaxy.com",
-"golffan.us",
-"health-carereform.com",
-"homesecuritymac.com",
-"homesecuritypc.com",
-"hopto.me",
-"ilovecollege.info",
-"loginto.me",
-"mlbfan.org",
-"mmafan.biz",
-"myactivedirectory.com",
-"mydissent.net",
-"myeffect.net",
-"mymediapc.net",
-"mypsx.net",
-"mysecuritycamera.com",
-"mysecuritycamera.net",
-"mysecuritycamera.org",
-"net-freaks.com",
-"nflfan.org",
-"nhlfan.net",
-"no-ip.ca",
-"no-ip.co.uk",
-"no-ip.net",
-"noip.us",
-"onthewifi.com",
-"pgafan.net",
-"point2this.com",
-"pointto.us",
-"privatizehealthinsurance.net",
-"quicksytes.com",
-"read-books.org",
-"securitytactics.com",
-"serveexchange.com",
-"servehumour.com",
-"servep2p.com",
-"servesarcasm.com",
-"stufftoread.com",
-"ufcfan.org",
-"unusualperson.com",
-"workisboring.com",
-"3utilities.com",
-"bounceme.net",
-"ddns.net",
-"ddnsking.com",
-"gotdns.ch",
-"hopto.org",
-"myftp.biz",
-"myftp.org",
-"myvnc.com",
-"no-ip.biz",
-"no-ip.info",
-"no-ip.org",
-"noip.me",
-"redirectme.net",
-"servebeer.com",
-"serveblog.net",
-"servecounterstrike.com",
-"serveftp.com",
-"servegame.com",
-"servehalflife.com",
-"servehttp.com",
-"serveirc.com",
-"serveminecraft.net",
-"servemp3.com",
-"servepics.com",
-"servequake.com",
-"sytes.net",
-"webhop.me",
-"zapto.org",
-"stage.nodeart.io",
-"nodum.co",
-"nodum.io",
-"pcloud.host",
-"nyc.mn",
-"nom.ae",
-"nom.af",
-"nom.ai",
-"nom.al",
-"nym.by",
-"nom.bz",
-"nym.bz",
-"nom.cl",
-"nym.ec",
-"nom.gd",
-"nom.ge",
-"nom.gl",
-"nym.gr",
-"nom.gt",
-"nym.gy",
-"nym.hk",
-"nom.hn",
-"nym.ie",
-"nom.im",
-"nom.ke",
-"nym.kz",
-"nym.la",
-"nym.lc",
-"nom.li",
-"nym.li",
-"nym.lt",
-"nym.lu",
-"nom.lv",
-"nym.me",
-"nom.mk",
-"nym.mn",
-"nym.mx",
-"nom.nu",
-"nym.nz",
-"nym.pe",
-"nym.pt",
-"nom.pw",
-"nom.qa",
-"nym.ro",
-"nom.rs",
-"nom.si",
-"nym.sk",
-"nom.st",
-"nym.su",
-"nym.sx",
-"nom.tj",
-"nym.tw",
-"nom.ug",
-"nom.uy",
-"nom.vc",
-"nom.vg",
-"static.observableusercontent.com",
-"cya.gg",
-"cloudycluster.net",
-"nid.io",
-"opencraft.hosting",
-"operaunite.com",
-"skygearapp.com",
-"outsystemscloud.com",
-"ownprovider.com",
-"own.pm",
-"ox.rs",
-"oy.lc",
-"pgfog.com",
-"pagefrontapp.com",
-"art.pl",
-"gliwice.pl",
-"krakow.pl",
-"poznan.pl",
-"wroc.pl",
-"zakopane.pl",
-"pantheonsite.io",
-"gotpantheon.com",
-"mypep.link",
-"perspecta.cloud",
-"on-web.fr",
-"*.platform.sh",
-"*.platformsh.site",
-"dyn53.io",
-"co.bn",
-"xen.prgmr.com",
-"priv.at",
-"prvcy.page",
-"*.dweb.link",
-"protonet.io",
-"chirurgiens-dentistes-en-france.fr",
-"byen.site",
-"pubtls.org",
-"qualifioapp.com",
-"qbuser.com",
-"instantcloud.cn",
-"ras.ru",
-"qa2.com",
-"qcx.io",
-"*.sys.qcx.io",
-"dev-myqnapcloud.com",
-"alpha-myqnapcloud.com",
-"myqnapcloud.com",
-"*.quipelements.com",
-"vapor.cloud",
-"vaporcloud.io",
-"rackmaze.com",
-"rackmaze.net",
-"*.on-k3s.io",
-"*.on-rancher.cloud",
-"*.on-rio.io",
-"readthedocs.io",
-"rhcloud.com",
-"app.render.com",
-"onrender.com",
-"repl.co",
-"repl.run",
-"resindevice.io",
-"devices.resinstaging.io",
-"hzc.io",
-"wellbeingzone.eu",
-"ptplus.fit",
-"wellbeingzone.co.uk",
-"git-pages.rit.edu",
-"sandcats.io",
-"logoip.de",
-"logoip.com",
-"schokokeks.net",
-"gov.scot",
-"scrysec.com",
-"firewall-gateway.com",
-"firewall-gateway.de",
-"my-gateway.de",
-"my-router.de",
-"spdns.de",
-"spdns.eu",
-"firewall-gateway.net",
-"my-firewall.org",
-"myfirewall.org",
-"spdns.org",
-"senseering.net",
-"biz.ua",
-"co.ua",
-"pp.ua",
-"shiftedit.io",
-"myshopblocks.com",
-"shopitsite.com",
-"mo-siemens.io",
-"1kapp.com",
-"appchizi.com",
-"applinzi.com",
-"sinaapp.com",
-"vipsinaapp.com",
-"siteleaf.net",
-"bounty-full.com",
-"alpha.bounty-full.com",
-"beta.bounty-full.com",
-"stackhero-network.com",
-"static.land",
-"dev.static.land",
-"sites.static.land",
-"apps.lair.io",
-"*.stolos.io",
-"spacekit.io",
-"customer.speedpartner.de",
-"api.stdlib.com",
-"storj.farm",
-"utwente.io",
-"soc.srcf.net",
-"user.srcf.net",
-"temp-dns.com",
-"applicationcloud.io",
-"scapp.io",
-"*.s5y.io",
-"*.sensiosite.cloud",
-"syncloud.it",
-"diskstation.me",
-"dscloud.biz",
-"dscloud.me",
-"dscloud.mobi",
-"dsmynas.com",
-"dsmynas.net",
-"dsmynas.org",
-"familyds.com",
-"familyds.net",
-"familyds.org",
-"i234.me",
-"myds.me",
-"synology.me",
-"vpnplus.to",
-"direct.quickconnect.to",
-"taifun-dns.de",
-"gda.pl",
-"gdansk.pl",
-"gdynia.pl",
-"med.pl",
-"sopot.pl",
-"edugit.org",
-"telebit.app",
-"telebit.io",
-"*.telebit.xyz",
-"gwiddle.co.uk",
-"thingdustdata.com",
-"cust.dev.thingdust.io",
-"cust.disrec.thingdust.io",
-"cust.prod.thingdust.io",
-"cust.testing.thingdust.io",
-"arvo.network",
-"azimuth.network",
-"bloxcms.com",
-"townnews-staging.com",
-"12hp.at",
-"2ix.at",
-"4lima.at",
-"lima-city.at",
-"12hp.ch",
-"2ix.ch",
-"4lima.ch",
-"lima-city.ch",
-"trafficplex.cloud",
-"de.cool",
-"12hp.de",
-"2ix.de",
-"4lima.de",
-"lima-city.de",
-"1337.pictures",
-"clan.rip",
-"lima-city.rocks",
-"webspace.rocks",
-"lima.zone",
-"*.transurl.be",
-"*.transurl.eu",
-"*.transurl.nl",
-"tuxfamily.org",
-"dd-dns.de",
-"diskstation.eu",
-"diskstation.org",
-"dray-dns.de",
-"draydns.de",
-"dyn-vpn.de",
-"dynvpn.de",
-"mein-vigor.de",
-"my-vigor.de",
-"my-wan.de",
-"syno-ds.de",
-"synology-diskstation.de",
-"synology-ds.de",
-"uber.space",
-"*.uberspace.de",
-"hk.com",
-"hk.org",
-"ltd.hk",
-"inc.hk",
-"virtualuser.de",
-"virtual-user.de",
-"urown.cloud",
-"dnsupdate.info",
-"lib.de.us",
-"2038.io",
-"router.management",
-"v-info.info",
-"voorloper.cloud",
-"v.ua",
-"wafflecell.com",
-"*.webhare.dev",
-"wedeploy.io",
-"wedeploy.me",
-"wedeploy.sh",
-"remotewd.com",
-"wmflabs.org",
-"myforum.community",
-"community-pro.de",
-"diskussionsbereich.de",
-"community-pro.net",
-"meinforum.net",
-"half.host",
-"xnbay.com",
-"u2.xnbay.com",
-"u2-local.xnbay.com",
-"cistron.nl",
-"demon.nl",
-"xs4all.space",
-"yandexcloud.net",
-"storage.yandexcloud.net",
-"website.yandexcloud.net",
-"official.academy",
-"yolasite.com",
-"ybo.faith",
-"yombo.me",
-"homelink.one",
-"ybo.party",
-"ybo.review",
-"ybo.science",
-"ybo.trade",
-"nohost.me",
-"noho.st",
-"za.net",
-"za.org",
-"now.sh",
-"bss.design",
-"basicserver.io",
-"virtualserver.io",
-"enterprisecloud.nu"
-]
-},{}],2:[function(require,module,exports){
-/*eslint no-var:0, prefer-arrow-callback: 0, object-shorthand: 0 */
-'use strict';
-
-
-var Punycode = require('punycode');
-
-
-var internals = {};
-
-
-//
-// Read rules from file.
-//
-internals.rules = require('./data/rules.json').map(function (rule) {
-
- return {
- rule: rule,
- suffix: rule.replace(/^(\*\.|\!)/, ''),
- punySuffix: -1,
- wildcard: rule.charAt(0) === '*',
- exception: rule.charAt(0) === '!'
- };
-});
-
-
-//
-// Check is given string ends with `suffix`.
-//
-internals.endsWith = function (str, suffix) {
-
- return str.indexOf(suffix, str.length - suffix.length) !== -1;
-};
-
-
-//
-// Find rule for a given domain.
-//
-internals.findRule = function (domain) {
-
- var punyDomain = Punycode.toASCII(domain);
- return internals.rules.reduce(function (memo, rule) {
-
- if (rule.punySuffix === -1){
- rule.punySuffix = Punycode.toASCII(rule.suffix);
- }
- if (!internals.endsWith(punyDomain, '.' + rule.punySuffix) && punyDomain !== rule.punySuffix) {
- return memo;
- }
- // This has been commented out as it never seems to run. This is because
- // sub tlds always appear after their parents and we never find a shorter
- // match.
- //if (memo) {
- // var memoSuffix = Punycode.toASCII(memo.suffix);
- // if (memoSuffix.length >= punySuffix.length) {
- // return memo;
- // }
- //}
- return rule;
- }, null);
-};
-
-
-//
-// Error codes and messages.
-//
-exports.errorCodes = {
- DOMAIN_TOO_SHORT: 'Domain name too short.',
- DOMAIN_TOO_LONG: 'Domain name too long. It should be no more than 255 chars.',
- LABEL_STARTS_WITH_DASH: 'Domain name label can not start with a dash.',
- LABEL_ENDS_WITH_DASH: 'Domain name label can not end with a dash.',
- LABEL_TOO_LONG: 'Domain name label should be at most 63 chars long.',
- LABEL_TOO_SHORT: 'Domain name label should be at least 1 character long.',
- LABEL_INVALID_CHARS: 'Domain name label can only contain alphanumeric characters or dashes.'
-};
-
-
-//
-// Validate domain name and throw if not valid.
-//
-// From wikipedia:
-//
-// Hostnames are composed of series of labels concatenated with dots, as are all
-// domain names. Each label must be between 1 and 63 characters long, and the
-// entire hostname (including the delimiting dots) has a maximum of 255 chars.
-//
-// Allowed chars:
-//
-// * `a-z`
-// * `0-9`
-// * `-` but not as a starting or ending character
-// * `.` as a separator for the textual portions of a domain name
-//
-// * http://en.wikipedia.org/wiki/Domain_name
-// * http://en.wikipedia.org/wiki/Hostname
-//
-internals.validate = function (input) {
-
- // Before we can validate we need to take care of IDNs with unicode chars.
- var ascii = Punycode.toASCII(input);
-
- if (ascii.length < 1) {
- return 'DOMAIN_TOO_SHORT';
- }
- if (ascii.length > 255) {
- return 'DOMAIN_TOO_LONG';
- }
-
- // Check each part's length and allowed chars.
- var labels = ascii.split('.');
- var label;
-
- for (var i = 0; i < labels.length; ++i) {
- label = labels[i];
- if (!label.length) {
- return 'LABEL_TOO_SHORT';
- }
- if (label.length > 63) {
- return 'LABEL_TOO_LONG';
- }
- if (label.charAt(0) === '-') {
- return 'LABEL_STARTS_WITH_DASH';
- }
- if (label.charAt(label.length - 1) === '-') {
- return 'LABEL_ENDS_WITH_DASH';
- }
- if (!/^[a-z0-9\-]+$/.test(label)) {
- return 'LABEL_INVALID_CHARS';
- }
- }
-};
-
-
-//
-// Public API
-//
-
-
-//
-// Parse domain.
-//
-exports.parse = function (input) {
-
- if (typeof input !== 'string') {
- throw new TypeError('Domain name must be a string.');
- }
-
- // Force domain to lowercase.
- var domain = input.slice(0).toLowerCase();
-
- // Handle FQDN.
- // TODO: Simply remove trailing dot?
- if (domain.charAt(domain.length - 1) === '.') {
- domain = domain.slice(0, domain.length - 1);
- }
-
- // Validate and sanitise input.
- var error = internals.validate(domain);
- if (error) {
- return {
- input: input,
- error: {
- message: exports.errorCodes[error],
- code: error
- }
- };
- }
-
- var parsed = {
- input: input,
- tld: null,
- sld: null,
- domain: null,
- subdomain: null,
- listed: false
- };
-
- var domainParts = domain.split('.');
-
- // Non-Internet TLD
- if (domainParts[domainParts.length - 1] === 'local') {
- return parsed;
- }
-
- var handlePunycode = function () {
-
- if (!/xn--/.test(domain)) {
- return parsed;
- }
- if (parsed.domain) {
- parsed.domain = Punycode.toASCII(parsed.domain);
- }
- if (parsed.subdomain) {
- parsed.subdomain = Punycode.toASCII(parsed.subdomain);
- }
- return parsed;
- };
-
- var rule = internals.findRule(domain);
-
- // Unlisted tld.
- if (!rule) {
- if (domainParts.length < 2) {
- return parsed;
- }
- parsed.tld = domainParts.pop();
- parsed.sld = domainParts.pop();
- parsed.domain = [parsed.sld, parsed.tld].join('.');
- if (domainParts.length) {
- parsed.subdomain = domainParts.pop();
- }
- return handlePunycode();
- }
-
- // At this point we know the public suffix is listed.
- parsed.listed = true;
-
- var tldParts = rule.suffix.split('.');
- var privateParts = domainParts.slice(0, domainParts.length - tldParts.length);
-
- if (rule.exception) {
- privateParts.push(tldParts.shift());
- }
-
- parsed.tld = tldParts.join('.');
-
- if (!privateParts.length) {
- return handlePunycode();
- }
-
- if (rule.wildcard) {
- tldParts.unshift(privateParts.pop());
- parsed.tld = tldParts.join('.');
- }
-
- if (!privateParts.length) {
- return handlePunycode();
- }
-
- parsed.sld = privateParts.pop();
- parsed.domain = [parsed.sld, parsed.tld].join('.');
-
- if (privateParts.length) {
- parsed.subdomain = privateParts.join('.');
- }
-
- return handlePunycode();
-};
-
-
-//
-// Get domain.
-//
-exports.get = function (domain) {
-
- if (!domain) {
- return null;
- }
- return exports.parse(domain).domain || null;
-};
-
-
-//
-// Check whether domain belongs to a known public suffix.
-//
-exports.isValid = function (domain) {
-
- var parsed = exports.parse(domain);
- return Boolean(parsed.domain && parsed.listed);
-};
-
-},{"./data/rules.json":1,"punycode":3}],3:[function(require,module,exports){
-(function (global){
-/*! https://mths.be/punycode v1.4.1 by @mathias */
-;(function(root) {
-
- /** Detect free variables */
- var freeExports = typeof exports == 'object' && exports &&
- !exports.nodeType && exports;
- var freeModule = typeof module == 'object' && module &&
- !module.nodeType && module;
- var freeGlobal = typeof global == 'object' && global;
- if (
- freeGlobal.global === freeGlobal ||
- freeGlobal.window === freeGlobal ||
- freeGlobal.self === freeGlobal
- ) {
- root = freeGlobal;
- }
-
- /**
- * The `punycode` object.
- * @name punycode
- * @type Object
- */
- var punycode,
-
- /** Highest positive signed 32-bit float value */
- maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1
-
- /** Bootstring parameters */
- base = 36,
- tMin = 1,
- tMax = 26,
- skew = 38,
- damp = 700,
- initialBias = 72,
- initialN = 128, // 0x80
- delimiter = '-', // '\x2D'
-
- /** Regular expressions */
- regexPunycode = /^xn--/,
- regexNonASCII = /[^\x20-\x7E]/, // unprintable ASCII chars + non-ASCII chars
- regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, // RFC 3490 separators
-
- /** Error messages */
- errors = {
- 'overflow': 'Overflow: input needs wider integers to process',
- 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',
- 'invalid-input': 'Invalid input'
- },
-
- /** Convenience shortcuts */
- baseMinusTMin = base - tMin,
- floor = Math.floor,
- stringFromCharCode = String.fromCharCode,
-
- /** Temporary variable */
- key;
-
- /*--------------------------------------------------------------------------*/
-
- /**
- * A generic error utility function.
- * @private
- * @param {String} type The error type.
- * @returns {Error} Throws a `RangeError` with the applicable error message.
- */
- function error(type) {
- throw new RangeError(errors[type]);
- }
-
- /**
- * A generic `Array#map` utility function.
- * @private
- * @param {Array} array The array to iterate over.
- * @param {Function} callback The function that gets called for every array
- * item.
- * @returns {Array} A new array of values returned by the callback function.
- */
- function map(array, fn) {
- var length = array.length;
- var result = [];
- while (length--) {
- result[length] = fn(array[length]);
- }
- return result;
- }
-
- /**
- * A simple `Array#map`-like wrapper to work with domain name strings or email
- * addresses.
- * @private
- * @param {String} domain The domain name or email address.
- * @param {Function} callback The function that gets called for every
- * character.
- * @returns {Array} A new string of characters returned by the callback
- * function.
- */
- function mapDomain(string, fn) {
- var parts = string.split('@');
- var result = '';
- if (parts.length > 1) {
- // In email addresses, only the domain name should be punycoded. Leave
- // the local part (i.e. everything up to `@`) intact.
- result = parts[0] + '@';
- string = parts[1];
- }
- // Avoid `split(regex)` for IE8 compatibility. See #17.
- string = string.replace(regexSeparators, '\x2E');
- var labels = string.split('.');
- var encoded = map(labels, fn).join('.');
- return result + encoded;
- }
-
- /**
- * Creates an array containing the numeric code points of each Unicode
- * character in the string. While JavaScript uses UCS-2 internally,
- * this function will convert a pair of surrogate halves (each of which
- * UCS-2 exposes as separate characters) into a single code point,
- * matching UTF-16.
- * @see `punycode.ucs2.encode`
- * @see <https://mathiasbynens.be/notes/javascript-encoding>
- * @memberOf punycode.ucs2
- * @name decode
- * @param {String} string The Unicode input string (UCS-2).
- * @returns {Array} The new array of code points.
- */
- function ucs2decode(string) {
- var output = [],
- counter = 0,
- length = string.length,
- value,
- extra;
- while (counter < length) {
- value = string.charCodeAt(counter++);
- if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
- // high surrogate, and there is a next character
- extra = string.charCodeAt(counter++);
- if ((extra & 0xFC00) == 0xDC00) { // low surrogate
- output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
- } else {
- // unmatched surrogate; only append this code unit, in case the next
- // code unit is the high surrogate of a surrogate pair
- output.push(value);
- counter--;
- }
- } else {
- output.push(value);
- }
- }
- return output;
- }
-
- /**
- * Creates a string based on an array of numeric code points.
- * @see `punycode.ucs2.decode`
- * @memberOf punycode.ucs2
- * @name encode
- * @param {Array} codePoints The array of numeric code points.
- * @returns {String} The new Unicode string (UCS-2).
- */
- function ucs2encode(array) {
- return map(array, function(value) {
- var output = '';
- if (value > 0xFFFF) {
- value -= 0x10000;
- output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);
- value = 0xDC00 | value & 0x3FF;
- }
- output += stringFromCharCode(value);
- return output;
- }).join('');
- }
-
- /**
- * Converts a basic code point into a digit/integer.
- * @see `digitToBasic()`
- * @private
- * @param {Number} codePoint The basic numeric code point value.
- * @returns {Number} The numeric value of a basic code point (for use in
- * representing integers) in the range `0` to `base - 1`, or `base` if
- * the code point does not represent a value.
- */
- function basicToDigit(codePoint) {
- if (codePoint - 48 < 10) {
- return codePoint - 22;
- }
- if (codePoint - 65 < 26) {
- return codePoint - 65;
- }
- if (codePoint - 97 < 26) {
- return codePoint - 97;
- }
- return base;
- }
-
- /**
- * Converts a digit/integer into a basic code point.
- * @see `basicToDigit()`
- * @private
- * @param {Number} digit The numeric value of a basic code point.
- * @returns {Number} The basic code point whose value (when used for
- * representing integers) is `digit`, which needs to be in the range
- * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is
- * used; else, the lowercase form is used. The behavior is undefined
- * if `flag` is non-zero and `digit` has no uppercase form.
- */
- function digitToBasic(digit, flag) {
- // 0..25 map to ASCII a..z or A..Z
- // 26..35 map to ASCII 0..9
- return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
- }
-
- /**
- * Bias adaptation function as per section 3.4 of RFC 3492.
- * https://tools.ietf.org/html/rfc3492#section-3.4
- * @private
- */
- function adapt(delta, numPoints, firstTime) {
- var k = 0;
- delta = firstTime ? floor(delta / damp) : delta >> 1;
- delta += floor(delta / numPoints);
- for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {
- delta = floor(delta / baseMinusTMin);
- }
- return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
- }
-
- /**
- * Converts a Punycode string of ASCII-only symbols to a string of Unicode
- * symbols.
- * @memberOf punycode
- * @param {String} input The Punycode string of ASCII-only symbols.
- * @returns {String} The resulting string of Unicode symbols.
- */
- function decode(input) {
- // Don't use UCS-2
- var output = [],
- inputLength = input.length,
- out,
- i = 0,
- n = initialN,
- bias = initialBias,
- basic,
- j,
- index,
- oldi,
- w,
- k,
- digit,
- t,
- /** Cached calculation results */
- baseMinusT;
-
- // Handle the basic code points: let `basic` be the number of input code
- // points before the last delimiter, or `0` if there is none, then copy
- // the first basic code points to the output.
-
- basic = input.lastIndexOf(delimiter);
- if (basic < 0) {
- basic = 0;
- }
-
- for (j = 0; j < basic; ++j) {
- // if it's not a basic code point
- if (input.charCodeAt(j) >= 0x80) {
- error('not-basic');
- }
- output.push(input.charCodeAt(j));
- }
-
- // Main decoding loop: start just after the last delimiter if any basic code
- // points were copied; start at the beginning otherwise.
-
- for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {
-
- // `index` is the index of the next character to be consumed.
- // Decode a generalized variable-length integer into `delta`,
- // which gets added to `i`. The overflow checking is easier
- // if we increase `i` as we go, then subtract off its starting
- // value at the end to obtain `delta`.
- for (oldi = i, w = 1, k = base; /* no condition */; k += base) {
-
- if (index >= inputLength) {
- error('invalid-input');
- }
-
- digit = basicToDigit(input.charCodeAt(index++));
-
- if (digit >= base || digit > floor((maxInt - i) / w)) {
- error('overflow');
- }
-
- i += digit * w;
- t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
-
- if (digit < t) {
- break;
- }
-
- baseMinusT = base - t;
- if (w > floor(maxInt / baseMinusT)) {
- error('overflow');
- }
-
- w *= baseMinusT;
-
- }
-
- out = output.length + 1;
- bias = adapt(i - oldi, out, oldi == 0);
-
- // `i` was supposed to wrap around from `out` to `0`,
- // incrementing `n` each time, so we'll fix that now:
- if (floor(i / out) > maxInt - n) {
- error('overflow');
- }
-
- n += floor(i / out);
- i %= out;
-
- // Insert `n` at position `i` of the output
- output.splice(i++, 0, n);
-
- }
-
- return ucs2encode(output);
- }
-
- /**
- * Converts a string of Unicode symbols (e.g. a domain name label) to a
- * Punycode string of ASCII-only symbols.
- * @memberOf punycode
- * @param {String} input The string of Unicode symbols.
- * @returns {String} The resulting Punycode string of ASCII-only symbols.
- */
- function encode(input) {
- var n,
- delta,
- handledCPCount,
- basicLength,
- bias,
- j,
- m,
- q,
- k,
- t,
- currentValue,
- output = [],
- /** `inputLength` will hold the number of code points in `input`. */
- inputLength,
- /** Cached calculation results */
- handledCPCountPlusOne,
- baseMinusT,
- qMinusT;
-
- // Convert the input in UCS-2 to Unicode
- input = ucs2decode(input);
-
- // Cache the length
- inputLength = input.length;
-
- // Initialize the state
- n = initialN;
- delta = 0;
- bias = initialBias;
-
- // Handle the basic code points
- for (j = 0; j < inputLength; ++j) {
- currentValue = input[j];
- if (currentValue < 0x80) {
- output.push(stringFromCharCode(currentValue));
- }
- }
-
- handledCPCount = basicLength = output.length;
-
- // `handledCPCount` is the number of code points that have been handled;
- // `basicLength` is the number of basic code points.
-
- // Finish the basic string - if it is not empty - with a delimiter
- if (basicLength) {
- output.push(delimiter);
- }
-
- // Main encoding loop:
- while (handledCPCount < inputLength) {
-
- // All non-basic code points < n have been handled already. Find the next
- // larger one:
- for (m = maxInt, j = 0; j < inputLength; ++j) {
- currentValue = input[j];
- if (currentValue >= n && currentValue < m) {
- m = currentValue;
- }
- }
-
- // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,
- // but guard against overflow
- handledCPCountPlusOne = handledCPCount + 1;
- if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
- error('overflow');
- }
-
- delta += (m - n) * handledCPCountPlusOne;
- n = m;
-
- for (j = 0; j < inputLength; ++j) {
- currentValue = input[j];
-
- if (currentValue < n && ++delta > maxInt) {
- error('overflow');
- }
-
- if (currentValue == n) {
- // Represent delta as a generalized variable-length integer
- for (q = delta, k = base; /* no condition */; k += base) {
- t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
- if (q < t) {
- break;
- }
- qMinusT = q - t;
- baseMinusT = base - t;
- output.push(
- stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))
- );
- q = floor(qMinusT / baseMinusT);
- }
-
- output.push(stringFromCharCode(digitToBasic(q, 0)));
- bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
- delta = 0;
- ++handledCPCount;
- }
- }
-
- ++delta;
- ++n;
-
- }
- return output.join('');
- }
-
- /**
- * Converts a Punycode string representing a domain name or an email address
- * to Unicode. Only the Punycoded parts of the input will be converted, i.e.
- * it doesn't matter if you call it on a string that has already been
- * converted to Unicode.
- * @memberOf punycode
- * @param {String} input The Punycoded domain name or email address to
- * convert to Unicode.
- * @returns {String} The Unicode representation of the given Punycode
- * string.
- */
- function toUnicode(input) {
- return mapDomain(input, function(string) {
- return regexPunycode.test(string)
- ? decode(string.slice(4).toLowerCase())
- : string;
- });
- }
-
- /**
- * Converts a Unicode string representing a domain name or an email address to
- * Punycode. Only the non-ASCII parts of the domain name will be converted,
- * i.e. it doesn't matter if you call it with a domain that's already in
- * ASCII.
- * @memberOf punycode
- * @param {String} input The domain name or email address to convert, as a
- * Unicode string.
- * @returns {String} The Punycode representation of the given domain name or
- * email address.
- */
- function toASCII(input) {
- return mapDomain(input, function(string) {
- return regexNonASCII.test(string)
- ? 'xn--' + encode(string)
- : string;
- });
- }
-
- /*--------------------------------------------------------------------------*/
-
- /** Define the public API */
- punycode = {
- /**
- * A string representing the current Punycode.js version number.
- * @memberOf punycode
- * @type String
- */
- 'version': '1.4.1',
- /**
- * An object of methods to convert from JavaScript's internal character
- * representation (UCS-2) to Unicode code points, and back.
- * @see <https://mathiasbynens.be/notes/javascript-encoding>
- * @memberOf punycode
- * @type Object
- */
- 'ucs2': {
- 'decode': ucs2decode,
- 'encode': ucs2encode
- },
- 'decode': decode,
- 'encode': encode,
- 'toASCII': toASCII,
- 'toUnicode': toUnicode
- };
-
- /** Expose `punycode` */
- // Some AMD build optimizers, like r.js, check for specific condition patterns
- // like the following:
- if (
- typeof define == 'function' &&
- typeof define.amd == 'object' &&
- define.amd
- ) {
- define('punycode', function() {
- return punycode;
- });
- } else if (freeExports && freeModule) {
- if (module.exports == freeExports) {
- // in Node.js, io.js, or RingoJS v0.8.0+
- freeModule.exports = punycode;
- } else {
- // in Narwhal or RingoJS v0.7.0-
- for (key in punycode) {
- punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);
- }
- }
- } else {
- // in Rhino or a web browser
- root.punycode = punycode;
- }
-
-}(this));
-
-}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{}]},{},[2])(2)
-});
diff --git a/deps/npm/node_modules/psl/dist/psl.min.js b/deps/npm/node_modules/psl/dist/psl.min.js
deleted file mode 100644
index d5c787e4862..00000000000
--- a/deps/npm/node_modules/psl/dist/psl.min.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).psl=a()}}(function(){return function s(m,t,u){function r(o,a){if(!t[o]){if(!m[o]){var i="function"==typeof require&&require;if(!a&&i)return i(o,!0);if(p)return p(o,!0);var e=new Error("Cannot find module '"+o+"'");throw e.code="MODULE_NOT_FOUND",e}var n=t[o]={exports:{}};m[o][0].call(n.exports,function(a){return r(m[o][1][a]||a)},n,n.exports,s,m,t,u)}return t[o].exports}for(var p="function"==typeof require&&require,a=0;a<u.length;a++)r(u[a]);return r}({1:[function(a,o,i){o.exports=["ac","com.ac","edu.ac","gov.ac","net.ac","mil.ac","org.ac","ad","nom.ad","ae","co.ae","net.ae","org.ae","sch.ae","ac.ae","gov.ae","mil.ae","aero","accident-investigation.aero","accident-prevention.aero","aerobatic.aero","aeroclub.aero","aerodrome.aero","agents.aero","aircraft.aero","airline.aero","airport.aero","air-surveillance.aero","airtraffic.aero","air-traffic-control.aero","ambulance.aero","amusement.aero","association.aero","author.aero","ballooning.aero","broker.aero","caa.aero","cargo.aero","catering.aero","certification.aero","championship.aero","charter.aero","civilaviation.aero","club.aero","conference.aero","consultant.aero","consulting.aero","control.aero","council.aero","crew.aero","design.aero","dgca.aero","educator.aero","emergency.aero","engine.aero","engineer.aero","entertainment.aero","equipment.aero","exchange.aero","express.aero","federation.aero","flight.aero","freight.aero","fuel.aero","gliding.aero","government.aero","groundhandling.aero","group.aero","hanggliding.aero","homebuilt.aero","insurance.aero","journal.aero","journalist.aero","leasing.aero","logistics.aero","magazine.aero","maintenance.aero","media.aero","microlight.aero","modelling.aero","navigation.aero","parachuting.aero","paragliding.aero","passenger-association.aero","pilot.aero","press.aero","production.aero","recreation.aero","repbody.aero","res.aero","research.aero","rotorcraft.aero","safety.aero","scientist.aero","services.aero","show.aero","skydiving.aero","software.aero","student.aero","trader.aero","trading.aero","trainer.aero","union.aero","workinggroup.aero","works.aero","af","gov.af","com.af","org.af","net.af","edu.af","ag","com.ag","org.ag","net.ag","co.ag","nom.ag","ai","off.ai","com.ai","net.ai","org.ai","al","com.al","edu.al","gov.al","mil.al","net.al","org.al","am","co.am","com.am","commune.am","net.am","org.am","ao","ed.ao","gv.ao","og.ao","co.ao","pb.ao","it.ao","aq","ar","com.ar","edu.ar","gob.ar","gov.ar","int.ar","mil.ar","musica.ar","net.ar","org.ar","tur.ar","arpa","e164.arpa","in-addr.arpa","ip6.arpa","iris.arpa","uri.arpa","urn.arpa","as","gov.as","asia","at","ac.at","co.at","gv.at","or.at","au","com.au","net.au","org.au","edu.au","gov.au","asn.au","id.au","info.au","conf.au","oz.au","act.au","nsw.au","nt.au","qld.au","sa.au","tas.au","vic.au","wa.au","act.edu.au","catholic.edu.au","nsw.edu.au","nt.edu.au","qld.edu.au","sa.edu.au","tas.edu.au","vic.edu.au","wa.edu.au","qld.gov.au","sa.gov.au","tas.gov.au","vic.gov.au","wa.gov.au","education.tas.edu.au","schools.nsw.edu.au","aw","com.aw","ax","az","com.az","net.az","int.az","gov.az","org.az","edu.az","info.az","pp.az","mil.az","name.az","pro.az","biz.az","ba","com.ba","edu.ba","gov.ba","mil.ba","net.ba","org.ba","bb","biz.bb","co.bb","com.bb","edu.bb","gov.bb","info.bb","net.bb","org.bb","store.bb","tv.bb","*.bd","be","ac.be","bf","gov.bf","bg","a.bg","b.bg","c.bg","d.bg","e.bg","f.bg","g.bg","h.bg","i.bg","j.bg","k.bg","l.bg","m.bg","n.bg","o.bg","p.bg","q.bg","r.bg","s.bg","t.bg","u.bg","v.bg","w.bg","x.bg","y.bg","z.bg","0.bg","1.bg","2.bg","3.bg","4.bg","5.bg","6.bg","7.bg","8.bg","9.bg","bh","com.bh","edu.bh","net.bh","org.bh","gov.bh","bi","co.bi","com.bi","edu.bi","or.bi","org.bi","biz","bj","asso.bj","barreau.bj","gouv.bj","bm","com.bm","edu.bm","gov.bm","net.bm","org.bm","bn","com.bn","edu.bn","gov.bn","net.bn","org.bn","bo","com.bo","edu.bo","gob.bo","int.bo","org.bo","net.bo","mil.bo","tv.bo","web.bo","academia.bo","agro.bo","arte.bo","blog.bo","bolivia.bo","ciencia.bo","cooperativa.bo","democracia.bo","deporte.bo","ecologia.bo","economia.bo","empresa.bo","indigena.bo","industria.bo","info.bo","medicina.bo","movimiento.bo","musica.bo","natural.bo","nombre.bo","noticias.bo","patria.bo","politica.bo","profesional.bo","plurinacional.bo","pueblo.bo","revista.bo","salud.bo","tecnologia.bo","tksat.bo","transporte.bo","wiki.bo","br","9guacu.br","abc.br","adm.br","adv.br","agr.br","aju.br","am.br","anani.br","aparecida.br","arq.br","art.br","ato.br","b.br","barueri.br","belem.br","bhz.br","bio.br","blog.br","bmd.br","boavista.br","bsb.br","campinagrande.br","campinas.br","caxias.br","cim.br","cng.br","cnt.br","com.br","contagem.br","coop.br","cri.br","cuiaba.br","curitiba.br","def.br","ecn.br","eco.br","edu.br","emp.br","eng.br","esp.br","etc.br","eti.br","far.br","feira.br","flog.br","floripa.br","fm.br","fnd.br","fortal.br","fot.br","foz.br","fst.br","g12.br","ggf.br","goiania.br","gov.br","ac.gov.br","al.gov.br","am.gov.br","ap.gov.br","ba.gov.br","ce.gov.br","df.gov.br","es.gov.br","go.gov.br","ma.gov.br","mg.gov.br","ms.gov.br","mt.gov.br","pa.gov.br","pb.gov.br","pe.gov.br","pi.gov.br","pr.gov.br","rj.gov.br","rn.gov.br","ro.gov.br","rr.gov.br","rs.gov.br","sc.gov.br","se.gov.br","sp.gov.br","to.gov.br","gru.br","imb.br","ind.br","inf.br","jab.br","jampa.br","jdf.br","joinville.br","jor.br","jus.br","leg.br","lel.br","londrina.br","macapa.br","maceio.br","manaus.br","maringa.br","mat.br","med.br","mil.br","morena.br","mp.br","mus.br","natal.br","net.br","niteroi.br","*.nom.br","not.br","ntr.br","odo.br","ong.br","org.br","osasco.br","palmas.br","poa.br","ppg.br","pro.br","psc.br","psi.br","pvh.br","qsl.br","radio.br","rec.br","recife.br","ribeirao.br","rio.br","riobranco.br","riopreto.br","salvador.br","sampa.br","santamaria.br","santoandre.br","saobernardo.br","saogonca.br","sjc.br","slg.br","slz.br","sorocaba.br","srv.br","taxi.br","tc.br","teo.br","the.br","tmp.br","trd.br","tur.br","tv.br","udi.br","vet.br","vix.br","vlog.br","wiki.br","zlg.br","bs","com.bs","net.bs","org.bs","edu.bs","gov.bs","bt","com.bt","edu.bt","gov.bt","net.bt","org.bt","bv","bw","co.bw","org.bw","by","gov.by","mil.by","com.by","of.by","bz","com.bz","net.bz","org.bz","edu.bz","gov.bz","ca","ab.ca","bc.ca","mb.ca","nb.ca","nf.ca","nl.ca","ns.ca","nt.ca","nu.ca","on.ca","pe.ca","qc.ca","sk.ca","yk.ca","gc.ca","cat","cc","cd","gov.cd","cf","cg","ch","ci","org.ci","or.ci","com.ci","co.ci","edu.ci","ed.ci","ac.ci","net.ci","go.ci","asso.ci","aéroport.ci","int.ci","presse.ci","md.ci","gouv.ci","*.ck","!www.ck","cl","aprendemas.cl","co.cl","gob.cl","gov.cl","mil.cl","cm","co.cm","com.cm","gov.cm","net.cm","cn","ac.cn","com.cn","edu.cn","gov.cn","net.cn","org.cn","mil.cn","公司.cn","网络.cn","網絡.cn","ah.cn","bj.cn","cq.cn","fj.cn","gd.cn","gs.cn","gz.cn","gx.cn","ha.cn","hb.cn","he.cn","hi.cn","hl.cn","hn.cn","jl.cn","js.cn","jx.cn","ln.cn","nm.cn","nx.cn","qh.cn","sc.cn","sd.cn","sh.cn","sn.cn","sx.cn","tj.cn","xj.cn","xz.cn","yn.cn","zj.cn","hk.cn","mo.cn","tw.cn","co","arts.co","com.co","edu.co","firm.co","gov.co","info.co","int.co","mil.co","net.co","nom.co","org.co","rec.co","web.co","com","coop","cr","ac.cr","co.cr","ed.cr","fi.cr","go.cr","or.cr","sa.cr","cu","com.cu","edu.cu","org.cu","net.cu","gov.cu","inf.cu","cv","cw","com.cw","edu.cw","net.cw","org.cw","cx","gov.cx","cy","ac.cy","biz.cy","com.cy","ekloges.cy","gov.cy","ltd.cy","name.cy","net.cy","org.cy","parliament.cy","press.cy","pro.cy","tm.cy","cz","de","dj","dk","dm","com.dm","net.dm","org.dm","edu.dm","gov.dm","do","art.do","com.do","edu.do","gob.do","gov.do","mil.do","net.do","org.do","sld.do","web.do","dz","com.dz","org.dz","net.dz","gov.dz","edu.dz","asso.dz","pol.dz","art.dz","ec","com.ec","info.ec","net.ec","fin.ec","k12.ec","med.ec","pro.ec","org.ec","edu.ec","gov.ec","gob.ec","mil.ec","edu","ee","edu.ee","gov.ee","riik.ee","lib.ee","med.ee","com.ee","pri.ee","aip.ee","org.ee","fie.ee","eg","com.eg","edu.eg","eun.eg","gov.eg","mil.eg","name.eg","net.eg","org.eg","sci.eg","*.er","es","com.es","nom.es","org.es","gob.es","edu.es","et","com.et","gov.et","org.et","edu.et","biz.et","name.et","info.et","net.et","eu","fi","aland.fi","fj","ac.fj","biz.fj","com.fj","gov.fj","info.fj","mil.fj","name.fj","net.fj","org.fj","pro.fj","*.fk","fm","fo","fr","asso.fr","com.fr","gouv.fr","nom.fr","prd.fr","tm.fr","aeroport.fr","avocat.fr","avoues.fr","cci.fr","chambagri.fr","chirurgiens-dentistes.fr","experts-comptables.fr","geometre-expert.fr","greta.fr","huissier-justice.fr","medecin.fr","notaires.fr","pharmacien.fr","port.fr","veterinaire.fr","ga","gb","gd","ge","com.ge","edu.ge","gov.ge","org.ge","mil.ge","net.ge","pvt.ge","gf","gg","co.gg","net.gg","org.gg","gh","com.gh","edu.gh","gov.gh","org.gh","mil.gh","gi","com.gi","ltd.gi","gov.gi","mod.gi","edu.gi","org.gi","gl","co.gl","com.gl","edu.gl","net.gl","org.gl","gm","gn","ac.gn","com.gn","edu.gn","gov.gn","org.gn","net.gn","gov","gp","com.gp","net.gp","mobi.gp","edu.gp","org.gp","asso.gp","gq","gr","com.gr","edu.gr","net.gr","org.gr","gov.gr","gs","gt","com.gt","edu.gt","gob.gt","ind.gt","mil.gt","net.gt","org.gt","gu","com.gu","edu.gu","gov.gu","guam.gu","info.gu","net.gu","org.gu","web.gu","gw","gy","co.gy","com.gy","edu.gy","gov.gy","net.gy","org.gy","hk","com.hk","edu.hk","gov.hk","idv.hk","net.hk","org.hk","公司.hk","教育.hk","敎育.hk","政府.hk","個人.hk","个人.hk","箇人.hk","網络.hk","网络.hk","组織.hk","網絡.hk","网絡.hk","组织.hk","組織.hk","組织.hk","hm","hn","com.hn","edu.hn","org.hn","net.hn","mil.hn","gob.hn","hr","iz.hr","from.hr","name.hr","com.hr","ht","com.ht","shop.ht","firm.ht","info.ht","adult.ht","net.ht","pro.ht","org.ht","med.ht","art.ht","coop.ht","pol.ht","asso.ht","edu.ht","rel.ht","gouv.ht","perso.ht","hu","co.hu","info.hu","org.hu","priv.hu","sport.hu","tm.hu","2000.hu","agrar.hu","bolt.hu","casino.hu","city.hu","erotica.hu","erotika.hu","film.hu","forum.hu","games.hu","hotel.hu","ingatlan.hu","jogasz.hu","konyvelo.hu","lakas.hu","media.hu","news.hu","reklam.hu","sex.hu","shop.hu","suli.hu","szex.hu","tozsde.hu","utazas.hu","video.hu","id","ac.id","biz.id","co.id","desa.id","go.id","mil.id","my.id","net.id","or.id","ponpes.id","sch.id","web.id","ie","gov.ie","il","ac.il","co.il","gov.il","idf.il","k12.il","muni.il","net.il","org.il","im","ac.im","co.im","com.im","ltd.co.im","net.im","org.im","plc.co.im","tt.im","tv.im","in","co.in","firm.in","net.in","org.in","gen.in","ind.in","nic.in","ac.in","edu.in","res.in","gov.in","mil.in","info","int","eu.int","io","com.io","iq","gov.iq","edu.iq","mil.iq","com.iq","org.iq","net.iq","ir","ac.ir","co.ir","gov.ir","id.ir","net.ir","org.ir","sch.ir","ایران.ir","ايران.ir","is","net.is","com.is","edu.is","gov.is","org.is","int.is","it","gov.it","edu.it","abr.it","abruzzo.it","aosta-valley.it","aostavalley.it","bas.it","basilicata.it","cal.it","calabria.it","cam.it","campania.it","emilia-romagna.it","emiliaromagna.it","emr.it","friuli-v-giulia.it","friuli-ve-giulia.it","friuli-vegiulia.it","friuli-venezia-giulia.it","friuli-veneziagiulia.it","friuli-vgiulia.it","friuliv-giulia.it","friulive-giulia.it","friulivegiulia.it","friulivenezia-giulia.it","friuliveneziagiulia.it","friulivgiulia.it","fvg.it","laz.it","lazio.it","lig.it","liguria.it","lom.it","lombardia.it","lombardy.it","lucania.it","mar.it","marche.it","mol.it","molise.it","piedmont.it","piemonte.it","pmn.it","pug.it","puglia.it","sar.it","sardegna.it","sardinia.it","sic.it","sicilia.it","sicily.it","taa.it","tos.it","toscana.it","trentin-sud-tirol.it","trentin-süd-tirol.it","trentin-sudtirol.it","trentin-südtirol.it","trentin-sued-tirol.it","trentin-suedtirol.it","trentino-a-adige.it","trentino-aadige.it","trentino-alto-adige.it","trentino-altoadige.it","trentino-s-tirol.it","trentino-stirol.it","trentino-sud-tirol.it","trentino-süd-tirol.it","trentino-sudtirol.it","trentino-südtirol.it","trentino-sued-tirol.it","trentino-suedtirol.it","trentino.it","trentinoa-adige.it","trentinoaadige.it","trentinoalto-adige.it","trentinoaltoadige.it","trentinos-tirol.it","trentinostirol.it","trentinosud-tirol.it","trentinosüd-tirol.it","trentinosudtirol.it","trentinosüdtirol.it","trentinosued-tirol.it","trentinosuedtirol.it","trentinsud-tirol.it","trentinsüd-tirol.it","trentinsudtirol.it","trentinsüdtirol.it","trentinsued-tirol.it","trentinsuedtirol.it","tuscany.it","umb.it","umbria.it","val-d-aosta.it","val-daosta.it","vald-aosta.it","valdaosta.it","valle-aosta.it","valle-d-aosta.it","valle-daosta.it","valleaosta.it","valled-aosta.it","valledaosta.it","vallee-aoste.it","vallée-aoste.it","vallee-d-aoste.it","vallée-d-aoste.it","valleeaoste.it","valléeaoste.it","valleedaoste.it","valléedaoste.it","vao.it","vda.it","ven.it","veneto.it","ag.it","agrigento.it","al.it","alessandria.it","alto-adige.it","altoadige.it","an.it","ancona.it","andria-barletta-trani.it","andria-trani-barletta.it","andriabarlettatrani.it","andriatranibarletta.it","ao.it","aosta.it","aoste.it","ap.it","aq.it","aquila.it","ar.it","arezzo.it","ascoli-piceno.it","ascolipiceno.it","asti.it","at.it","av.it","avellino.it","ba.it","balsan-sudtirol.it","balsan-südtirol.it","balsan-suedtirol.it","balsan.it","bari.it","barletta-trani-andria.it","barlettatraniandria.it","belluno.it","benevento.it","bergamo.it","bg.it","bi.it","biella.it","bl.it","bn.it","bo.it","bologna.it","bolzano-altoadige.it","bolzano.it","bozen-sudtirol.it","bozen-südtirol.it","bozen-suedtirol.it","bozen.it","br.it","brescia.it","brindisi.it","bs.it","bt.it","bulsan-sudtirol.it","bulsan-südtirol.it","bulsan-suedtirol.it","bulsan.it","bz.it","ca.it","cagliari.it","caltanissetta.it","campidano-medio.it","campidanomedio.it","campobasso.it","carbonia-iglesias.it","carboniaiglesias.it","carrara-massa.it","carraramassa.it","caserta.it","catania.it","catanzaro.it","cb.it","ce.it","cesena-forli.it","cesena-forlì.it","cesenaforli.it","cesenaforlì.it","ch.it","chieti.it","ci.it","cl.it","cn.it","co.it","como.it","cosenza.it","cr.it","cremona.it","crotone.it","cs.it","ct.it","cuneo.it","cz.it","dell-ogliastra.it","dellogliastra.it","en.it","enna.it","fc.it","fe.it","fermo.it","ferrara.it","fg.it","fi.it","firenze.it","florence.it","fm.it","foggia.it","forli-cesena.it","forlì-cesena.it","forlicesena.it","forlìcesena.it","fr.it","frosinone.it","ge.it","genoa.it","genova.it","go.it","gorizia.it","gr.it","grosseto.it","iglesias-carbonia.it","iglesiascarbonia.it","im.it","imperia.it","is.it","isernia.it","kr.it","la-spezia.it","laquila.it","laspezia.it","latina.it","lc.it","le.it","lecce.it","lecco.it","li.it","livorno.it","lo.it","lodi.it","lt.it","lu.it","lucca.it","macerata.it","mantova.it","massa-carrara.it","massacarrara.it","matera.it","mb.it","mc.it","me.it","medio-campidano.it","mediocampidano.it","messina.it","mi.it","milan.it","milano.it","mn.it","mo.it","modena.it","monza-brianza.it","monza-e-della-brianza.it","monza.it","monzabrianza.it","monzaebrianza.it","monzaedellabrianza.it","ms.it","mt.it","na.it","naples.it","napoli.it","no.it","novara.it","nu.it","nuoro.it","og.it","ogliastra.it","olbia-tempio.it","olbiatempio.it","or.it","oristano.it","ot.it","pa.it","padova.it","padua.it","palermo.it","parma.it","pavia.it","pc.it","pd.it","pe.it","perugia.it","pesaro-urbino.it","pesarourbino.it","pescara.it","pg.it","pi.it","piacenza.it","pisa.it","pistoia.it","pn.it","po.it","pordenone.it","potenza.it","pr.it","prato.it","pt.it","pu.it","pv.it","pz.it","ra.it","ragusa.it","ravenna.it","rc.it","re.it","reggio-calabria.it","reggio-emilia.it","reggiocalabria.it","reggioemilia.it","rg.it","ri.it","rieti.it","rimini.it","rm.it","rn.it","ro.it","roma.it","rome.it","rovigo.it","sa.it","salerno.it","sassari.it","savona.it","si.it","siena.it","siracusa.it","so.it","sondrio.it","sp.it","sr.it","ss.it","suedtirol.it","südtirol.it","sv.it","ta.it","taranto.it","te.it","tempio-olbia.it","tempioolbia.it","teramo.it","terni.it","tn.it","to.it","torino.it","tp.it","tr.it","trani-andria-barletta.it","trani-barletta-andria.it","traniandriabarletta.it","tranibarlettaandria.it","trapani.it","trento.it","treviso.it","trieste.it","ts.it","turin.it","tv.it","ud.it","udine.it","urbino-pesaro.it","urbinopesaro.it","va.it","varese.it","vb.it","vc.it","ve.it","venezia.it","venice.it","verbania.it","vercelli.it","verona.it","vi.it","vibo-valentia.it","vibovalentia.it","vicenza.it","viterbo.it","vr.it","vs.it","vt.it","vv.it","je","co.je","net.je","org.je","*.jm","jo","com.jo","org.jo","net.jo","edu.jo","sch.jo","gov.jo","mil.jo","name.jo","jobs","jp","ac.jp","ad.jp","co.jp","ed.jp","go.jp","gr.jp","lg.jp","ne.jp","or.jp","aichi.jp","akita.jp","aomori.jp","chiba.jp","ehime.jp","fukui.jp","fukuoka.jp","fukushima.jp","gifu.jp","gunma.jp","hiroshima.jp","hokkaido.jp","hyogo.jp","ibaraki.jp","ishikawa.jp","iwate.jp","kagawa.jp","kagoshima.jp","kanagawa.jp","kochi.jp","kumamoto.jp","kyoto.jp","mie.jp","miyagi.jp","miyazaki.jp","nagano.jp","nagasaki.jp","nara.jp","niigata.jp","oita.jp","okayama.jp","okinawa.jp","osaka.jp","saga.jp","saitama.jp","shiga.jp","shimane.jp","shizuoka.jp","tochigi.jp","tokushima.jp","tokyo.jp","tottori.jp","toyama.jp","wakayama.jp","yamagata.jp","yamaguchi.jp","yamanashi.jp","栃木.jp","愛知.jp","愛媛.jp","兵庫.jp","熊本.jp","茨城.jp","北海道.jp","千葉.jp","和歌山.jp","長崎.jp","長野.jp","新潟.jp","青森.jp","静岡.jp","東京.jp","石川.jp","埼玉.jp","三重.jp","京都.jp","佐賀.jp","大分.jp","大阪.jp","奈良.jp","宮城.jp","宮崎.jp","富山.jp","山口.jp","山形.jp","山梨.jp","岩手.jp","岐阜.jp","岡山.jp","島根.jp","広島.jp","徳島.jp","沖縄.jp","滋賀.jp","神奈川.jp","福井.jp","福岡.jp","福島.jp","秋田.jp","群馬.jp","香川.jp","高知.jp","鳥取.jp","鹿児島.jp","*.kawasaki.jp","*.kitakyushu.jp","*.kobe.jp","*.nagoya.jp","*.sapporo.jp","*.sendai.jp","*.yokohama.jp","!city.kawasaki.jp","!city.kitakyushu.jp","!city.kobe.jp","!city.nagoya.jp","!city.sapporo.jp","!city.sendai.jp","!city.yokohama.jp","aisai.aichi.jp","ama.aichi.jp","anjo.aichi.jp","asuke.aichi.jp","chiryu.aichi.jp","chita.aichi.jp","fuso.aichi.jp","gamagori.aichi.jp","handa.aichi.jp","hazu.aichi.jp","hekinan.aichi.jp","higashiura.aichi.jp","ichinomiya.aichi.jp","inazawa.aichi.jp","inuyama.aichi.jp","isshiki.aichi.jp","iwakura.aichi.jp","kanie.aichi.jp","kariya.aichi.jp","kasugai.aichi.jp","kira.aichi.jp","kiyosu.aichi.jp","komaki.aichi.jp","konan.aichi.jp","kota.aichi.jp","mihama.aichi.jp","miyoshi.aichi.jp","nishio.aichi.jp","nisshin.aichi.jp","obu.aichi.jp","oguchi.aichi.jp","oharu.aichi.jp","okazaki.aichi.jp","owariasahi.aichi.jp","seto.aichi.jp","shikatsu.aichi.jp","shinshiro.aichi.jp","shitara.aichi.jp","tahara.aichi.jp","takahama.aichi.jp","tobishima.aichi.jp","toei.aichi.jp","togo.aichi.jp","tokai.aichi.jp","tokoname.aichi.jp","toyoake.aichi.jp","toyohashi.aichi.jp","toyokawa.aichi.jp","toyone.aichi.jp","toyota.aichi.jp","tsushima.aichi.jp","yatomi.aichi.jp","akita.akita.jp","daisen.akita.jp","fujisato.akita.jp","gojome.akita.jp","hachirogata.akita.jp","happou.akita.jp","higashinaruse.akita.jp","honjo.akita.jp","honjyo.akita.jp","ikawa.akita.jp","kamikoani.akita.jp","kamioka.akita.jp","katagami.akita.jp","kazuno.akita.jp","kitaakita.akita.jp","kosaka.akita.jp","kyowa.akita.jp","misato.akita.jp","mitane.akita.jp","moriyoshi.akita.jp","nikaho.akita.jp","noshiro.akita.jp","odate.akita.jp","oga.akita.jp","ogata.akita.jp","semboku.akita.jp","yokote.akita.jp","yurihonjo.akita.jp","aomori.aomori.jp","gonohe.aomori.jp","hachinohe.aomori.jp","hashikami.aomori.jp","hiranai.aomori.jp","hirosaki.aomori.jp","itayanagi.aomori.jp","kuroishi.aomori.jp","misawa.aomori.jp","mutsu.aomori.jp","nakadomari.aomori.jp","noheji.aomori.jp","oirase.aomori.jp","owani.aomori.jp","rokunohe.aomori.jp","sannohe.aomori.jp","shichinohe.aomori.jp","shingo.aomori.jp","takko.aomori.jp","towada.aomori.jp","tsugaru.aomori.jp","tsuruta.aomori.jp","abiko.chiba.jp","asahi.chiba.jp","chonan.chiba.jp","chosei.chiba.jp","choshi.chiba.jp","chuo.chiba.jp","funabashi.chiba.jp","futtsu.chiba.jp","hanamigawa.chiba.jp","ichihara.chiba.jp","ichikawa.chiba.jp","ichinomiya.chiba.jp","inzai.chiba.jp","isumi.chiba.jp","kamagaya.chiba.jp","kamogawa.chiba.jp","kashiwa.chiba.jp","katori.chiba.jp","katsuura.chiba.jp","kimitsu.chiba.jp","kisarazu.chiba.jp","kozaki.chiba.jp","kujukuri.chiba.jp","kyonan.chiba.jp","matsudo.chiba.jp","midori.chiba.jp","mihama.chiba.jp","minamiboso.chiba.jp","mobara.chiba.jp","mutsuzawa.chiba.jp","nagara.chiba.jp","nagareyama.chiba.jp","narashino.chiba.jp","narita.chiba.jp","noda.chiba.jp","oamishirasato.chiba.jp","omigawa.chiba.jp","onjuku.chiba.jp","otaki.chiba.jp","sakae.chiba.jp","sakura.chiba.jp","shimofusa.chiba.jp","shirako.chiba.jp","shiroi.chiba.jp","shisui.chiba.jp","sodegaura.chiba.jp","sosa.chiba.jp","tako.chiba.jp","tateyama.chiba.jp","togane.chiba.jp","tohnosho.chiba.jp","tomisato.chiba.jp","urayasu.chiba.jp","yachimata.chiba.jp","yachiyo.chiba.jp","yokaichiba.chiba.jp","yokoshibahikari.chiba.jp","yotsukaido.chiba.jp","ainan.ehime.jp","honai.ehime.jp","ikata.ehime.jp","imabari.ehime.jp","iyo.ehime.jp","kamijima.ehime.jp","kihoku.ehime.jp","kumakogen.ehime.jp","masaki.ehime.jp","matsuno.ehime.jp","matsuyama.ehime.jp","namikata.ehime.jp","niihama.ehime.jp","ozu.ehime.jp","saijo.ehime.jp","seiyo.ehime.jp","shikokuchuo.ehime.jp","tobe.ehime.jp","toon.ehime.jp","uchiko.ehime.jp","uwajima.ehime.jp","yawatahama.ehime.jp","echizen.fukui.jp","eiheiji.fukui.jp","fukui.fukui.jp","ikeda.fukui.jp","katsuyama.fukui.jp","mihama.fukui.jp","minamiechizen.fukui.jp","obama.fukui.jp","ohi.fukui.jp","ono.fukui.jp","sabae.fukui.jp","sakai.fukui.jp","takahama.fukui.jp","tsuruga.fukui.jp","wakasa.fukui.jp","ashiya.fukuoka.jp","buzen.fukuoka.jp","chikugo.fukuoka.jp","chikuho.fukuoka.jp","chikujo.fukuoka.jp","chikushino.fukuoka.jp","chikuzen.fukuoka.jp","chuo.fukuoka.jp","dazaifu.fukuoka.jp","fukuchi.fukuoka.jp","hakata.fukuoka.jp","higashi.fukuoka.jp","hirokawa.fukuoka.jp","hisayama.fukuoka.jp","iizuka.fukuoka.jp","inatsuki.fukuoka.jp","kaho.fukuoka.jp","kasuga.fukuoka.jp","kasuya.fukuoka.jp","kawara.fukuoka.jp","keisen.fukuoka.jp","koga.fukuoka.jp","kurate.fukuoka.jp","kurogi.fukuoka.jp","kurume.fukuoka.jp","minami.fukuoka.jp","miyako.fukuoka.jp","miyama.fukuoka.jp","miyawaka.fukuoka.jp","mizumaki.fukuoka.jp","munakata.fukuoka.jp","nakagawa.fukuoka.jp","nakama.fukuoka.jp","nishi.fukuoka.jp","nogata.fukuoka.jp","ogori.fukuoka.jp","okagaki.fukuoka.jp","okawa.fukuoka.jp","oki.fukuoka.jp","omuta.fukuoka.jp","onga.fukuoka.jp","onojo.fukuoka.jp","oto.fukuoka.jp","saigawa.fukuoka.jp","sasaguri.fukuoka.jp","shingu.fukuoka.jp","shinyoshitomi.fukuoka.jp","shonai.fukuoka.jp","soeda.fukuoka.jp","sue.fukuoka.jp","tachiarai.fukuoka.jp","tagawa.fukuoka.jp","takata.fukuoka.jp","toho.fukuoka.jp","toyotsu.fukuoka.jp","tsuiki.fukuoka.jp","ukiha.fukuoka.jp","umi.fukuoka.jp","usui.fukuoka.jp","yamada.fukuoka.jp","yame.fukuoka.jp","yanagawa.fukuoka.jp","yukuhashi.fukuoka.jp","aizubange.fukushima.jp","aizumisato.fukushima.jp","aizuwakamatsu.fukushima.jp","asakawa.fukushima.jp","bandai.fukushima.jp","date.fukushima.jp","fukushima.fukushima.jp","furudono.fukushima.jp","futaba.fukushima.jp","hanawa.fukushima.jp","higashi.fukushima.jp","hirata.fukushima.jp","hirono.fukushima.jp","iitate.fukushima.jp","inawashiro.fukushima.jp","ishikawa.fukushima.jp","iwaki.fukushima.jp","izumizaki.fukushima.jp","kagamiishi.fukushima.jp","kaneyama.fukushima.jp","kawamata.fukushima.jp","kitakata.fukushima.jp","kitashiobara.fukushima.jp","koori.fukushima.jp","koriyama.fukushima.jp","kunimi.fukushima.jp","miharu.fukushima.jp","mishima.fukushima.jp","namie.fukushima.jp","nango.fukushima.jp","nishiaizu.fukushima.jp","nishigo.fukushima.jp","okuma.fukushima.jp","omotego.fukushima.jp","ono.fukushima.jp","otama.fukushima.jp","samegawa.fukushima.jp","shimogo.fukushima.jp","shirakawa.fukushima.jp","showa.fukushima.jp","soma.fukushima.jp","sukagawa.fukushima.jp","taishin.fukushima.jp","tamakawa.fukushima.jp","tanagura.fukushima.jp","tenei.fukushima.jp","yabuki.fukushima.jp","yamato.fukushima.jp","yamatsuri.fukushima.jp","yanaizu.fukushima.jp","yugawa.fukushima.jp","anpachi.gifu.jp","ena.gifu.jp","gifu.gifu.jp","ginan.gifu.jp","godo.gifu.jp","gujo.gifu.jp","hashima.gifu.jp","hichiso.gifu.jp","hida.gifu.jp","higashishirakawa.gifu.jp","ibigawa.gifu.jp","ikeda.gifu.jp","kakamigahara.gifu.jp","kani.gifu.jp","kasahara.gifu.jp","kasamatsu.gifu.jp","kawaue.gifu.jp","kitagata.gifu.jp","mino.gifu.jp","minokamo.gifu.jp","mitake.gifu.jp","mizunami.gifu.jp","motosu.gifu.jp","nakatsugawa.gifu.jp","ogaki.gifu.jp","sakahogi.gifu.jp","seki.gifu.jp","sekigahara.gifu.jp","shirakawa.gifu.jp","tajimi.gifu.jp","takayama.gifu.jp","tarui.gifu.jp","toki.gifu.jp","tomika.gifu.jp","wanouchi.gifu.jp","yamagata.gifu.jp","yaotsu.gifu.jp","yoro.gifu.jp","annaka.gunma.jp","chiyoda.gunma.jp","fujioka.gunma.jp","higashiagatsuma.gunma.jp","isesaki.gunma.jp","itakura.gunma.jp","kanna.gunma.jp","kanra.gunma.jp","katashina.gunma.jp","kawaba.gunma.jp","kiryu.gunma.jp","kusatsu.gunma.jp","maebashi.gunma.jp","meiwa.gunma.jp","midori.gunma.jp","minakami.gunma.jp","naganohara.gunma.jp","nakanojo.gunma.jp","nanmoku.gunma.jp","numata.gunma.jp","oizumi.gunma.jp","ora.gunma.jp","ota.gunma.jp","shibukawa.gunma.jp","shimonita.gunma.jp","shinto.gunma.jp","showa.gunma.jp","takasaki.gunma.jp","takayama.gunma.jp","tamamura.gunma.jp","tatebayashi.gunma.jp","tomioka.gunma.jp","tsukiyono.gunma.jp","tsumagoi.gunma.jp","ueno.gunma.jp","yoshioka.gunma.jp","asaminami.hiroshima.jp","daiwa.hiroshima.jp","etajima.hiroshima.jp","fuchu.hiroshima.jp","fukuyama.hiroshima.jp","hatsukaichi.hiroshima.jp","higashihiroshima.hiroshima.jp","hongo.hiroshima.jp","jinsekikogen.hiroshima.jp","kaita.hiroshima.jp","kui.hiroshima.jp","kumano.hiroshima.jp","kure.hiroshima.jp","mihara.hiroshima.jp","miyoshi.hiroshima.jp","naka.hiroshima.jp","onomichi.hiroshima.jp","osakikamijima.hiroshima.jp","otake.hiroshima.jp","saka.hiroshima.jp","sera.hiroshima.jp","seranishi.hiroshima.jp","shinichi.hiroshima.jp","shobara.hiroshima.jp","takehara.hiroshima.jp","abashiri.hokkaido.jp","abira.hokkaido.jp","aibetsu.hokkaido.jp","akabira.hokkaido.jp","akkeshi.hokkaido.jp","asahikawa.hokkaido.jp","ashibetsu.hokkaido.jp","ashoro.hokkaido.jp","assabu.hokkaido.jp","atsuma.hokkaido.jp","bibai.hokkaido.jp","biei.hokkaido.jp","bifuka.hokkaido.jp","bihoro.hokkaido.jp","biratori.hokkaido.jp","chippubetsu.hokkaido.jp","chitose.hokkaido.jp","date.hokkaido.jp","ebetsu.hokkaido.jp","embetsu.hokkaido.jp","eniwa.hokkaido.jp","erimo.hokkaido.jp","esan.hokkaido.jp","esashi.hokkaido.jp","fukagawa.hokkaido.jp","fukushima.hokkaido.jp","furano.hokkaido.jp","furubira.hokkaido.jp","haboro.hokkaido.jp","hakodate.hokkaido.jp","hamatonbetsu.hokkaido.jp","hidaka.hokkaido.jp","higashikagura.hokkaido.jp","higashikawa.hokkaido.jp","hiroo.hokkaido.jp","hokuryu.hokkaido.jp","hokuto.hokkaido.jp","honbetsu.hokkaido.jp","horokanai.hokkaido.jp","horonobe.hokkaido.jp","ikeda.hokkaido.jp","imakane.hokkaido.jp","ishikari.hokkaido.jp","iwamizawa.hokkaido.jp","iwanai.hokkaido.jp","kamifurano.hokkaido.jp","kamikawa.hokkaido.jp","kamishihoro.hokkaido.jp","kamisunagawa.hokkaido.jp","kamoenai.hokkaido.jp","kayabe.hokkaido.jp","kembuchi.hokkaido.jp","kikonai.hokkaido.jp","kimobetsu.hokkaido.jp","kitahiroshima.hokkaido.jp","kitami.hokkaido.jp","kiyosato.hokkaido.jp","koshimizu.hokkaido.jp","kunneppu.hokkaido.jp","kuriyama.hokkaido.jp","kuromatsunai.hokkaido.jp","kushiro.hokkaido.jp","kutchan.hokkaido.jp","kyowa.hokkaido.jp","mashike.hokkaido.jp","matsumae.hokkaido.jp","mikasa.hokkaido.jp","minamifurano.hokkaido.jp","mombetsu.hokkaido.jp","moseushi.hokkaido.jp","mukawa.hokkaido.jp","muroran.hokkaido.jp","naie.hokkaido.jp","nakagawa.hokkaido.jp","nakasatsunai.hokkaido.jp","nakatombetsu.hokkaido.jp","nanae.hokkaido.jp","nanporo.hokkaido.jp","nayoro.hokkaido.jp","nemuro.hokkaido.jp","niikappu.hokkaido.jp","niki.hokkaido.jp","nishiokoppe.hokkaido.jp","noboribetsu.hokkaido.jp","numata.hokkaido.jp","obihiro.hokkaido.jp","obira.hokkaido.jp","oketo.hokkaido.jp","okoppe.hokkaido.jp","otaru.hokkaido.jp","otobe.hokkaido.jp","otofuke.hokkaido.jp","otoineppu.hokkaido.jp","oumu.hokkaido.jp","ozora.hokkaido.jp","pippu.hokkaido.jp","rankoshi.hokkaido.jp","rebun.hokkaido.jp","rikubetsu.hokkaido.jp","rishiri.hokkaido.jp","rishirifuji.hokkaido.jp","saroma.hokkaido.jp","sarufutsu.hokkaido.jp","shakotan.hokkaido.jp","shari.hokkaido.jp","shibecha.hokkaido.jp","shibetsu.hokkaido.jp","shikabe.hokkaido.jp","shikaoi.hokkaido.jp","shimamaki.hokkaido.jp","shimizu.hokkaido.jp","shimokawa.hokkaido.jp","shinshinotsu.hokkaido.jp","shintoku.hokkaido.jp","shiranuka.hokkaido.jp","shiraoi.hokkaido.jp","shiriuchi.hokkaido.jp","sobetsu.hokkaido.jp","sunagawa.hokkaido.jp","taiki.hokkaido.jp","takasu.hokkaido.jp","takikawa.hokkaido.jp","takinoue.hokkaido.jp","teshikaga.hokkaido.jp","tobetsu.hokkaido.jp","tohma.hokkaido.jp","tomakomai.hokkaido.jp","tomari.hokkaido.jp","toya.hokkaido.jp","toyako.hokkaido.jp","toyotomi.hokkaido.jp","toyoura.hokkaido.jp","tsubetsu.hokkaido.jp","tsukigata.hokkaido.jp","urakawa.hokkaido.jp","urausu.hokkaido.jp","uryu.hokkaido.jp","utashinai.hokkaido.jp","wakkanai.hokkaido.jp","wassamu.hokkaido.jp","yakumo.hokkaido.jp","yoichi.hokkaido.jp","aioi.hyogo.jp","akashi.hyogo.jp","ako.hyogo.jp","amagasaki.hyogo.jp","aogaki.hyogo.jp","asago.hyogo.jp","ashiya.hyogo.jp","awaji.hyogo.jp","fukusaki.hyogo.jp","goshiki.hyogo.jp","harima.hyogo.jp","himeji.hyogo.jp","ichikawa.hyogo.jp","inagawa.hyogo.jp","itami.hyogo.jp","kakogawa.hyogo.jp","kamigori.hyogo.jp","kamikawa.hyogo.jp","kasai.hyogo.jp","kasuga.hyogo.jp","kawanishi.hyogo.jp","miki.hyogo.jp","minamiawaji.hyogo.jp","nishinomiya.hyogo.jp","nishiwaki.hyogo.jp","ono.hyogo.jp","sanda.hyogo.jp","sannan.hyogo.jp","sasayama.hyogo.jp","sayo.hyogo.jp","shingu.hyogo.jp","shinonsen.hyogo.jp","shiso.hyogo.jp","sumoto.hyogo.jp","taishi.hyogo.jp","taka.hyogo.jp","takarazuka.hyogo.jp","takasago.hyogo.jp","takino.hyogo.jp","tamba.hyogo.jp","tatsuno.hyogo.jp","toyooka.hyogo.jp","yabu.hyogo.jp","yashiro.hyogo.jp","yoka.hyogo.jp","yokawa.hyogo.jp","ami.ibaraki.jp","asahi.ibaraki.jp","bando.ibaraki.jp","chikusei.ibaraki.jp","daigo.ibaraki.jp","fujishiro.ibaraki.jp","hitachi.ibaraki.jp","hitachinaka.ibaraki.jp","hitachiomiya.ibaraki.jp","hitachiota.ibaraki.jp","ibaraki.ibaraki.jp","ina.ibaraki.jp","inashiki.ibaraki.jp","itako.ibaraki.jp","iwama.ibaraki.jp","joso.ibaraki.jp","kamisu.ibaraki.jp","kasama.ibaraki.jp","kashima.ibaraki.jp","kasumigaura.ibaraki.jp","koga.ibaraki.jp","miho.ibaraki.jp","mito.ibaraki.jp","moriya.ibaraki.jp","naka.ibaraki.jp","namegata.ibaraki.jp","oarai.ibaraki.jp","ogawa.ibaraki.jp","omitama.ibaraki.jp","ryugasaki.ibaraki.jp","sakai.ibaraki.jp","sakuragawa.ibaraki.jp","shimodate.ibaraki.jp","shimotsuma.ibaraki.jp","shirosato.ibaraki.jp","sowa.ibaraki.jp","suifu.ibaraki.jp","takahagi.ibaraki.jp","tamatsukuri.ibaraki.jp","tokai.ibaraki.jp","tomobe.ibaraki.jp","tone.ibaraki.jp","toride.ibaraki.jp","tsuchiura.ibaraki.jp","tsukuba.ibaraki.jp","uchihara.ibaraki.jp","ushiku.ibaraki.jp","yachiyo.ibaraki.jp","yamagata.ibaraki.jp","yawara.ibaraki.jp","yuki.ibaraki.jp","anamizu.ishikawa.jp","hakui.ishikawa.jp","hakusan.ishikawa.jp","kaga.ishikawa.jp","kahoku.ishikawa.jp","kanazawa.ishikawa.jp","kawakita.ishikawa.jp","komatsu.ishikawa.jp","nakanoto.ishikawa.jp","nanao.ishikawa.jp","nomi.ishikawa.jp","nonoichi.ishikawa.jp","noto.ishikawa.jp","shika.ishikawa.jp","suzu.ishikawa.jp","tsubata.ishikawa.jp","tsurugi.ishikawa.jp","uchinada.ishikawa.jp","wajima.ishikawa.jp","fudai.iwate.jp","fujisawa.iwate.jp","hanamaki.iwate.jp","hiraizumi.iwate.jp","hirono.iwate.jp","ichinohe.iwate.jp","ichinoseki.iwate.jp","iwaizumi.iwate.jp","iwate.iwate.jp","joboji.iwate.jp","kamaishi.iwate.jp","kanegasaki.iwate.jp","karumai.iwate.jp","kawai.iwate.jp","kitakami.iwate.jp","kuji.iwate.jp","kunohe.iwate.jp","kuzumaki.iwate.jp","miyako.iwate.jp","mizusawa.iwate.jp","morioka.iwate.jp","ninohe.iwate.jp","noda.iwate.jp","ofunato.iwate.jp","oshu.iwate.jp","otsuchi.iwate.jp","rikuzentakata.iwate.jp","shiwa.iwate.jp","shizukuishi.iwate.jp","sumita.iwate.jp","tanohata.iwate.jp","tono.iwate.jp","yahaba.iwate.jp","yamada.iwate.jp","ayagawa.kagawa.jp","higashikagawa.kagawa.jp","kanonji.kagawa.jp","kotohira.kagawa.jp","manno.kagawa.jp","marugame.kagawa.jp","mitoyo.kagawa.jp","naoshima.kagawa.jp","sanuki.kagawa.jp","tadotsu.kagawa.jp","takamatsu.kagawa.jp","tonosho.kagawa.jp","uchinomi.kagawa.jp","utazu.kagawa.jp","zentsuji.kagawa.jp","akune.kagoshima.jp","amami.kagoshima.jp","hioki.kagoshima.jp","isa.kagoshima.jp","isen.kagoshima.jp","izumi.kagoshima.jp","kagoshima.kagoshima.jp","kanoya.kagoshima.jp","kawanabe.kagoshima.jp","kinko.kagoshima.jp","kouyama.kagoshima.jp","makurazaki.kagoshima.jp","matsumoto.kagoshima.jp","minamitane.kagoshima.jp","nakatane.kagoshima.jp","nishinoomote.kagoshima.jp","satsumasendai.kagoshima.jp","soo.kagoshima.jp","tarumizu.kagoshima.jp","yusui.kagoshima.jp","aikawa.kanagawa.jp","atsugi.kanagawa.jp","ayase.kanagawa.jp","chigasaki.kanagawa.jp","ebina.kanagawa.jp","fujisawa.kanagawa.jp","hadano.kanagawa.jp","hakone.kanagawa.jp","hiratsuka.kanagawa.jp","isehara.kanagawa.jp","kaisei.kanagawa.jp","kamakura.kanagawa.jp","kiyokawa.kanagawa.jp","matsuda.kanagawa.jp","minamiashigara.kanagawa.jp","miura.kanagawa.jp","nakai.kanagawa.jp","ninomiya.kanagawa.jp","odawara.kanagawa.jp","oi.kanagawa.jp","oiso.kanagawa.jp","sagamihara.kanagawa.jp","samukawa.kanagawa.jp","tsukui.kanagawa.jp","yamakita.kanagawa.jp","yamato.kanagawa.jp","yokosuka.kanagawa.jp","yugawara.kanagawa.jp","zama.kanagawa.jp","zushi.kanagawa.jp","aki.kochi.jp","geisei.kochi.jp","hidaka.kochi.jp","higashitsuno.kochi.jp","ino.kochi.jp","kagami.kochi.jp","kami.kochi.jp","kitagawa.kochi.jp","kochi.kochi.jp","mihara.kochi.jp","motoyama.kochi.jp","muroto.kochi.jp","nahari.kochi.jp","nakamura.kochi.jp","nankoku.kochi.jp","nishitosa.kochi.jp","niyodogawa.kochi.jp","ochi.kochi.jp","okawa.kochi.jp","otoyo.kochi.jp","otsuki.kochi.jp","sakawa.kochi.jp","sukumo.kochi.jp","susaki.kochi.jp","tosa.kochi.jp","tosashimizu.kochi.jp","toyo.kochi.jp","tsuno.kochi.jp","umaji.kochi.jp","yasuda.kochi.jp","yusuhara.kochi.jp","amakusa.kumamoto.jp","arao.kumamoto.jp","aso.kumamoto.jp","choyo.kumamoto.jp","gyokuto.kumamoto.jp","kamiamakusa.kumamoto.jp","kikuchi.kumamoto.jp","kumamoto.kumamoto.jp","mashiki.kumamoto.jp","mifune.kumamoto.jp","minamata.kumamoto.jp","minamioguni.kumamoto.jp","nagasu.kumamoto.jp","nishihara.kumamoto.jp","oguni.kumamoto.jp","ozu.kumamoto.jp","sumoto.kumamoto.jp","takamori.kumamoto.jp","uki.kumamoto.jp","uto.kumamoto.jp","yamaga.kumamoto.jp","yamato.kumamoto.jp","yatsushiro.kumamoto.jp","ayabe.kyoto.jp","fukuchiyama.kyoto.jp","higashiyama.kyoto.jp","ide.kyoto.jp","ine.kyoto.jp","joyo.kyoto.jp","kameoka.kyoto.jp","kamo.kyoto.jp","kita.kyoto.jp","kizu.kyoto.jp","kumiyama.kyoto.jp","kyotamba.kyoto.jp","kyotanabe.kyoto.jp","kyotango.kyoto.jp","maizuru.kyoto.jp","minami.kyoto.jp","minamiyamashiro.kyoto.jp","miyazu.kyoto.jp","muko.kyoto.jp","nagaokakyo.kyoto.jp","nakagyo.kyoto.jp","nantan.kyoto.jp","oyamazaki.kyoto.jp","sakyo.kyoto.jp","seika.kyoto.jp","tanabe.kyoto.jp","uji.kyoto.jp","ujitawara.kyoto.jp","wazuka.kyoto.jp","yamashina.kyoto.jp","yawata.kyoto.jp","asahi.mie.jp","inabe.mie.jp","ise.mie.jp","kameyama.mie.jp","kawagoe.mie.jp","kiho.mie.jp","kisosaki.mie.jp","kiwa.mie.jp","komono.mie.jp","kumano.mie.jp","kuwana.mie.jp","matsusaka.mie.jp","meiwa.mie.jp","mihama.mie.jp","minamiise.mie.jp","misugi.mie.jp","miyama.mie.jp","nabari.mie.jp","shima.mie.jp","suzuka.mie.jp","tado.mie.jp","taiki.mie.jp","taki.mie.jp","tamaki.mie.jp","toba.mie.jp","tsu.mie.jp","udono.mie.jp","ureshino.mie.jp","watarai.mie.jp","yokkaichi.mie.jp","furukawa.miyagi.jp","higashimatsushima.miyagi.jp","ishinomaki.miyagi.jp","iwanuma.miyagi.jp","kakuda.miyagi.jp","kami.miyagi.jp","kawasaki.miyagi.jp","marumori.miyagi.jp","matsushima.miyagi.jp","minamisanriku.miyagi.jp","misato.miyagi.jp","murata.miyagi.jp","natori.miyagi.jp","ogawara.miyagi.jp","ohira.miyagi.jp","onagawa.miyagi.jp","osaki.miyagi.jp","rifu.miyagi.jp","semine.miyagi.jp","shibata.miyagi.jp","shichikashuku.miyagi.jp","shikama.miyagi.jp","shiogama.miyagi.jp","shiroishi.miyagi.jp","tagajo.miyagi.jp","taiwa.miyagi.jp","tome.miyagi.jp","tomiya.miyagi.jp","wakuya.miyagi.jp","watari.miyagi.jp","yamamoto.miyagi.jp","zao.miyagi.jp","aya.miyazaki.jp","ebino.miyazaki.jp","gokase.miyazaki.jp","hyuga.miyazaki.jp","kadogawa.miyazaki.jp","kawaminami.miyazaki.jp","kijo.miyazaki.jp","kitagawa.miyazaki.jp","kitakata.miyazaki.jp","kitaura.miyazaki.jp","kobayashi.miyazaki.jp","kunitomi.miyazaki.jp","kushima.miyazaki.jp","mimata.miyazaki.jp","miyakonojo.miyazaki.jp","miyazaki.miyazaki.jp","morotsuka.miyazaki.jp","nichinan.miyazaki.jp","nishimera.miyazaki.jp","nobeoka.miyazaki.jp","saito.miyazaki.jp","shiiba.miyazaki.jp","shintomi.miyazaki.jp","takaharu.miyazaki.jp","takanabe.miyazaki.jp","takazaki.miyazaki.jp","tsuno.miyazaki.jp","achi.nagano.jp","agematsu.nagano.jp","anan.nagano.jp","aoki.nagano.jp","asahi.nagano.jp","azumino.nagano.jp","chikuhoku.nagano.jp","chikuma.nagano.jp","chino.nagano.jp","fujimi.nagano.jp","hakuba.nagano.jp","hara.nagano.jp","hiraya.nagano.jp","iida.nagano.jp","iijima.nagano.jp","iiyama.nagano.jp","iizuna.nagano.jp","ikeda.nagano.jp","ikusaka.nagano.jp","ina.nagano.jp","karuizawa.nagano.jp","kawakami.nagano.jp","kiso.nagano.jp","kisofukushima.nagano.jp","kitaaiki.nagano.jp","komagane.nagano.jp","komoro.nagano.jp","matsukawa.nagano.jp","matsumoto.nagano.jp","miasa.nagano.jp","minamiaiki.nagano.jp","minamimaki.nagano.jp","minamiminowa.nagano.jp","minowa.nagano.jp","miyada.nagano.jp","miyota.nagano.jp","mochizuki.nagano.jp","nagano.nagano.jp","nagawa.nagano.jp","nagiso.nagano.jp","nakagawa.nagano.jp","nakano.nagano.jp","nozawaonsen.nagano.jp","obuse.nagano.jp","ogawa.nagano.jp","okaya.nagano.jp","omachi.nagano.jp","omi.nagano.jp","ookuwa.nagano.jp","ooshika.nagano.jp","otaki.nagano.jp","otari.nagano.jp","sakae.nagano.jp","sakaki.nagano.jp","saku.nagano.jp","sakuho.nagano.jp","shimosuwa.nagano.jp","shinanomachi.nagano.jp","shiojiri.nagano.jp","suwa.nagano.jp","suzaka.nagano.jp","takagi.nagano.jp","takamori.nagano.jp","takayama.nagano.jp","tateshina.nagano.jp","tatsuno.nagano.jp","togakushi.nagano.jp","togura.nagano.jp","tomi.nagano.jp","ueda.nagano.jp","wada.nagano.jp","yamagata.nagano.jp","yamanouchi.nagano.jp","yasaka.nagano.jp","yasuoka.nagano.jp","chijiwa.nagasaki.jp","futsu.nagasaki.jp","goto.nagasaki.jp","hasami.nagasaki.jp","hirado.nagasaki.jp","iki.nagasaki.jp","isahaya.nagasaki.jp","kawatana.nagasaki.jp","kuchinotsu.nagasaki.jp","matsuura.nagasaki.jp","nagasaki.nagasaki.jp","obama.nagasaki.jp","omura.nagasaki.jp","oseto.nagasaki.jp","saikai.nagasaki.jp","sasebo.nagasaki.jp","seihi.nagasaki.jp","shimabara.nagasaki.jp","shinkamigoto.nagasaki.jp","togitsu.nagasaki.jp","tsushima.nagasaki.jp","unzen.nagasaki.jp","ando.nara.jp","gose.nara.jp","heguri.nara.jp","higashiyoshino.nara.jp","ikaruga.nara.jp","ikoma.nara.jp","kamikitayama.nara.jp","kanmaki.nara.jp","kashiba.nara.jp","kashihara.nara.jp","katsuragi.nara.jp","kawai.nara.jp","kawakami.nara.jp","kawanishi.nara.jp","koryo.nara.jp","kurotaki.nara.jp","mitsue.nara.jp","miyake.nara.jp","nara.nara.jp","nosegawa.nara.jp","oji.nara.jp","ouda.nara.jp","oyodo.nara.jp","sakurai.nara.jp","sango.nara.jp","shimoichi.nara.jp","shimokitayama.nara.jp","shinjo.nara.jp","soni.nara.jp","takatori.nara.jp","tawaramoto.nara.jp","tenkawa.nara.jp","tenri.nara.jp","uda.nara.jp","yamatokoriyama.nara.jp","yamatotakada.nara.jp","yamazoe.nara.jp","yoshino.nara.jp","aga.niigata.jp","agano.niigata.jp","gosen.niigata.jp","itoigawa.niigata.jp","izumozaki.niigata.jp","joetsu.niigata.jp","kamo.niigata.jp","kariwa.niigata.jp","kashiwazaki.niigata.jp","minamiuonuma.niigata.jp","mitsuke.niigata.jp","muika.niigata.jp","murakami.niigata.jp","myoko.niigata.jp","nagaoka.niigata.jp","niigata.niigata.jp","ojiya.niigata.jp","omi.niigata.jp","sado.niigata.jp","sanjo.niigata.jp","seiro.niigata.jp","seirou.niigata.jp","sekikawa.niigata.jp","shibata.niigata.jp","tagami.niigata.jp","tainai.niigata.jp","tochio.niigata.jp","tokamachi.niigata.jp","tsubame.niigata.jp","tsunan.niigata.jp","uonuma.niigata.jp","yahiko.niigata.jp","yoita.niigata.jp","yuzawa.niigata.jp","beppu.oita.jp","bungoono.oita.jp","bungotakada.oita.jp","hasama.oita.jp","hiji.oita.jp","himeshima.oita.jp","hita.oita.jp","kamitsue.oita.jp","kokonoe.oita.jp","kuju.oita.jp","kunisaki.oita.jp","kusu.oita.jp","oita.oita.jp","saiki.oita.jp","taketa.oita.jp","tsukumi.oita.jp","usa.oita.jp","usuki.oita.jp","yufu.oita.jp","akaiwa.okayama.jp","asakuchi.okayama.jp","bizen.okayama.jp","hayashima.okayama.jp","ibara.okayama.jp","kagamino.okayama.jp","kasaoka.okayama.jp","kibichuo.okayama.jp","kumenan.okayama.jp","kurashiki.okayama.jp","maniwa.okayama.jp","misaki.okayama.jp","nagi.okayama.jp","niimi.okayama.jp","nishiawakura.okayama.jp","okayama.okayama.jp","satosho.okayama.jp","setouchi.okayama.jp","shinjo.okayama.jp","shoo.okayama.jp","soja.okayama.jp","takahashi.okayama.jp","tamano.okayama.jp","tsuyama.okayama.jp","wake.okayama.jp","yakage.okayama.jp","aguni.okinawa.jp","ginowan.okinawa.jp","ginoza.okinawa.jp","gushikami.okinawa.jp","haebaru.okinawa.jp","higashi.okinawa.jp","hirara.okinawa.jp","iheya.okinawa.jp","ishigaki.okinawa.jp","ishikawa.okinawa.jp","itoman.okinawa.jp","izena.okinawa.jp","kadena.okinawa.jp","kin.okinawa.jp","kitadaito.okinawa.jp","kitanakagusuku.okinawa.jp","kumejima.okinawa.jp","kunigami.okinawa.jp","minamidaito.okinawa.jp","motobu.okinawa.jp","nago.okinawa.jp","naha.okinawa.jp","nakagusuku.okinawa.jp","nakijin.okinawa.jp","nanjo.okinawa.jp","nishihara.okinawa.jp","ogimi.okinawa.jp","okinawa.okinawa.jp","onna.okinawa.jp","shimoji.okinawa.jp","taketomi.okinawa.jp","tarama.okinawa.jp","tokashiki.okinawa.jp","tomigusuku.okinawa.jp","tonaki.okinawa.jp","urasoe.okinawa.jp","uruma.okinawa.jp","yaese.okinawa.jp","yomitan.okinawa.jp","yonabaru.okinawa.jp","yonaguni.okinawa.jp","zamami.okinawa.jp","abeno.osaka.jp","chihayaakasaka.osaka.jp","chuo.osaka.jp","daito.osaka.jp","fujiidera.osaka.jp","habikino.osaka.jp","hannan.osaka.jp","higashiosaka.osaka.jp","higashisumiyoshi.osaka.jp","higashiyodogawa.osaka.jp","hirakata.osaka.jp","ibaraki.osaka.jp","ikeda.osaka.jp","izumi.osaka.jp","izumiotsu.osaka.jp","izumisano.osaka.jp","kadoma.osaka.jp","kaizuka.osaka.jp","kanan.osaka.jp","kashiwara.osaka.jp","katano.osaka.jp","kawachinagano.osaka.jp","kishiwada.osaka.jp","kita.osaka.jp","kumatori.osaka.jp","matsubara.osaka.jp","minato.osaka.jp","minoh.osaka.jp","misaki.osaka.jp","moriguchi.osaka.jp","neyagawa.osaka.jp","nishi.osaka.jp","nose.osaka.jp","osakasayama.osaka.jp","sakai.osaka.jp","sayama.osaka.jp","sennan.osaka.jp","settsu.osaka.jp","shijonawate.osaka.jp","shimamoto.osaka.jp","suita.osaka.jp","tadaoka.osaka.jp","taishi.osaka.jp","tajiri.osaka.jp","takaishi.osaka.jp","takatsuki.osaka.jp","tondabayashi.osaka.jp","toyonaka.osaka.jp","toyono.osaka.jp","yao.osaka.jp","ariake.saga.jp","arita.saga.jp","fukudomi.saga.jp","genkai.saga.jp","hamatama.saga.jp","hizen.saga.jp","imari.saga.jp","kamimine.saga.jp","kanzaki.saga.jp","karatsu.saga.jp","kashima.saga.jp","kitagata.saga.jp","kitahata.saga.jp","kiyama.saga.jp","kouhoku.saga.jp","kyuragi.saga.jp","nishiarita.saga.jp","ogi.saga.jp","omachi.saga.jp","ouchi.saga.jp","saga.saga.jp","shiroishi.saga.jp","taku.saga.jp","tara.saga.jp","tosu.saga.jp","yoshinogari.saga.jp","arakawa.saitama.jp","asaka.saitama.jp","chichibu.saitama.jp","fujimi.saitama.jp","fujimino.saitama.jp","fukaya.saitama.jp","hanno.saitama.jp","hanyu.saitama.jp","hasuda.saitama.jp","hatogaya.saitama.jp","hatoyama.saitama.jp","hidaka.saitama.jp","higashichichibu.saitama.jp","higashimatsuyama.saitama.jp","honjo.saitama.jp","ina.saitama.jp","iruma.saitama.jp","iwatsuki.saitama.jp","kamiizumi.saitama.jp","kamikawa.saitama.jp","kamisato.saitama.jp","kasukabe.saitama.jp","kawagoe.saitama.jp","kawaguchi.saitama.jp","kawajima.saitama.jp","kazo.saitama.jp","kitamoto.saitama.jp","koshigaya.saitama.jp","kounosu.saitama.jp","kuki.saitama.jp","kumagaya.saitama.jp","matsubushi.saitama.jp","minano.saitama.jp","misato.saitama.jp","miyashiro.saitama.jp","miyoshi.saitama.jp","moroyama.saitama.jp","nagatoro.saitama.jp","namegawa.saitama.jp","niiza.saitama.jp","ogano.saitama.jp","ogawa.saitama.jp","ogose.saitama.jp","okegawa.saitama.jp","omiya.saitama.jp","otaki.saitama.jp","ranzan.saitama.jp","ryokami.saitama.jp","saitama.saitama.jp","sakado.saitama.jp","satte.saitama.jp","sayama.saitama.jp","shiki.saitama.jp","shiraoka.saitama.jp","soka.saitama.jp","sugito.saitama.jp","toda.saitama.jp","tokigawa.saitama.jp","tokorozawa.saitama.jp","tsurugashima.saitama.jp","urawa.saitama.jp","warabi.saitama.jp","yashio.saitama.jp","yokoze.saitama.jp","yono.saitama.jp","yorii.saitama.jp","yoshida.saitama.jp","yoshikawa.saitama.jp","yoshimi.saitama.jp","aisho.shiga.jp","gamo.shiga.jp","higashiomi.shiga.jp","hikone.shiga.jp","koka.shiga.jp","konan.shiga.jp","kosei.shiga.jp","koto.shiga.jp","kusatsu.shiga.jp","maibara.shiga.jp","moriyama.shiga.jp","nagahama.shiga.jp","nishiazai.shiga.jp","notogawa.shiga.jp","omihachiman.shiga.jp","otsu.shiga.jp","ritto.shiga.jp","ryuoh.shiga.jp","takashima.shiga.jp","takatsuki.shiga.jp","torahime.shiga.jp","toyosato.shiga.jp","yasu.shiga.jp","akagi.shimane.jp","ama.shimane.jp","gotsu.shimane.jp","hamada.shimane.jp","higashiizumo.shimane.jp","hikawa.shimane.jp","hikimi.shimane.jp","izumo.shimane.jp","kakinoki.shimane.jp","masuda.shimane.jp","matsue.shimane.jp","misato.shimane.jp","nishinoshima.shimane.jp","ohda.shimane.jp","okinoshima.shimane.jp","okuizumo.shimane.jp","shimane.shimane.jp","tamayu.shimane.jp","tsuwano.shimane.jp","unnan.shimane.jp","yakumo.shimane.jp","yasugi.shimane.jp","yatsuka.shimane.jp","arai.shizuoka.jp","atami.shizuoka.jp","fuji.shizuoka.jp","fujieda.shizuoka.jp","fujikawa.shizuoka.jp","fujinomiya.shizuoka.jp","fukuroi.shizuoka.jp","gotemba.shizuoka.jp","haibara.shizuoka.jp","hamamatsu.shizuoka.jp","higashiizu.shizuoka.jp","ito.shizuoka.jp","iwata.shizuoka.jp","izu.shizuoka.jp","izunokuni.shizuoka.jp","kakegawa.shizuoka.jp","kannami.shizuoka.jp","kawanehon.shizuoka.jp","kawazu.shizuoka.jp","kikugawa.shizuoka.jp","kosai.shizuoka.jp","makinohara.shizuoka.jp","matsuzaki.shizuoka.jp","minamiizu.shizuoka.jp","mishima.shizuoka.jp","morimachi.shizuoka.jp","nishiizu.shizuoka.jp","numazu.shizuoka.jp","omaezaki.shizuoka.jp","shimada.shizuoka.jp","shimizu.shizuoka.jp","shimoda.shizuoka.jp","shizuoka.shizuoka.jp","susono.shizuoka.jp","yaizu.shizuoka.jp","yoshida.shizuoka.jp","ashikaga.tochigi.jp","bato.tochigi.jp","haga.tochigi.jp","ichikai.tochigi.jp","iwafune.tochigi.jp","kaminokawa.tochigi.jp","kanuma.tochigi.jp","karasuyama.tochigi.jp","kuroiso.tochigi.jp","mashiko.tochigi.jp","mibu.tochigi.jp","moka.tochigi.jp","motegi.tochigi.jp","nasu.tochigi.jp","nasushiobara.tochigi.jp","nikko.tochigi.jp","nishikata.tochigi.jp","nogi.tochigi.jp","ohira.tochigi.jp","ohtawara.tochigi.jp","oyama.tochigi.jp","sakura.tochigi.jp","sano.tochigi.jp","shimotsuke.tochigi.jp","shioya.tochigi.jp","takanezawa.tochigi.jp","tochigi.tochigi.jp","tsuga.tochigi.jp","ujiie.tochigi.jp","utsunomiya.tochigi.jp","yaita.tochigi.jp","aizumi.tokushima.jp","anan.tokushima.jp","ichiba.tokushima.jp","itano.tokushima.jp","kainan.tokushima.jp","komatsushima.tokushima.jp","matsushige.tokushima.jp","mima.tokushima.jp","minami.tokushima.jp","miyoshi.tokushima.jp","mugi.tokushima.jp","nakagawa.tokushima.jp","naruto.tokushima.jp","sanagochi.tokushima.jp","shishikui.tokushima.jp","tokushima.tokushima.jp","wajiki.tokushima.jp","adachi.tokyo.jp","akiruno.tokyo.jp","akishima.tokyo.jp","aogashima.tokyo.jp","arakawa.tokyo.jp","bunkyo.tokyo.jp","chiyoda.tokyo.jp","chofu.tokyo.jp","chuo.tokyo.jp","edogawa.tokyo.jp","fuchu.tokyo.jp","fussa.tokyo.jp","hachijo.tokyo.jp","hachioji.tokyo.jp","hamura.tokyo.jp","higashikurume.tokyo.jp","higashimurayama.tokyo.jp","higashiyamato.tokyo.jp","hino.tokyo.jp","hinode.tokyo.jp","hinohara.tokyo.jp","inagi.tokyo.jp","itabashi.tokyo.jp","katsushika.tokyo.jp","kita.tokyo.jp","kiyose.tokyo.jp","kodaira.tokyo.jp","koganei.tokyo.jp","kokubunji.tokyo.jp","komae.tokyo.jp","koto.tokyo.jp","kouzushima.tokyo.jp","kunitachi.tokyo.jp","machida.tokyo.jp","meguro.tokyo.jp","minato.tokyo.jp","mitaka.tokyo.jp","mizuho.tokyo.jp","musashimurayama.tokyo.jp","musashino.tokyo.jp","nakano.tokyo.jp","nerima.tokyo.jp","ogasawara.tokyo.jp","okutama.tokyo.jp","ome.tokyo.jp","oshima.tokyo.jp","ota.tokyo.jp","setagaya.tokyo.jp","shibuya.tokyo.jp","shinagawa.tokyo.jp","shinjuku.tokyo.jp","suginami.tokyo.jp","sumida.tokyo.jp","tachikawa.tokyo.jp","taito.tokyo.jp","tama.tokyo.jp","toshima.tokyo.jp","chizu.tottori.jp","hino.tottori.jp","kawahara.tottori.jp","koge.tottori.jp","kotoura.tottori.jp","misasa.tottori.jp","nanbu.tottori.jp","nichinan.tottori.jp","sakaiminato.tottori.jp","tottori.tottori.jp","wakasa.tottori.jp","yazu.tottori.jp","yonago.tottori.jp","asahi.toyama.jp","fuchu.toyama.jp","fukumitsu.toyama.jp","funahashi.toyama.jp","himi.toyama.jp","imizu.toyama.jp","inami.toyama.jp","johana.toyama.jp","kamiichi.toyama.jp","kurobe.toyama.jp","nakaniikawa.toyama.jp","namerikawa.toyama.jp","nanto.toyama.jp","nyuzen.toyama.jp","oyabe.toyama.jp","taira.toyama.jp","takaoka.toyama.jp","tateyama.toyama.jp","toga.toyama.jp","tonami.toyama.jp","toyama.toyama.jp","unazuki.toyama.jp","uozu.toyama.jp","yamada.toyama.jp","arida.wakayama.jp","aridagawa.wakayama.jp","gobo.wakayama.jp","hashimoto.wakayama.jp","hidaka.wakayama.jp","hirogawa.wakayama.jp","inami.wakayama.jp","iwade.wakayama.jp","kainan.wakayama.jp","kamitonda.wakayama.jp","katsuragi.wakayama.jp","kimino.wakayama.jp","kinokawa.wakayama.jp","kitayama.wakayama.jp","koya.wakayama.jp","koza.wakayama.jp","kozagawa.wakayama.jp","kudoyama.wakayama.jp","kushimoto.wakayama.jp","mihama.wakayama.jp","misato.wakayama.jp","nachikatsuura.wakayama.jp","shingu.wakayama.jp","shirahama.wakayama.jp","taiji.wakayama.jp","tanabe.wakayama.jp","wakayama.wakayama.jp","yuasa.wakayama.jp","yura.wakayama.jp","asahi.yamagata.jp","funagata.yamagata.jp","higashine.yamagata.jp","iide.yamagata.jp","kahoku.yamagata.jp","kaminoyama.yamagata.jp","kaneyama.yamagata.jp","kawanishi.yamagata.jp","mamurogawa.yamagata.jp","mikawa.yamagata.jp","murayama.yamagata.jp","nagai.yamagata.jp","nakayama.yamagata.jp","nanyo.yamagata.jp","nishikawa.yamagata.jp","obanazawa.yamagata.jp","oe.yamagata.jp","oguni.yamagata.jp","ohkura.yamagata.jp","oishida.yamagata.jp","sagae.yamagata.jp","sakata.yamagata.jp","sakegawa.yamagata.jp","shinjo.yamagata.jp","shirataka.yamagata.jp","shonai.yamagata.jp","takahata.yamagata.jp","tendo.yamagata.jp","tozawa.yamagata.jp","tsuruoka.yamagata.jp","yamagata.yamagata.jp","yamanobe.yamagata.jp","yonezawa.yamagata.jp","yuza.yamagata.jp","abu.yamaguchi.jp","hagi.yamaguchi.jp","hikari.yamaguchi.jp","hofu.yamaguchi.jp","iwakuni.yamaguchi.jp","kudamatsu.yamaguchi.jp","mitou.yamaguchi.jp","nagato.yamaguchi.jp","oshima.yamaguchi.jp","shimonoseki.yamaguchi.jp","shunan.yamaguchi.jp","tabuse.yamaguchi.jp","tokuyama.yamaguchi.jp","toyota.yamaguchi.jp","ube.yamaguchi.jp","yuu.yamaguchi.jp","chuo.yamanashi.jp","doshi.yamanashi.jp","fuefuki.yamanashi.jp","fujikawa.yamanashi.jp","fujikawaguchiko.yamanashi.jp","fujiyoshida.yamanashi.jp","hayakawa.yamanashi.jp","hokuto.yamanashi.jp","ichikawamisato.yamanashi.jp","kai.yamanashi.jp","kofu.yamanashi.jp","koshu.yamanashi.jp","kosuge.yamanashi.jp","minami-alps.yamanashi.jp","minobu.yamanashi.jp","nakamichi.yamanashi.jp","nanbu.yamanashi.jp","narusawa.yamanashi.jp","nirasaki.yamanashi.jp","nishikatsura.yamanashi.jp","oshino.yamanashi.jp","otsuki.yamanashi.jp","showa.yamanashi.jp","tabayama.yamanashi.jp","tsuru.yamanashi.jp","uenohara.yamanashi.jp","yamanakako.yamanashi.jp","yamanashi.yamanashi.jp","ke","ac.ke","co.ke","go.ke","info.ke","me.ke","mobi.ke","ne.ke","or.ke","sc.ke","kg","org.kg","net.kg","com.kg","edu.kg","gov.kg","mil.kg","*.kh","ki","edu.ki","biz.ki","net.ki","org.ki","gov.ki","info.ki","com.ki","km","org.km","nom.km","gov.km","prd.km","tm.km","edu.km","mil.km","ass.km","com.km","coop.km","asso.km","presse.km","medecin.km","notaires.km","pharmaciens.km","veterinaire.km","gouv.km","kn","net.kn","org.kn","edu.kn","gov.kn","kp","com.kp","edu.kp","gov.kp","org.kp","rep.kp","tra.kp","kr","ac.kr","co.kr","es.kr","go.kr","hs.kr","kg.kr","mil.kr","ms.kr","ne.kr","or.kr","pe.kr","re.kr","sc.kr","busan.kr","chungbuk.kr","chungnam.kr","daegu.kr","daejeon.kr","gangwon.kr","gwangju.kr","gyeongbuk.kr","gyeonggi.kr","gyeongnam.kr","incheon.kr","jeju.kr","jeonbuk.kr","jeonnam.kr","seoul.kr","ulsan.kr","kw","com.kw","edu.kw","emb.kw","gov.kw","ind.kw","net.kw","org.kw","ky","edu.ky","gov.ky","com.ky","org.ky","net.ky","kz","org.kz","edu.kz","net.kz","gov.kz","mil.kz","com.kz","la","int.la","net.la","info.la","edu.la","gov.la","per.la","com.la","org.la","lb","com.lb","edu.lb","gov.lb","net.lb","org.lb","lc","com.lc","net.lc","co.lc","org.lc","edu.lc","gov.lc","li","lk","gov.lk","sch.lk","net.lk","int.lk","com.lk","org.lk","edu.lk","ngo.lk","soc.lk","web.lk","ltd.lk","assn.lk","grp.lk","hotel.lk","ac.lk","lr","com.lr","edu.lr","gov.lr","org.lr","net.lr","ls","ac.ls","biz.ls","co.ls","edu.ls","gov.ls","info.ls","net.ls","org.ls","sc.ls","lt","gov.lt","lu","lv","com.lv","edu.lv","gov.lv","org.lv","mil.lv","id.lv","net.lv","asn.lv","conf.lv","ly","com.ly","net.ly","gov.ly","plc.ly","edu.ly","sch.ly","med.ly","org.ly","id.ly","ma","co.ma","net.ma","gov.ma","org.ma","ac.ma","press.ma","mc","tm.mc","asso.mc","md","me","co.me","net.me","org.me","edu.me","ac.me","gov.me","its.me","priv.me","mg","org.mg","nom.mg","gov.mg","prd.mg","tm.mg","edu.mg","mil.mg","com.mg","co.mg","mh","mil","mk","com.mk","org.mk","net.mk","edu.mk","gov.mk","inf.mk","name.mk","ml","com.ml","edu.ml","gouv.ml","gov.ml","net.ml","org.ml","presse.ml","*.mm","mn","gov.mn","edu.mn","org.mn","mo","com.mo","net.mo","org.mo","edu.mo","gov.mo","mobi","mp","mq","mr","gov.mr","ms","com.ms","edu.ms","gov.ms","net.ms","org.ms","mt","com.mt","edu.mt","net.mt","org.mt","mu","com.mu","net.mu","org.mu","gov.mu","ac.mu","co.mu","or.mu","museum","academy.museum","agriculture.museum","air.museum","airguard.museum","alabama.museum","alaska.museum","amber.museum","ambulance.museum","american.museum","americana.museum","americanantiques.museum","americanart.museum","amsterdam.museum","and.museum","annefrank.museum","anthro.museum","anthropology.museum","antiques.museum","aquarium.museum","arboretum.museum","archaeological.museum","archaeology.museum","architecture.museum","art.museum","artanddesign.museum","artcenter.museum","artdeco.museum","arteducation.museum","artgallery.museum","arts.museum","artsandcrafts.museum","asmatart.museum","assassination.museum","assisi.museum","association.museum","astronomy.museum","atlanta.museum","austin.museum","australia.museum","automotive.museum","aviation.museum","axis.museum","badajoz.museum","baghdad.museum","bahn.museum","bale.museum","baltimore.museum","barcelona.museum","baseball.museum","basel.museum","baths.museum","bauern.museum","beauxarts.museum","beeldengeluid.museum","bellevue.museum","bergbau.museum","berkeley.museum","berlin.museum","bern.museum","bible.museum","bilbao.museum","bill.museum","birdart.museum","birthplace.museum","bonn.museum","boston.museum","botanical.museum","botanicalgarden.museum","botanicgarden.museum","botany.museum","brandywinevalley.museum","brasil.museum","bristol.museum","british.museum","britishcolumbia.museum","broadcast.museum","brunel.museum","brussel.museum","brussels.museum","bruxelles.museum","building.museum","burghof.museum","bus.museum","bushey.museum","cadaques.museum","california.museum","cambridge.museum","can.museum","canada.museum","capebreton.museum","carrier.museum","cartoonart.museum","casadelamoneda.museum","castle.museum","castres.museum","celtic.museum","center.museum","chattanooga.museum","cheltenham.museum","chesapeakebay.museum","chicago.museum","children.museum","childrens.museum","childrensgarden.museum","chiropractic.museum","chocolate.museum","christiansburg.museum","cincinnati.museum","cinema.museum","circus.museum","civilisation.museum","civilization.museum","civilwar.museum","clinton.museum","clock.museum","coal.museum","coastaldefence.museum","cody.museum","coldwar.museum","collection.museum","colonialwilliamsburg.museum","coloradoplateau.museum","columbia.museum","columbus.museum","communication.museum","communications.museum","community.museum","computer.museum","computerhistory.museum","comunicações.museum","contemporary.museum","contemporaryart.museum","convent.museum","copenhagen.museum","corporation.museum","correios-e-telecomunicações.museum","corvette.museum","costume.museum","countryestate.museum","county.museum","crafts.museum","cranbrook.museum","creation.museum","cultural.museum","culturalcenter.museum","culture.museum","cyber.museum","cymru.museum","dali.museum","dallas.museum","database.museum","ddr.museum","decorativearts.museum","delaware.museum","delmenhorst.museum","denmark.museum","depot.museum","design.museum","detroit.museum","dinosaur.museum","discovery.museum","dolls.museum","donostia.museum","durham.museum","eastafrica.museum","eastcoast.museum","education.museum","educational.museum","egyptian.museum","eisenbahn.museum","elburg.museum","elvendrell.museum","embroidery.museum","encyclopedic.museum","england.museum","entomology.museum","environment.museum","environmentalconservation.museum","epilepsy.museum","essex.museum","estate.museum","ethnology.museum","exeter.museum","exhibition.museum","family.museum","farm.museum","farmequipment.museum","farmers.museum","farmstead.museum","field.museum","figueres.museum","filatelia.museum","film.museum","fineart.museum","finearts.museum","finland.museum","flanders.museum","florida.museum","force.museum","fortmissoula.museum","fortworth.museum","foundation.museum","francaise.museum","frankfurt.museum","franziskaner.museum","freemasonry.museum","freiburg.museum","fribourg.museum","frog.museum","fundacio.museum","furniture.museum","gallery.museum","garden.museum","gateway.museum","geelvinck.museum","gemological.museum","geology.museum","georgia.museum","giessen.museum","glas.museum","glass.museum","gorge.museum","grandrapids.museum","graz.museum","guernsey.museum","halloffame.museum","hamburg.museum","handson.museum","harvestcelebration.museum","hawaii.museum","health.museum","heimatunduhren.museum","hellas.museum","helsinki.museum","hembygdsforbund.museum","heritage.museum","histoire.museum","historical.museum","historicalsociety.museum","historichouses.museum","historisch.museum","historisches.museum","history.museum","historyofscience.museum","horology.museum","house.museum","humanities.museum","illustration.museum","imageandsound.museum","indian.museum","indiana.museum","indianapolis.museum","indianmarket.museum","intelligence.museum","interactive.museum","iraq.museum","iron.museum","isleofman.museum","jamison.museum","jefferson.museum","jerusalem.museum","jewelry.museum","jewish.museum","jewishart.museum","jfk.museum","journalism.museum","judaica.museum","judygarland.museum","juedisches.museum","juif.museum","karate.museum","karikatur.museum","kids.museum","koebenhavn.museum","koeln.museum","kunst.museum","kunstsammlung.museum","kunstunddesign.museum","labor.museum","labour.museum","lajolla.museum","lancashire.museum","landes.museum","lans.museum","läns.museum","larsson.museum","lewismiller.museum","lincoln.museum","linz.museum","living.museum","livinghistory.museum","localhistory.museum","london.museum","losangeles.museum","louvre.museum","loyalist.museum","lucerne.museum","luxembourg.museum","luzern.museum","mad.museum","madrid.museum","mallorca.museum","manchester.museum","mansion.museum","mansions.museum","manx.museum","marburg.museum","maritime.museum","maritimo.museum","maryland.museum","marylhurst.museum","media.museum","medical.museum","medizinhistorisches.museum","meeres.museum","memorial.museum","mesaverde.museum","michigan.museum","midatlantic.museum","military.museum","mill.museum","miners.museum","mining.museum","minnesota.museum","missile.museum","missoula.museum","modern.museum","moma.museum","money.museum","monmouth.museum","monticello.museum","montreal.museum","moscow.museum","motorcycle.museum","muenchen.museum","muenster.museum","mulhouse.museum","muncie.museum","museet.museum","museumcenter.museum","museumvereniging.museum","music.museum","national.museum","nationalfirearms.museum","nationalheritage.museum","nativeamerican.museum","naturalhistory.museum","naturalhistorymuseum.museum","naturalsciences.museum","nature.museum","naturhistorisches.museum","natuurwetenschappen.museum","naumburg.museum","naval.museum","nebraska.museum","neues.museum","newhampshire.museum","newjersey.museum","newmexico.museum","newport.museum","newspaper.museum","newyork.museum","niepce.museum","norfolk.museum","north.museum","nrw.museum","nyc.museum","nyny.museum","oceanographic.museum","oceanographique.museum","omaha.museum","online.museum","ontario.museum","openair.museum","oregon.museum","oregontrail.museum","otago.museum","oxford.museum","pacific.museum","paderborn.museum","palace.museum","paleo.museum","palmsprings.museum","panama.museum","paris.museum","pasadena.museum","pharmacy.museum","philadelphia.museum","philadelphiaarea.museum","philately.museum","phoenix.museum","photography.museum","pilots.museum","pittsburgh.museum","planetarium.museum","plantation.museum","plants.museum","plaza.museum","portal.museum","portland.museum","portlligat.museum","posts-and-telecommunications.museum","preservation.museum","presidio.museum","press.museum","project.museum","public.museum","pubol.museum","quebec.museum","railroad.museum","railway.museum","research.museum","resistance.museum","riodejaneiro.museum","rochester.museum","rockart.museum","roma.museum","russia.museum","saintlouis.museum","salem.museum","salvadordali.museum","salzburg.museum","sandiego.museum","sanfrancisco.museum","santabarbara.museum","santacruz.museum","santafe.museum","saskatchewan.museum","satx.museum","savannahga.museum","schlesisches.museum","schoenbrunn.museum","schokoladen.museum","school.museum","schweiz.museum","science.museum","scienceandhistory.museum","scienceandindustry.museum","sciencecenter.museum","sciencecenters.museum","science-fiction.museum","sciencehistory.museum","sciences.museum","sciencesnaturelles.museum","scotland.museum","seaport.museum","settlement.museum","settlers.museum","shell.museum","sherbrooke.museum","sibenik.museum","silk.museum","ski.museum","skole.museum","society.museum","sologne.museum","soundandvision.museum","southcarolina.museum","southwest.museum","space.museum","spy.museum","square.museum","stadt.museum","stalbans.museum","starnberg.museum","state.museum","stateofdelaware.museum","station.museum","steam.museum","steiermark.museum","stjohn.museum","stockholm.museum","stpetersburg.museum","stuttgart.museum","suisse.museum","surgeonshall.museum","surrey.museum","svizzera.museum","sweden.museum","sydney.museum","tank.museum","tcm.museum","technology.museum","telekommunikation.museum","television.museum","texas.museum","textile.museum","theater.museum","time.museum","timekeeping.museum","topology.museum","torino.museum","touch.museum","town.museum","transport.museum","tree.museum","trolley.museum","trust.museum","trustee.museum","uhren.museum","ulm.museum","undersea.museum","university.museum","usa.museum","usantiques.museum","usarts.museum","uscountryestate.museum","usculture.museum","usdecorativearts.museum","usgarden.museum","ushistory.museum","ushuaia.museum","uslivinghistory.museum","utah.museum","uvic.museum","valley.museum","vantaa.museum","versailles.museum","viking.museum","village.museum","virginia.museum","virtual.museum","virtuel.museum","vlaanderen.museum","volkenkunde.museum","wales.museum","wallonie.museum","war.museum","washingtondc.museum","watchandclock.museum","watch-and-clock.museum","western.museum","westfalen.museum","whaling.museum","wildlife.museum","williamsburg.museum","windmill.museum","workshop.museum","york.museum","yorkshire.museum","yosemite.museum","youth.museum","zoological.museum","zoology.museum","ירושלים.museum","иком.museum","mv","aero.mv","biz.mv","com.mv","coop.mv","edu.mv","gov.mv","info.mv","int.mv","mil.mv","museum.mv","name.mv","net.mv","org.mv","pro.mv","mw","ac.mw","biz.mw","co.mw","com.mw","coop.mw","edu.mw","gov.mw","int.mw","museum.mw","net.mw","org.mw","mx","com.mx","org.mx","gob.mx","edu.mx","net.mx","my","com.my","net.my","org.my","gov.my","edu.my","mil.my","name.my","mz","ac.mz","adv.mz","co.mz","edu.mz","gov.mz","mil.mz","net.mz","org.mz","na","info.na","pro.na","name.na","school.na","or.na","dr.na","us.na","mx.na","ca.na","in.na","cc.na","tv.na","ws.na","mobi.na","co.na","com.na","org.na","name","nc","asso.nc","nom.nc","ne","net","nf","com.nf","net.nf","per.nf","rec.nf","web.nf","arts.nf","firm.nf","info.nf","other.nf","store.nf","ng","com.ng","edu.ng","gov.ng","i.ng","mil.ng","mobi.ng","name.ng","net.ng","org.ng","sch.ng","ni","ac.ni","biz.ni","co.ni","com.ni","edu.ni","gob.ni","in.ni","info.ni","int.ni","mil.ni","net.ni","nom.ni","org.ni","web.ni","nl","no","fhs.no","vgs.no","fylkesbibl.no","folkebibl.no","museum.no","idrett.no","priv.no","mil.no","stat.no","dep.no","kommune.no","herad.no","aa.no","ah.no","bu.no","fm.no","hl.no","hm.no","jan-mayen.no","mr.no","nl.no","nt.no","of.no","ol.no","oslo.no","rl.no","sf.no","st.no","svalbard.no","tm.no","tr.no","va.no","vf.no","gs.aa.no","gs.ah.no","gs.bu.no","gs.fm.no","gs.hl.no","gs.hm.no","gs.jan-mayen.no","gs.mr.no","gs.nl.no","gs.nt.no","gs.of.no","gs.ol.no","gs.oslo.no","gs.rl.no","gs.sf.no","gs.st.no","gs.svalbard.no","gs.tm.no","gs.tr.no","gs.va.no","gs.vf.no","akrehamn.no","åkrehamn.no","algard.no","ålgård.no","arna.no","brumunddal.no","bryne.no","bronnoysund.no","brønnøysund.no","drobak.no","drøbak.no","egersund.no","fetsund.no","floro.no","florø.no","fredrikstad.no","hokksund.no","honefoss.no","hønefoss.no","jessheim.no","jorpeland.no","jørpeland.no","kirkenes.no","kopervik.no","krokstadelva.no","langevag.no","langevåg.no","leirvik.no","mjondalen.no","mjøndalen.no","mo-i-rana.no","mosjoen.no","mosjøen.no","nesoddtangen.no","orkanger.no","osoyro.no","osøyro.no","raholt.no","råholt.no","sandnessjoen.no","sandnessjøen.no","skedsmokorset.no","slattum.no","spjelkavik.no","stathelle.no","stavern.no","stjordalshalsen.no","stjørdalshalsen.no","tananger.no","tranby.no","vossevangen.no","afjord.no","åfjord.no","agdenes.no","al.no","ål.no","alesund.no","ålesund.no","alstahaug.no","alta.no","áltá.no","alaheadju.no","álaheadju.no","alvdal.no","amli.no","åmli.no","amot.no","åmot.no","andebu.no","andoy.no","andøy.no","andasuolo.no","ardal.no","årdal.no","aremark.no","arendal.no","ås.no","aseral.no","åseral.no","asker.no","askim.no","askvoll.no","askoy.no","askøy.no","asnes.no","åsnes.no","audnedaln.no","aukra.no","aure.no","aurland.no","aurskog-holand.no","aurskog-høland.no","austevoll.no","austrheim.no","averoy.no","averøy.no","balestrand.no","ballangen.no","balat.no","bálát.no","balsfjord.no","bahccavuotna.no","báhccavuotna.no","bamble.no","bardu.no","beardu.no","beiarn.no","bajddar.no","bájddar.no","baidar.no","báidár.no","berg.no","bergen.no","berlevag.no","berlevåg.no","bearalvahki.no","bearalváhki.no","bindal.no","birkenes.no","bjarkoy.no","bjarkøy.no","bjerkreim.no","bjugn.no","bodo.no","bodø.no","badaddja.no","bådåddjå.no","budejju.no","bokn.no","bremanger.no","bronnoy.no","brønnøy.no","bygland.no","bykle.no","barum.no","bærum.no","bo.telemark.no","bø.telemark.no","bo.nordland.no","bø.nordland.no","bievat.no","bievát.no","bomlo.no","bømlo.no","batsfjord.no","båtsfjord.no","bahcavuotna.no","báhcavuotna.no","dovre.no","drammen.no","drangedal.no","dyroy.no","dyrøy.no","donna.no","dønna.no","eid.no","eidfjord.no","eidsberg.no","eidskog.no","eidsvoll.no","eigersund.no","elverum.no","enebakk.no","engerdal.no","etne.no","etnedal.no","evenes.no","evenassi.no","evenášši.no","evje-og-hornnes.no","farsund.no","fauske.no","fuossko.no","fuoisku.no","fedje.no","fet.no","finnoy.no","finnøy.no","fitjar.no","fjaler.no","fjell.no","flakstad.no","flatanger.no","flekkefjord.no","flesberg.no","flora.no","fla.no","flå.no","folldal.no","forsand.no","fosnes.no","frei.no","frogn.no","froland.no","frosta.no","frana.no","fræna.no","froya.no","frøya.no","fusa.no","fyresdal.no","forde.no","førde.no","gamvik.no","gangaviika.no","gáŋgaviika.no","gaular.no","gausdal.no","gildeskal.no","gildeskål.no","giske.no","gjemnes.no","gjerdrum.no","gjerstad.no","gjesdal.no","gjovik.no","gjøvik.no","gloppen.no","gol.no","gran.no","grane.no","granvin.no","gratangen.no","grimstad.no","grong.no","kraanghke.no","kråanghke.no","grue.no","gulen.no","hadsel.no","halden.no","halsa.no","hamar.no","hamaroy.no","habmer.no","hábmer.no","hapmir.no","hápmir.no","hammerfest.no","hammarfeasta.no","hámmárfeasta.no","haram.no","hareid.no","harstad.no","hasvik.no","aknoluokta.no","ákŋoluokta.no","hattfjelldal.no","aarborte.no","haugesund.no","hemne.no","hemnes.no","hemsedal.no","heroy.more-og-romsdal.no","herøy.møre-og-romsdal.no","heroy.nordland.no","herøy.nordland.no","hitra.no","hjartdal.no","hjelmeland.no","hobol.no","hobøl.no","hof.no","hol.no","hole.no","holmestrand.no","holtalen.no","holtålen.no","hornindal.no","horten.no","hurdal.no","hurum.no","hvaler.no","hyllestad.no","hagebostad.no","hægebostad.no","hoyanger.no","høyanger.no","hoylandet.no","høylandet.no","ha.no","hå.no","ibestad.no","inderoy.no","inderøy.no","iveland.no","jevnaker.no","jondal.no","jolster.no","jølster.no","karasjok.no","karasjohka.no","kárášjohka.no","karlsoy.no","galsa.no","gálsá.no","karmoy.no","karmøy.no","kautokeino.no","guovdageaidnu.no","klepp.no","klabu.no","klæbu.no","kongsberg.no","kongsvinger.no","kragero.no","kragerø.no","kristiansand.no","kristiansund.no","krodsherad.no","krødsherad.no","kvalsund.no","rahkkeravju.no","ráhkkerávju.no","kvam.no","kvinesdal.no","kvinnherad.no","kviteseid.no","kvitsoy.no","kvitsøy.no","kvafjord.no","kvæfjord.no","giehtavuoatna.no","kvanangen.no","kvænangen.no","navuotna.no","návuotna.no","kafjord.no","kåfjord.no","gaivuotna.no","gáivuotna.no","larvik.no","lavangen.no","lavagis.no","loabat.no","loabát.no","lebesby.no","davvesiida.no","leikanger.no","leirfjord.no","leka.no","leksvik.no","lenvik.no","leangaviika.no","leaŋgaviika.no","lesja.no","levanger.no","lier.no","lierne.no","lillehammer.no","lillesand.no","lindesnes.no","lindas.no","lindås.no","lom.no","loppa.no","lahppi.no","láhppi.no","lund.no","lunner.no","luroy.no","lurøy.no","luster.no","lyngdal.no","lyngen.no","ivgu.no","lardal.no","lerdal.no","lærdal.no","lodingen.no","lødingen.no","lorenskog.no","lørenskog.no","loten.no","løten.no","malvik.no","masoy.no","måsøy.no","muosat.no","muosát.no","mandal.no","marker.no","marnardal.no","masfjorden.no","meland.no","meldal.no","melhus.no","meloy.no","meløy.no","meraker.no","meråker.no","moareke.no","moåreke.no","midsund.no","midtre-gauldal.no","modalen.no","modum.no","molde.no","moskenes.no","moss.no","mosvik.no","malselv.no","målselv.no","malatvuopmi.no","málatvuopmi.no","namdalseid.no","aejrie.no","namsos.no","namsskogan.no","naamesjevuemie.no","nååmesjevuemie.no","laakesvuemie.no","nannestad.no","narvik.no","narviika.no","naustdal.no","nedre-eiker.no","nes.akershus.no","nes.buskerud.no","nesna.no","nesodden.no","nesseby.no","unjarga.no","unjárga.no","nesset.no","nissedal.no","nittedal.no","nord-aurdal.no","nord-fron.no","nord-odal.no","norddal.no","nordkapp.no","davvenjarga.no","davvenjárga.no","nordre-land.no","nordreisa.no","raisa.no","ráisa.no","nore-og-uvdal.no","notodden.no","naroy.no","nærøy.no","notteroy.no","nøtterøy.no","odda.no","oksnes.no","øksnes.no","oppdal.no","oppegard.no","oppegård.no","orkdal.no","orland.no","ørland.no","orskog.no","ørskog.no","orsta.no","ørsta.no","os.hedmark.no","os.hordaland.no","osen.no","osteroy.no","osterøy.no","ostre-toten.no","østre-toten.no","overhalla.no","ovre-eiker.no","øvre-eiker.no","oyer.no","øyer.no","oygarden.no","øygarden.no","oystre-slidre.no","øystre-slidre.no","porsanger.no","porsangu.no","porsáŋgu.no","porsgrunn.no","radoy.no","radøy.no","rakkestad.no","rana.no","ruovat.no","randaberg.no","rauma.no","rendalen.no","rennebu.no","rennesoy.no","rennesøy.no","rindal.no","ringebu.no","ringerike.no","ringsaker.no","rissa.no","risor.no","risør.no","roan.no","rollag.no","rygge.no","ralingen.no","rælingen.no","rodoy.no","rødøy.no","romskog.no","rømskog.no","roros.no","røros.no","rost.no","røst.no","royken.no","røyken.no","royrvik.no","røyrvik.no","rade.no","råde.no","salangen.no","siellak.no","saltdal.no","salat.no","sálát.no","sálat.no","samnanger.no","sande.more-og-romsdal.no","sande.møre-og-romsdal.no","sande.vestfold.no","sandefjord.no","sandnes.no","sandoy.no","sandøy.no","sarpsborg.no","sauda.no","sauherad.no","sel.no","selbu.no","selje.no","seljord.no","sigdal.no","siljan.no","sirdal.no","skaun.no","skedsmo.no","ski.no","skien.no","skiptvet.no","skjervoy.no","skjervøy.no","skierva.no","skiervá.no","skjak.no","skjåk.no","skodje.no","skanland.no","skånland.no","skanit.no","skánit.no","smola.no","smøla.no","snillfjord.no","snasa.no","snåsa.no","snoasa.no","snaase.no","snåase.no","sogndal.no","sokndal.no","sola.no","solund.no","songdalen.no","sortland.no","spydeberg.no","stange.no","stavanger.no","steigen.no","steinkjer.no","stjordal.no","stjørdal.no","stokke.no","stor-elvdal.no","stord.no","stordal.no","storfjord.no","omasvuotna.no","strand.no","stranda.no","stryn.no","sula.no","suldal.no","sund.no","sunndal.no","surnadal.no","sveio.no","svelvik.no","sykkylven.no","sogne.no","søgne.no","somna.no","sømna.no","sondre-land.no","søndre-land.no","sor-aurdal.no","sør-aurdal.no","sor-fron.no","sør-fron.no","sor-odal.no","sør-odal.no","sor-varanger.no","sør-varanger.no","matta-varjjat.no","mátta-várjjat.no","sorfold.no","sørfold.no","sorreisa.no","sørreisa.no","sorum.no","sørum.no","tana.no","deatnu.no","time.no","tingvoll.no","tinn.no","tjeldsund.no","dielddanuorri.no","tjome.no","tjøme.no","tokke.no","tolga.no","torsken.no","tranoy.no","tranøy.no","tromso.no","tromsø.no","tromsa.no","romsa.no","trondheim.no","troandin.no","trysil.no","trana.no","træna.no","trogstad.no","trøgstad.no","tvedestrand.no","tydal.no","tynset.no","tysfjord.no","divtasvuodna.no","divttasvuotna.no","tysnes.no","tysvar.no","tysvær.no","tonsberg.no","tønsberg.no","ullensaker.no","ullensvang.no","ulvik.no","utsira.no","vadso.no","vadsø.no","cahcesuolo.no","čáhcesuolo.no","vaksdal.no","valle.no","vang.no","vanylven.no","vardo.no","vardø.no","varggat.no","várggát.no","vefsn.no","vaapste.no","vega.no","vegarshei.no","vegårshei.no","vennesla.no","verdal.no","verran.no","vestby.no","vestnes.no","vestre-slidre.no","vestre-toten.no","vestvagoy.no","vestvågøy.no","vevelstad.no","vik.no","vikna.no","vindafjord.no","volda.no","voss.no","varoy.no","værøy.no","vagan.no","vågan.no","voagat.no","vagsoy.no","vågsøy.no","vaga.no","vågå.no","valer.ostfold.no","våler.østfold.no","valer.hedmark.no","våler.hedmark.no","*.np","nr","biz.nr","info.nr","gov.nr","edu.nr","org.nr","net.nr","com.nr","nu","nz","ac.nz","co.nz","cri.nz","geek.nz","gen.nz","govt.nz","health.nz","iwi.nz","kiwi.nz","maori.nz","mil.nz","māori.nz","net.nz","org.nz","parliament.nz","school.nz","om","co.om","com.om","edu.om","gov.om","med.om","museum.om","net.om","org.om","pro.om","onion","org","pa","ac.pa","gob.pa","com.pa","org.pa","sld.pa","edu.pa","net.pa","ing.pa","abo.pa","med.pa","nom.pa","pe","edu.pe","gob.pe","nom.pe","mil.pe","org.pe","com.pe","net.pe","pf","com.pf","org.pf","edu.pf","*.pg","ph","com.ph","net.ph","org.ph","gov.ph","edu.ph","ngo.ph","mil.ph","i.ph","pk","com.pk","net.pk","edu.pk","org.pk","fam.pk","biz.pk","web.pk","gov.pk","gob.pk","gok.pk","gon.pk","gop.pk","gos.pk","info.pk","pl","com.pl","net.pl","org.pl","aid.pl","agro.pl","atm.pl","auto.pl","biz.pl","edu.pl","gmina.pl","gsm.pl","info.pl","mail.pl","miasta.pl","media.pl","mil.pl","nieruchomosci.pl","nom.pl","pc.pl","powiat.pl","priv.pl","realestate.pl","rel.pl","sex.pl","shop.pl","sklep.pl","sos.pl","szkola.pl","targi.pl","tm.pl","tourism.pl","travel.pl","turystyka.pl","gov.pl","ap.gov.pl","ic.gov.pl","is.gov.pl","us.gov.pl","kmpsp.gov.pl","kppsp.gov.pl","kwpsp.gov.pl","psp.gov.pl","wskr.gov.pl","kwp.gov.pl","mw.gov.pl","ug.gov.pl","um.gov.pl","umig.gov.pl","ugim.gov.pl","upow.gov.pl","uw.gov.pl","starostwo.gov.pl","pa.gov.pl","po.gov.pl","psse.gov.pl","pup.gov.pl","rzgw.gov.pl","sa.gov.pl","so.gov.pl","sr.gov.pl","wsa.gov.pl","sko.gov.pl","uzs.gov.pl","wiih.gov.pl","winb.gov.pl","pinb.gov.pl","wios.gov.pl","witd.gov.pl","wzmiuw.gov.pl","piw.gov.pl","wiw.gov.pl","griw.gov.pl","wif.gov.pl","oum.gov.pl","sdn.gov.pl","zp.gov.pl","uppo.gov.pl","mup.gov.pl","wuoz.gov.pl","konsulat.gov.pl","oirm.gov.pl","augustow.pl","babia-gora.pl","bedzin.pl","beskidy.pl","bialowieza.pl","bialystok.pl","bielawa.pl","bieszczady.pl","boleslawiec.pl","bydgoszcz.pl","bytom.pl","cieszyn.pl","czeladz.pl","czest.pl","dlugoleka.pl","elblag.pl","elk.pl","glogow.pl","gniezno.pl","gorlice.pl","grajewo.pl","ilawa.pl","jaworzno.pl","jelenia-gora.pl","jgora.pl","kalisz.pl","kazimierz-dolny.pl","karpacz.pl","kartuzy.pl","kaszuby.pl","katowice.pl","kepno.pl","ketrzyn.pl","klodzko.pl","kobierzyce.pl","kolobrzeg.pl","konin.pl","konskowola.pl","kutno.pl","lapy.pl","lebork.pl","legnica.pl","lezajsk.pl","limanowa.pl","lomza.pl","lowicz.pl","lubin.pl","lukow.pl","malbork.pl","malopolska.pl","mazowsze.pl","mazury.pl","mielec.pl","mielno.pl","mragowo.pl","naklo.pl","nowaruda.pl","nysa.pl","olawa.pl","olecko.pl","olkusz.pl","olsztyn.pl","opoczno.pl","opole.pl","ostroda.pl","ostroleka.pl","ostrowiec.pl","ostrowwlkp.pl","pila.pl","pisz.pl","podhale.pl","podlasie.pl","polkowice.pl","pomorze.pl","pomorskie.pl","prochowice.pl","pruszkow.pl","przeworsk.pl","pulawy.pl","radom.pl","rawa-maz.pl","rybnik.pl","rzeszow.pl","sanok.pl","sejny.pl","slask.pl","slupsk.pl","sosnowiec.pl","stalowa-wola.pl","skoczow.pl","starachowice.pl","stargard.pl","suwalki.pl","swidnica.pl","swiebodzin.pl","swinoujscie.pl","szczecin.pl","szczytno.pl","tarnobrzeg.pl","tgory.pl","turek.pl","tychy.pl","ustka.pl","walbrzych.pl","warmia.pl","warszawa.pl","waw.pl","wegrow.pl","wielun.pl","wlocl.pl","wloclawek.pl","wodzislaw.pl","wolomin.pl","wroclaw.pl","zachpomor.pl","zagan.pl","zarow.pl","zgora.pl","zgorzelec.pl","pm","pn","gov.pn","co.pn","org.pn","edu.pn","net.pn","post","pr","com.pr","net.pr","org.pr","gov.pr","edu.pr","isla.pr","pro.pr","biz.pr","info.pr","name.pr","est.pr","prof.pr","ac.pr","pro","aaa.pro","aca.pro","acct.pro","avocat.pro","bar.pro","cpa.pro","eng.pro","jur.pro","law.pro","med.pro","recht.pro","ps","edu.ps","gov.ps","sec.ps","plo.ps","com.ps","org.ps","net.ps","pt","net.pt","gov.pt","org.pt","edu.pt","int.pt","publ.pt","com.pt","nome.pt","pw","co.pw","ne.pw","or.pw","ed.pw","go.pw","belau.pw","py","com.py","coop.py","edu.py","gov.py","mil.py","net.py","org.py","qa","com.qa","edu.qa","gov.qa","mil.qa","name.qa","net.qa","org.qa","sch.qa","re","asso.re","com.re","nom.re","ro","arts.ro","com.ro","firm.ro","info.ro","nom.ro","nt.ro","org.ro","rec.ro","store.ro","tm.ro","www.ro","rs","ac.rs","co.rs","edu.rs","gov.rs","in.rs","org.rs","ru","rw","ac.rw","co.rw","coop.rw","gov.rw","mil.rw","net.rw","org.rw","sa","com.sa","net.sa","org.sa","gov.sa","med.sa","pub.sa","edu.sa","sch.sa","sb","com.sb","edu.sb","gov.sb","net.sb","org.sb","sc","com.sc","gov.sc","net.sc","org.sc","edu.sc","sd","com.sd","net.sd","org.sd","edu.sd","med.sd","tv.sd","gov.sd","info.sd","se","a.se","ac.se","b.se","bd.se","brand.se","c.se","d.se","e.se","f.se","fh.se","fhsk.se","fhv.se","g.se","h.se","i.se","k.se","komforb.se","kommunalforbund.se","komvux.se","l.se","lanbib.se","m.se","n.se","naturbruksgymn.se","o.se","org.se","p.se","parti.se","pp.se","press.se","r.se","s.se","t.se","tm.se","u.se","w.se","x.se","y.se","z.se","sg","com.sg","net.sg","org.sg","gov.sg","edu.sg","per.sg","sh","com.sh","net.sh","gov.sh","org.sh","mil.sh","si","sj","sk","sl","com.sl","net.sl","edu.sl","gov.sl","org.sl","sm","sn","art.sn","com.sn","edu.sn","gouv.sn","org.sn","perso.sn","univ.sn","so","com.so","edu.so","gov.so","me.so","net.so","org.so","sr","ss","biz.ss","com.ss","edu.ss","gov.ss","net.ss","org.ss","st","co.st","com.st","consulado.st","edu.st","embaixada.st","gov.st","mil.st","net.st","org.st","principe.st","saotome.st","store.st","su","sv","com.sv","edu.sv","gob.sv","org.sv","red.sv","sx","gov.sx","sy","edu.sy","gov.sy","net.sy","mil.sy","com.sy","org.sy","sz","co.sz","ac.sz","org.sz","tc","td","tel","tf","tg","th","ac.th","co.th","go.th","in.th","mi.th","net.th","or.th","tj","ac.tj","biz.tj","co.tj","com.tj","edu.tj","go.tj","gov.tj","int.tj","mil.tj","name.tj","net.tj","nic.tj","org.tj","test.tj","web.tj","tk","tl","gov.tl","tm","com.tm","co.tm","org.tm","net.tm","nom.tm","gov.tm","mil.tm","edu.tm","tn","com.tn","ens.tn","fin.tn","gov.tn","ind.tn","intl.tn","nat.tn","net.tn","org.tn","info.tn","perso.tn","tourism.tn","edunet.tn","rnrt.tn","rns.tn","rnu.tn","mincom.tn","agrinet.tn","defense.tn","turen.tn","to","com.to","gov.to","net.to","org.to","edu.to","mil.to","tr","av.tr","bbs.tr","bel.tr","biz.tr","com.tr","dr.tr","edu.tr","gen.tr","gov.tr","info.tr","mil.tr","k12.tr","kep.tr","name.tr","net.tr","org.tr","pol.tr","tel.tr","tsk.tr","tv.tr","web.tr","nc.tr","gov.nc.tr","tt","co.tt","com.tt","org.tt","net.tt","biz.tt","info.tt","pro.tt","int.tt","coop.tt","jobs.tt","mobi.tt","travel.tt","museum.tt","aero.tt","name.tt","gov.tt","edu.tt","tv","tw","edu.tw","gov.tw","mil.tw","com.tw","net.tw","org.tw","idv.tw","game.tw","ebiz.tw","club.tw","網路.tw","組織.tw","商業.tw","tz","ac.tz","co.tz","go.tz","hotel.tz","info.tz","me.tz","mil.tz","mobi.tz","ne.tz","or.tz","sc.tz","tv.tz","ua","com.ua","edu.ua","gov.ua","in.ua","net.ua","org.ua","cherkassy.ua","cherkasy.ua","chernigov.ua","chernihiv.ua","chernivtsi.ua","chernovtsy.ua","ck.ua","cn.ua","cr.ua","crimea.ua","cv.ua","dn.ua","dnepropetrovsk.ua","dnipropetrovsk.ua","dominic.ua","donetsk.ua","dp.ua","if.ua","ivano-frankivsk.ua","kh.ua","kharkiv.ua","kharkov.ua","kherson.ua","khmelnitskiy.ua","khmelnytskyi.ua","kiev.ua","kirovograd.ua","km.ua","kr.ua","krym.ua","ks.ua","kv.ua","kyiv.ua","lg.ua","lt.ua","lugansk.ua","lutsk.ua","lv.ua","lviv.ua","mk.ua","mykolaiv.ua","nikolaev.ua","od.ua","odesa.ua","odessa.ua","pl.ua","poltava.ua","rivne.ua","rovno.ua","rv.ua","sb.ua","sebastopol.ua","sevastopol.ua","sm.ua","sumy.ua","te.ua","ternopil.ua","uz.ua","uzhgorod.ua","vinnica.ua","vinnytsia.ua","vn.ua","volyn.ua","yalta.ua","zaporizhzhe.ua","zaporizhzhia.ua","zhitomir.ua","zhytomyr.ua","zp.ua","zt.ua","ug","co.ug","or.ug","ac.ug","sc.ug","go.ug","ne.ug","com.ug","org.ug","uk","ac.uk","co.uk","gov.uk","ltd.uk","me.uk","net.uk","nhs.uk","org.uk","plc.uk","police.uk","*.sch.uk","us","dni.us","fed.us","isa.us","kids.us","nsn.us","ak.us","al.us","ar.us","as.us","az.us","ca.us","co.us","ct.us","dc.us","de.us","fl.us","ga.us","gu.us","hi.us","ia.us","id.us","il.us","in.us","ks.us","ky.us","la.us","ma.us","md.us","me.us","mi.us","mn.us","mo.us","ms.us","mt.us","nc.us","nd.us","ne.us","nh.us","nj.us","nm.us","nv.us","ny.us","oh.us","ok.us","or.us","pa.us","pr.us","ri.us","sc.us","sd.us","tn.us","tx.us","ut.us","vi.us","vt.us","va.us","wa.us","wi.us","wv.us","wy.us","k12.ak.us","k12.al.us","k12.ar.us","k12.as.us","k12.az.us","k12.ca.us","k12.co.us","k12.ct.us","k12.dc.us","k12.de.us","k12.fl.us","k12.ga.us","k12.gu.us","k12.ia.us","k12.id.us","k12.il.us","k12.in.us","k12.ks.us","k12.ky.us","k12.la.us","k12.ma.us","k12.md.us","k12.me.us","k12.mi.us","k12.mn.us","k12.mo.us","k12.ms.us","k12.mt.us","k12.nc.us","k12.ne.us","k12.nh.us","k12.nj.us","k12.nm.us","k12.nv.us","k12.ny.us","k12.oh.us","k12.ok.us","k12.or.us","k12.pa.us","k12.pr.us","k12.ri.us","k12.sc.us","k12.tn.us","k12.tx.us","k12.ut.us","k12.vi.us","k12.vt.us","k12.va.us","k12.wa.us","k12.wi.us","k12.wy.us","cc.ak.us","cc.al.us","cc.ar.us","cc.as.us","cc.az.us","cc.ca.us","cc.co.us","cc.ct.us","cc.dc.us","cc.de.us","cc.fl.us","cc.ga.us","cc.gu.us","cc.hi.us","cc.ia.us","cc.id.us","cc.il.us","cc.in.us","cc.ks.us","cc.ky.us","cc.la.us","cc.ma.us","cc.md.us","cc.me.us","cc.mi.us","cc.mn.us","cc.mo.us","cc.ms.us","cc.mt.us","cc.nc.us","cc.nd.us","cc.ne.us","cc.nh.us","cc.nj.us","cc.nm.us","cc.nv.us","cc.ny.us","cc.oh.us","cc.ok.us","cc.or.us","cc.pa.us","cc.pr.us","cc.ri.us","cc.sc.us","cc.sd.us","cc.tn.us","cc.tx.us","cc.ut.us","cc.vi.us","cc.vt.us","cc.va.us","cc.wa.us","cc.wi.us","cc.wv.us","cc.wy.us","lib.ak.us","lib.al.us","lib.ar.us","lib.as.us","lib.az.us","lib.ca.us","lib.co.us","lib.ct.us","lib.dc.us","lib.fl.us","lib.ga.us","lib.gu.us","lib.hi.us","lib.ia.us","lib.id.us","lib.il.us","lib.in.us","lib.ks.us","lib.ky.us","lib.la.us","lib.ma.us","lib.md.us","lib.me.us","lib.mi.us","lib.mn.us","lib.mo.us","lib.ms.us","lib.mt.us","lib.nc.us","lib.nd.us","lib.ne.us","lib.nh.us","lib.nj.us","lib.nm.us","lib.nv.us","lib.ny.us","lib.oh.us","lib.ok.us","lib.or.us","lib.pa.us","lib.pr.us","lib.ri.us","lib.sc.us","lib.sd.us","lib.tn.us","lib.tx.us","lib.ut.us","lib.vi.us","lib.vt.us","lib.va.us","lib.wa.us","lib.wi.us","lib.wy.us","pvt.k12.ma.us","chtr.k12.ma.us","paroch.k12.ma.us","ann-arbor.mi.us","cog.mi.us","dst.mi.us","eaton.mi.us","gen.mi.us","mus.mi.us","tec.mi.us","washtenaw.mi.us","uy","com.uy","edu.uy","gub.uy","mil.uy","net.uy","org.uy","uz","co.uz","com.uz","net.uz","org.uz","va","vc","com.vc","net.vc","org.vc","gov.vc","mil.vc","edu.vc","ve","arts.ve","co.ve","com.ve","e12.ve","edu.ve","firm.ve","gob.ve","gov.ve","info.ve","int.ve","mil.ve","net.ve","org.ve","rec.ve","store.ve","tec.ve","web.ve","vg","vi","co.vi","com.vi","k12.vi","net.vi","org.vi","vn","com.vn","net.vn","org.vn","edu.vn","gov.vn","int.vn","ac.vn","biz.vn","info.vn","name.vn","pro.vn","health.vn","vu","com.vu","edu.vu","net.vu","org.vu","wf","ws","com.ws","net.ws","org.ws","gov.ws","edu.ws","yt","امارات","հայ","বাংলা","бг","бел","中国","中國","الجزائر","مصر","ею","ευ","موريتانيا","გე","ελ","香港","公司.香港","教育.香港","政府.香港","個人.香港","網絡.香港","組織.香港","ಭಾರತ","ଭାରତ","ভাৰত","भारतम्","भारोत","ڀارت","ഭാരതം","भारत","بارت","بھارت","భారత్","ભારત","ਭਾਰਤ","ভারত","இந்தியா","ایران","ايران","عراق","الاردن","한국","қаз","ලංකා","இலங்கை","المغرب","мкд","мон","澳門","澳门","مليسيا","عمان","پاکستان","پاكستان","فلسطين","срб","пр.срб","орг.срб","обр.срб","од.срб","упр.срб","ак.срб","рф","قطر","السعودية","السعودیة","السعودیۃ","السعوديه","سودان","新加坡","சிங்கப்பூர்","سورية","سوريا","ไทย","ศึกษา.ไทย","ธุรกิจ.ไทย","รัฐบาล.ไทย","ทหาร.ไทย","เน็ต.ไทย","องค์กร.ไทย","تونس","台灣","台湾","臺灣","укр","اليمن","xxx","*.ye","ac.za","agric.za","alt.za","co.za","edu.za","gov.za","grondar.za","law.za","mil.za","net.za","ngo.za","nic.za","nis.za","nom.za","org.za","school.za","tm.za","web.za","zm","ac.zm","biz.zm","co.zm","com.zm","edu.zm","gov.zm","info.zm","mil.zm","net.zm","org.zm","sch.zm","zw","ac.zw","co.zw","gov.zw","mil.zw","org.zw","aaa","aarp","abarth","abb","abbott","abbvie","abc","able","abogado","abudhabi","academy","accenture","accountant","accountants","aco","actor","adac","ads","adult","aeg","aetna","afamilycompany","afl","africa","agakhan","agency","aig","aigo","airbus","airforce","airtel","akdn","alfaromeo","alibaba","alipay","allfinanz","allstate","ally","alsace","alstom","amazon","americanexpress","americanfamily","amex","amfam","amica","amsterdam","analytics","android","anquan","anz","aol","apartments","app","apple","aquarelle","arab","aramco","archi","army","art","arte","asda","associates","athleta","attorney","auction","audi","audible","audio","auspost","author","auto","autos","avianca","aws","axa","azure","baby","baidu","banamex","bananarepublic","band","bank","bar","barcelona","barclaycard","barclays","barefoot","bargains","baseball","basketball","bauhaus","bayern","bbc","bbt","bbva","bcg","bcn","beats","beauty","beer","bentley","berlin","best","bestbuy","bet","bharti","bible","bid","bike","bing","bingo","bio","black","blackfriday","blockbuster","blog","bloomberg","blue","bms","bmw","bnpparibas","boats","boehringer","bofa","bom","bond","boo","book","booking","bosch","bostik","boston","bot","boutique","box","bradesco","bridgestone","broadway","broker","brother","brussels","budapest","bugatti","build","builders","business","buy","buzz","bzh","cab","cafe","cal","call","calvinklein","cam","camera","camp","cancerresearch","canon","capetown","capital","capitalone","car","caravan","cards","care","career","careers","cars","casa","case","caseih","cash","casino","catering","catholic","cba","cbn","cbre","cbs","ceb","center","ceo","cern","cfa","cfd","chanel","channel","charity","chase","chat","cheap","chintai","christmas","chrome","church","cipriani","circle","cisco","citadel","citi","citic","city","cityeats","claims","cleaning","click","clinic","clinique","clothing","cloud","club","clubmed","coach","codes","coffee","college","cologne","comcast","commbank","community","company","compare","computer","comsec","condos","construction","consulting","contact","contractors","cooking","cookingchannel","cool","corsica","country","coupon","coupons","courses","cpa","credit","creditcard","creditunion","cricket","crown","crs","cruise","cruises","csc","cuisinella","cymru","cyou","dabur","dad","dance","data","date","dating","datsun","day","dclk","dds","deal","dealer","deals","degree","delivery","dell","deloitte","delta","democrat","dental","dentist","desi","design","dev","dhl","diamonds","diet","digital","direct","directory","discount","discover","dish","diy","dnp","docs","doctor","dog","domains","dot","download","drive","dtv","dubai","duck","dunlop","dupont","durban","dvag","dvr","earth","eat","eco","edeka","education","email","emerck","energy","engineer","engineering","enterprises","epson","equipment","ericsson","erni","esq","estate","esurance","etisalat","eurovision","eus","events","exchange","expert","exposed","express","extraspace","fage","fail","fairwinds","faith","family","fan","fans","farm","farmers","fashion","fast","fedex","feedback","ferrari","ferrero","fiat","fidelity","fido","film","final","finance","financial","fire","firestone","firmdale","fish","fishing","fit","fitness","flickr","flights","flir","florist","flowers","fly","foo","food","foodnetwork","football","ford","forex","forsale","forum","foundation","fox","free","fresenius","frl","frogans","frontdoor","frontier","ftr","fujitsu","fujixerox","fun","fund","furniture","futbol","fyi","gal","gallery","gallo","gallup","game","games","gap","garden","gay","gbiz","gdn","gea","gent","genting","george","ggee","gift","gifts","gives","giving","glade","glass","gle","global","globo","gmail","gmbh","gmo","gmx","godaddy","gold","goldpoint","golf","goo","goodyear","goog","google","gop","got","grainger","graphics","gratis","green","gripe","grocery","group","guardian","gucci","guge","guide","guitars","guru","hair","hamburg","hangout","haus","hbo","hdfc","hdfcbank","health","healthcare","help","helsinki","here","hermes","hgtv","hiphop","hisamitsu","hitachi","hiv","hkt","hockey","holdings","holiday","homedepot","homegoods","homes","homesense","honda","horse","hospital","host","hosting","hot","hoteles","hotels","hotmail","house","how","hsbc","hughes","hyatt","hyundai","ibm","icbc","ice","icu","ieee","ifm","ikano","imamat","imdb","immo","immobilien","inc","industries","infiniti","ing","ink","institute","insurance","insure","intel","international","intuit","investments","ipiranga","irish","ismaili","ist","istanbul","itau","itv","iveco","jaguar","java","jcb","jcp","jeep","jetzt","jewelry","jio","jll","jmp","jnj","joburg","jot","joy","jpmorgan","jprs","juegos","juniper","kaufen","kddi","kerryhotels","kerrylogistics","kerryproperties","kfh","kia","kim","kinder","kindle","kitchen","kiwi","koeln","komatsu","kosher","kpmg","kpn","krd","kred","kuokgroup","kyoto","lacaixa","lamborghini","lamer","lancaster","lancia","land","landrover","lanxess","lasalle","lat","latino","latrobe","law","lawyer","lds","lease","leclerc","lefrak","legal","lego","lexus","lgbt","lidl","life","lifeinsurance","lifestyle","lighting","like","lilly","limited","limo","lincoln","linde","link","lipsy","live","living","lixil","llc","llp","loan","loans","locker","locus","loft","lol","london","lotte","lotto","love","lpl","lplfinancial","ltd","ltda","lundbeck","lupin","luxe","luxury","macys","madrid","maif","maison","makeup","man","management","mango","map","market","marketing","markets","marriott","marshalls","maserati","mattel","mba","mckinsey","med","media","meet","melbourne","meme","memorial","men","menu","merckmsd","metlife","miami","microsoft","mini","mint","mit","mitsubishi","mlb","mls","mma","mobile","moda","moe","moi","mom","monash","money","monster","mormon","mortgage","moscow","moto","motorcycles","mov","movie","msd","mtn","mtr","mutual","nab","nadex","nagoya","nationwide","natura","navy","nba","nec","netbank","netflix","network","neustar","new","newholland","news","next","nextdirect","nexus","nfl","ngo","nhk","nico","nike","nikon","ninja","nissan","nissay","nokia","northwesternmutual","norton","now","nowruz","nowtv","nra","nrw","ntt","nyc","obi","observer","off","office","okinawa","olayan","olayangroup","oldnavy","ollo","omega","one","ong","onl","online","onyourside","ooo","open","oracle","orange","organic","origins","osaka","otsuka","ott","ovh","page","panasonic","paris","pars","partners","parts","party","passagens","pay","pccw","pet","pfizer","pharmacy","phd","philips","phone","photo","photography","photos","physio","pics","pictet","pictures","pid","pin","ping","pink","pioneer","pizza","place","play","playstation","plumbing","plus","pnc","pohl","poker","politie","porn","pramerica","praxi","press","prime","prod","productions","prof","progressive","promo","properties","property","protection","pru","prudential","pub","pwc","qpon","quebec","quest","qvc","racing","radio","raid","read","realestate","realtor","realty","recipes","red","redstone","redumbrella","rehab","reise","reisen","reit","reliance","ren","rent","rentals","repair","report","republican","rest","restaurant","review","reviews","rexroth","rich","richardli","ricoh","rightathome","ril","rio","rip","rmit","rocher","rocks","rodeo","rogers","room","rsvp","rugby","ruhr","run","rwe","ryukyu","saarland","safe","safety","sakura","sale","salon","samsclub","samsung","sandvik","sandvikcoromant","sanofi","sap","sarl","sas","save","saxo","sbi","sbs","sca","scb","schaeffler","schmidt","scholarships","school","schule","schwarz","science","scjohnson","scor","scot","search","seat","secure","security","seek","select","sener","services","ses","seven","sew","sex","sexy","sfr","shangrila","sharp","shaw","shell","shia","shiksha","shoes","shop","shopping","shouji","show","showtime","shriram","silk","sina","singles","site","ski","skin","sky","skype","sling","smart","smile","sncf","soccer","social","softbank","software","sohu","solar","solutions","song","sony","soy","spa","space","sport","spot","spreadbetting","srl","stada","staples","star","statebank","statefarm","stc","stcgroup","stockholm","storage","store","stream","studio","study","style","sucks","supplies","supply","support","surf","surgery","suzuki","swatch","swiftcover","swiss","sydney","symantec","systems","tab","taipei","talk","taobao","target","tatamotors","tatar","tattoo","tax","taxi","tci","tdk","team","tech","technology","temasek","tennis","teva","thd","theater","theatre","tiaa","tickets","tienda","tiffany","tips","tires","tirol","tjmaxx","tjx","tkmaxx","tmall","today","tokyo","tools","top","toray","toshiba","total","tours","town","toyota","toys","trade","trading","training","travel","travelchannel","travelers","travelersinsurance","trust","trv","tube","tui","tunes","tushu","tvs","ubank","ubs","unicom","university","uno","uol","ups","vacations","vana","vanguard","vegas","ventures","verisign","versicherung","vet","viajes","video","vig","viking","villas","vin","vip","virgin","visa","vision","viva","vivo","vlaanderen","vodka","volkswagen","volvo","vote","voting","voto","voyage","vuelos","wales","walmart","walter","wang","wanggou","watch","watches","weather","weatherchannel","webcam","weber","website","wed","wedding","weibo","weir","whoswho","wien","wiki","williamhill","win","windows","wine","winners","wme","wolterskluwer","woodside","work","works","world","wow","wtc","wtf","xbox","xerox","xfinity","xihuan","xin","कॉम","セール","佛山","慈善","集团","在线","大众汽车","点看","คอม","八卦","موقع","公益","公司","香格里拉","网站","移动","我爱你","москва","католик","онлайн","сайт","联通","קום","时尚","微博","淡马锡","ファッション","орг","नेट","ストア","アマゾン","삼성","商标","商店","商城","дети","ポイント","新闻","工行","家電","كوم","中文网","中信","娱乐","谷歌","電訊盈科","购物","クラウド","通販","网店","संगठन","餐厅","网络","ком","亚马逊","诺基亚","食品","飞利浦","手表","手机","ارامكو","العليان","اتصالات","بازار","ابوظبي","كاثوليك","همراه","닷컴","政府","شبكة","بيتك","عرب","机构","组织机构","健康","招聘","рус","珠宝","大拿","みんな","グーグル","世界","書籍","网址","닷넷","コム","天主教","游戏","vermögensberater","vermögensberatung","企业","信息","嘉里大酒店","嘉里","广东","政务","xyz","yachts","yahoo","yamaxun","yandex","yodobashi","yoga","yokohama","you","youtube","yun","zappos","zara","zero","zip","zone","zuerich","cc.ua","inf.ua","ltd.ua","adobeaemcloud.com","adobeaemcloud.net","*.dev.adobeaemcloud.com","beep.pl","barsy.ca","*.compute.estate","*.alces.network","altervista.org","alwaysdata.net","cloudfront.net","*.compute.amazonaws.com","*.compute-1.amazonaws.com","*.compute.amazonaws.com.cn","us-east-1.amazonaws.com","cn-north-1.eb.amazonaws.com.cn","cn-northwest-1.eb.amazonaws.com.cn","elasticbeanstalk.com","ap-northeast-1.elasticbeanstalk.com","ap-northeast-2.elasticbeanstalk.com","ap-northeast-3.elasticbeanstalk.com","ap-south-1.elasticbeanstalk.com","ap-southeast-1.elasticbeanstalk.com","ap-southeast-2.elasticbeanstalk.com","ca-central-1.elasticbeanstalk.com","eu-central-1.elasticbeanstalk.com","eu-west-1.elasticbeanstalk.com","eu-west-2.elasticbeanstalk.com","eu-west-3.elasticbeanstalk.com","sa-east-1.elasticbeanstalk.com","us-east-1.elasticbeanstalk.com","us-east-2.elasticbeanstalk.com","us-gov-west-1.elasticbeanstalk.com","us-west-1.elasticbeanstalk.com","us-west-2.elasticbeanstalk.com","*.elb.amazonaws.com","*.elb.amazonaws.com.cn","s3.amazonaws.com","s3-ap-northeast-1.amazonaws.com","s3-ap-northeast-2.amazonaws.com","s3-ap-south-1.amazonaws.com","s3-ap-southeast-1.amazonaws.com","s3-ap-southeast-2.amazonaws.com","s3-ca-central-1.amazonaws.com","s3-eu-central-1.amazonaws.com","s3-eu-west-1.amazonaws.com","s3-eu-west-2.amazonaws.com","s3-eu-west-3.amazonaws.com","s3-external-1.amazonaws.com","s3-fips-us-gov-west-1.amazonaws.com","s3-sa-east-1.amazonaws.com","s3-us-gov-west-1.amazonaws.com","s3-us-east-2.amazonaws.com","s3-us-west-1.amazonaws.com","s3-us-west-2.amazonaws.com","s3.ap-northeast-2.amazonaws.com","s3.ap-south-1.amazonaws.com","s3.cn-north-1.amazonaws.com.cn","s3.ca-central-1.amazonaws.com","s3.eu-central-1.amazonaws.com","s3.eu-west-2.amazonaws.com","s3.eu-west-3.amazonaws.com","s3.us-east-2.amazonaws.com","s3.dualstack.ap-northeast-1.amazonaws.com","s3.dualstack.ap-northeast-2.amazonaws.com","s3.dualstack.ap-south-1.amazonaws.com","s3.dualstack.ap-southeast-1.amazonaws.com","s3.dualstack.ap-southeast-2.amazonaws.com","s3.dualstack.ca-central-1.amazonaws.com","s3.dualstack.eu-central-1.amazonaws.com","s3.dualstack.eu-west-1.amazonaws.com","s3.dualstack.eu-west-2.amazonaws.com","s3.dualstack.eu-west-3.amazonaws.com","s3.dualstack.sa-east-1.amazonaws.com","s3.dualstack.us-east-1.amazonaws.com","s3.dualstack.us-east-2.amazonaws.com","s3-website-us-east-1.amazonaws.com","s3-website-us-west-1.amazonaws.com","s3-website-us-west-2.amazonaws.com","s3-website-ap-northeast-1.amazonaws.com","s3-website-ap-southeast-1.amazonaws.com","s3-website-ap-southeast-2.amazonaws.com","s3-website-eu-west-1.amazonaws.com","s3-website-sa-east-1.amazonaws.com","s3-website.ap-northeast-2.amazonaws.com","s3-website.ap-south-1.amazonaws.com","s3-website.ca-central-1.amazonaws.com","s3-website.eu-central-1.amazonaws.com","s3-website.eu-west-2.amazonaws.com","s3-website.eu-west-3.amazonaws.com","s3-website.us-east-2.amazonaws.com","amsw.nl","t3l3p0rt.net","tele.amune.org","apigee.io","on-aptible.com","user.aseinet.ne.jp","gv.vc","d.gv.vc","user.party.eus","pimienta.org","poivron.org","potager.org","sweetpepper.org","myasustor.com","myfritz.net","*.awdev.ca","*.advisor.ws","b-data.io","backplaneapp.io","balena-devices.com","app.banzaicloud.io","betainabox.com","bnr.la","blackbaudcdn.net","boomla.net","boxfuse.io","square7.ch","bplaced.com","bplaced.de","square7.de","bplaced.net","square7.net","browsersafetymark.io","uk0.bigv.io","dh.bytemark.co.uk","vm.bytemark.co.uk","mycd.eu","carrd.co","crd.co","uwu.ai","ae.org","ar.com","br.com","cn.com","com.de","com.se","de.com","eu.com","gb.com","gb.net","hu.com","hu.net","jp.net","jpn.com","kr.com","mex.com","no.com","qc.com","ru.com","sa.com","se.net","uk.com","uk.net","us.com","uy.com","za.bz","za.com","africa.com","gr.com","in.net","us.org","co.com","c.la","certmgr.org","xenapponazure.com","discourse.group","discourse.team","virtueeldomein.nl","cleverapps.io","*.lcl.dev","*.stg.dev","c66.me","cloud66.ws","cloud66.zone","jdevcloud.com","wpdevcloud.com","cloudaccess.host","freesite.host","cloudaccess.net","cloudcontrolled.com","cloudcontrolapp.com","cloudera.site","trycloudflare.com","workers.dev","wnext.app","co.ca","*.otap.co","co.cz","c.cdn77.org","cdn77-ssl.net","r.cdn77.net","rsc.cdn77.org","ssl.origin.cdn77-secure.org","cloudns.asia","cloudns.biz","cloudns.club","cloudns.cc","cloudns.eu","cloudns.in","cloudns.info","cloudns.org","cloudns.pro","cloudns.pw","cloudns.us","cloudeity.net","cnpy.gdn","co.nl","co.no","webhosting.be","hosting-cluster.nl","ac.ru","edu.ru","gov.ru","int.ru","mil.ru","test.ru","dyn.cosidns.de","dynamisches-dns.de","dnsupdater.de","internet-dns.de","l-o-g-i-n.de","dynamic-dns.info","feste-ip.net","knx-server.net","static-access.net","realm.cz","*.cryptonomic.net","cupcake.is","*.customer-oci.com","*.oci.customer-oci.com","*.ocp.customer-oci.com","*.ocs.customer-oci.com","cyon.link","cyon.site","daplie.me","localhost.daplie.me","dattolocal.com","dattorelay.com","dattoweb.com","mydatto.com","dattolocal.net","mydatto.net","biz.dk","co.dk","firm.dk","reg.dk","store.dk","*.dapps.earth","*.bzz.dapps.earth","builtwithdark.com","edgestack.me","debian.net","dedyn.io","dnshome.de","online.th","shop.th","drayddns.com","dreamhosters.com","mydrobo.com","drud.io","drud.us","duckdns.org","dy.fi","tunk.org","dyndns-at-home.com","dyndns-at-work.com","dyndns-blog.com","dyndns-free.com","dyndns-home.com","dyndns-ip.com","dyndns-mail.com","dyndns-office.com","dyndns-pics.com","dyndns-remote.com","dyndns-server.com","dyndns-web.com","dyndns-wiki.com","dyndns-work.com","dyndns.biz","dyndns.info","dyndns.org","dyndns.tv","at-band-camp.net","ath.cx","barrel-of-knowledge.info","barrell-of-knowledge.info","better-than.tv","blogdns.com","blogdns.net","blogdns.org","blogsite.org","boldlygoingnowhere.org","broke-it.net","buyshouses.net","cechire.com","dnsalias.com","dnsalias.net","dnsalias.org","dnsdojo.com","dnsdojo.net","dnsdojo.org","does-it.net","doesntexist.com","doesntexist.org","dontexist.com","dontexist.net","dontexist.org","doomdns.com","doomdns.org","dvrdns.org","dyn-o-saur.com","dynalias.com","dynalias.net","dynalias.org","dynathome.net","dyndns.ws","endofinternet.net","endofinternet.org","endoftheinternet.org","est-a-la-maison.com","est-a-la-masion.com","est-le-patron.com","est-mon-blogueur.com","for-better.biz","for-more.biz","for-our.info","for-some.biz","for-the.biz","forgot.her.name","forgot.his.name","from-ak.com","from-al.com","from-ar.com","from-az.net","from-ca.com","from-co.net","from-ct.com","from-dc.com","from-de.com","from-fl.com","from-ga.com","from-hi.com","from-ia.com","from-id.com","from-il.com","from-in.com","from-ks.com","from-ky.com","from-la.net","from-ma.com","from-md.com","from-me.org","from-mi.com","from-mn.com","from-mo.com","from-ms.com","from-mt.com","from-nc.com","from-nd.com","from-ne.com","from-nh.com","from-nj.com","from-nm.com","from-nv.com","from-ny.net","from-oh.com","from-ok.com","from-or.com","from-pa.com","from-pr.com","from-ri.com","from-sc.com","from-sd.com","from-tn.com","from-tx.com","from-ut.com","from-va.com","from-vt.com","from-wa.com","from-wi.com","from-wv.com","from-wy.com","ftpaccess.cc","fuettertdasnetz.de","game-host.org","game-server.cc","getmyip.com","gets-it.net","go.dyndns.org","gotdns.com","gotdns.org","groks-the.info","groks-this.info","ham-radio-op.net","here-for-more.info","hobby-site.com","hobby-site.org","home.dyndns.org","homedns.org","homeftp.net","homeftp.org","homeip.net","homelinux.com","homelinux.net","homelinux.org","homeunix.com","homeunix.net","homeunix.org","iamallama.com","in-the-band.net","is-a-anarchist.com","is-a-blogger.com","is-a-bookkeeper.com","is-a-bruinsfan.org","is-a-bulls-fan.com","is-a-candidate.org","is-a-caterer.com","is-a-celticsfan.org","is-a-chef.com","is-a-chef.net","is-a-chef.org","is-a-conservative.com","is-a-cpa.com","is-a-cubicle-slave.com","is-a-democrat.com","is-a-designer.com","is-a-doctor.com","is-a-financialadvisor.com","is-a-geek.com","is-a-geek.net","is-a-geek.org","is-a-green.com","is-a-guru.com","is-a-hard-worker.com","is-a-hunter.com","is-a-knight.org","is-a-landscaper.com","is-a-lawyer.com","is-a-liberal.com","is-a-libertarian.com","is-a-linux-user.org","is-a-llama.com","is-a-musician.com","is-a-nascarfan.com","is-a-nurse.com","is-a-painter.com","is-a-patsfan.org","is-a-personaltrainer.com","is-a-photographer.com","is-a-player.com","is-a-republican.com","is-a-rockstar.com","is-a-socialist.com","is-a-soxfan.org","is-a-student.com","is-a-teacher.com","is-a-techie.com","is-a-therapist.com","is-an-accountant.com","is-an-actor.com","is-an-actress.com","is-an-anarchist.com","is-an-artist.com","is-an-engineer.com","is-an-entertainer.com","is-by.us","is-certified.com","is-found.org","is-gone.com","is-into-anime.com","is-into-cars.com","is-into-cartoons.com","is-into-games.com","is-leet.com","is-lost.org","is-not-certified.com","is-saved.org","is-slick.com","is-uberleet.com","is-very-bad.org","is-very-evil.org","is-very-good.org","is-very-nice.org","is-very-sweet.org","is-with-theband.com","isa-geek.com","isa-geek.net","isa-geek.org","isa-hockeynut.com","issmarterthanyou.com","isteingeek.de","istmein.de","kicks-ass.net","kicks-ass.org","knowsitall.info","land-4-sale.us","lebtimnetz.de","leitungsen.de","likes-pie.com","likescandy.com","merseine.nu","mine.nu","misconfused.org","mypets.ws","myphotos.cc","neat-url.com","office-on-the.net","on-the-web.tv","podzone.net","podzone.org","readmyblog.org","saves-the-whales.com","scrapper-site.net","scrapping.cc","selfip.biz","selfip.com","selfip.info","selfip.net","selfip.org","sells-for-less.com","sells-for-u.com","sells-it.net","sellsyourhome.org","servebbs.com","servebbs.net","servebbs.org","serveftp.net","serveftp.org","servegame.org","shacknet.nu","simple-url.com","space-to-rent.com","stuff-4-sale.org","stuff-4-sale.us","teaches-yoga.com","thruhere.net","traeumtgerade.de","webhop.biz","webhop.info","webhop.net","webhop.org","worse-than.tv","writesthisblog.com","ddnss.de","dyn.ddnss.de","dyndns.ddnss.de","dyndns1.de","dyn-ip24.de","home-webserver.de","dyn.home-webserver.de","myhome-server.de","ddnss.org","definima.net","definima.io","bci.dnstrace.pro","ddnsfree.com","ddnsgeek.com","giize.com","gleeze.com","kozow.com","loseyourip.com","ooguy.com","theworkpc.com","casacam.net","dynu.net","accesscam.org","camdvr.org","freeddns.org","mywire.org","webredirect.org","myddns.rocks","blogsite.xyz","dynv6.net","e4.cz","en-root.fr","mytuleap.com","onred.one","staging.onred.one","enonic.io","customer.enonic.io","eu.org","al.eu.org","asso.eu.org","at.eu.org","au.eu.org","be.eu.org","bg.eu.org","ca.eu.org","cd.eu.org","ch.eu.org","cn.eu.org","cy.eu.org","cz.eu.org","de.eu.org","dk.eu.org","edu.eu.org","ee.eu.org","es.eu.org","fi.eu.org","fr.eu.org","gr.eu.org","hr.eu.org","hu.eu.org","ie.eu.org","il.eu.org","in.eu.org","int.eu.org","is.eu.org","it.eu.org","jp.eu.org","kr.eu.org","lt.eu.org","lu.eu.org","lv.eu.org","mc.eu.org","me.eu.org","mk.eu.org","mt.eu.org","my.eu.org","net.eu.org","ng.eu.org","nl.eu.org","no.eu.org","nz.eu.org","paris.eu.org","pl.eu.org","pt.eu.org","q-a.eu.org","ro.eu.org","ru.eu.org","se.eu.org","si.eu.org","sk.eu.org","tr.eu.org","uk.eu.org","us.eu.org","eu-1.evennode.com","eu-2.evennode.com","eu-3.evennode.com","eu-4.evennode.com","us-1.evennode.com","us-2.evennode.com","us-3.evennode.com","us-4.evennode.com","twmail.cc","twmail.net","twmail.org","mymailer.com.tw","url.tw","apps.fbsbx.com","ru.net","adygeya.ru","bashkiria.ru","bir.ru","cbg.ru","com.ru","dagestan.ru","grozny.ru","kalmykia.ru","kustanai.ru","marine.ru","mordovia.ru","msk.ru","mytis.ru","nalchik.ru","nov.ru","pyatigorsk.ru","spb.ru","vladikavkaz.ru","vladimir.ru","abkhazia.su","adygeya.su","aktyubinsk.su","arkhangelsk.su","armenia.su","ashgabad.su","azerbaijan.su","balashov.su","bashkiria.su","bryansk.su","bukhara.su","chimkent.su","dagestan.su","east-kazakhstan.su","exnet.su","georgia.su","grozny.su","ivanovo.su","jambyl.su","kalmykia.su","kaluga.su","karacol.su","karaganda.su","karelia.su","khakassia.su","krasnodar.su","kurgan.su","kustanai.su","lenug.su","mangyshlak.su","mordovia.su","msk.su","murmansk.su","nalchik.su","navoi.su","north-kazakhstan.su","nov.su","obninsk.su","penza.su","pokrovsk.su","sochi.su","spb.su","tashkent.su","termez.su","togliatti.su","troitsk.su","tselinograd.su","tula.su","tuva.su","vladikavkaz.su","vladimir.su","vologda.su","channelsdvr.net","u.channelsdvr.net","fastly-terrarium.com","fastlylb.net","map.fastlylb.net","freetls.fastly.net","map.fastly.net","a.prod.fastly.net","global.prod.fastly.net","a.ssl.fastly.net","b.ssl.fastly.net","global.ssl.fastly.net","fastpanel.direct","fastvps-server.com","fhapp.xyz","fedorainfracloud.org","fedorapeople.org","cloud.fedoraproject.org","app.os.fedoraproject.org","app.os.stg.fedoraproject.org","mydobiss.com","filegear.me","filegear-au.me","filegear-de.me","filegear-gb.me","filegear-ie.me","filegear-jp.me","filegear-sg.me","firebaseapp.com","flynnhub.com","flynnhosting.net","0e.vc","freebox-os.com","freeboxos.com","fbx-os.fr","fbxos.fr","freebox-os.fr","freeboxos.fr","freedesktop.org","*.futurecms.at","*.ex.futurecms.at","*.in.futurecms.at","futurehosting.at","futuremailing.at","*.ex.ortsinfo.at","*.kunden.ortsinfo.at","*.statics.cloud","service.gov.uk","gehirn.ne.jp","usercontent.jp","gentapps.com","lab.ms","github.io","githubusercontent.com","gitlab.io","glitch.me","lolipop.io","cloudapps.digital","london.cloudapps.digital","homeoffice.gov.uk","ro.im","shop.ro","goip.de","run.app","a.run.app","web.app","*.0emm.com","appspot.com","*.r.appspot.com","blogspot.ae","blogspot.al","blogspot.am","blogspot.ba","blogspot.be","blogspot.bg","blogspot.bj","blogspot.ca","blogspot.cf","blogspot.ch","blogspot.cl","blogspot.co.at","blogspot.co.id","blogspot.co.il","blogspot.co.ke","blogspot.co.nz","blogspot.co.uk","blogspot.co.za","blogspot.com","blogspot.com.ar","blogspot.com.au","blogspot.com.br","blogspot.com.by","blogspot.com.co","blogspot.com.cy","blogspot.com.ee","blogspot.com.eg","blogspot.com.es","blogspot.com.mt","blogspot.com.ng","blogspot.com.tr","blogspot.com.uy","blogspot.cv","blogspot.cz","blogspot.de","blogspot.dk","blogspot.fi","blogspot.fr","blogspot.gr","blogspot.hk","blogspot.hr","blogspot.hu","blogspot.ie","blogspot.in","blogspot.is","blogspot.it","blogspot.jp","blogspot.kr","blogspot.li","blogspot.lt","blogspot.lu","blogspot.md","blogspot.mk","blogspot.mr","blogspot.mx","blogspot.my","blogspot.nl","blogspot.no","blogspot.pe","blogspot.pt","blogspot.qa","blogspot.re","blogspot.ro","blogspot.rs","blogspot.ru","blogspot.se","blogspot.sg","blogspot.si","blogspot.sk","blogspot.sn","blogspot.td","blogspot.tw","blogspot.ug","blogspot.vn","cloudfunctions.net","cloud.goog","codespot.com","googleapis.com","googlecode.com","pagespeedmobilizer.com","publishproxy.com","withgoogle.com","withyoutube.com","awsmppl.com","fin.ci","free.hr","caa.li","ua.rs","conf.se","hs.zone","hs.run","hashbang.sh","hasura.app","hasura-app.io","hepforge.org","herokuapp.com","herokussl.com","myravendb.com","ravendb.community","ravendb.me","development.run","ravendb.run","bpl.biz","orx.biz","ng.city","biz.gl","ng.ink","col.ng","firm.ng","gen.ng","ltd.ng","ngo.ng","ng.school","sch.so","häkkinen.fi","*.moonscale.io","moonscale.net","iki.fi","dyn-berlin.de","in-berlin.de","in-brb.de","in-butter.de","in-dsl.de","in-dsl.net","in-dsl.org","in-vpn.de","in-vpn.net","in-vpn.org","biz.at","info.at","info.cx","ac.leg.br","al.leg.br","am.leg.br","ap.leg.br","ba.leg.br","ce.leg.br","df.leg.br","es.leg.br","go.leg.br","ma.leg.br","mg.leg.br","ms.leg.br","mt.leg.br","pa.leg.br","pb.leg.br","pe.leg.br","pi.leg.br","pr.leg.br","rj.leg.br","rn.leg.br","ro.leg.br","rr.leg.br","rs.leg.br","sc.leg.br","se.leg.br","sp.leg.br","to.leg.br","pixolino.com","ipifony.net","mein-iserv.de","test-iserv.de","iserv.dev","iobb.net","myjino.ru","*.hosting.myjino.ru","*.landing.myjino.ru","*.spectrum.myjino.ru","*.vps.myjino.ru","*.triton.zone","*.cns.joyent.com","js.org","kaas.gg","khplay.nl","keymachine.de","kinghost.net","uni5.net","knightpoint.systems","oya.to","co.krd","edu.krd","git-repos.de","lcube-server.de","svn-repos.de","leadpages.co","lpages.co","lpusercontent.com","lelux.site","co.business","co.education","co.events","co.financial","co.network","co.place","co.technology","app.lmpm.com","linkitools.space","linkyard.cloud","linkyard-cloud.ch","members.linode.com","nodebalancer.linode.com","we.bs","loginline.app","loginline.dev","loginline.io","loginline.services","loginline.site","krasnik.pl","leczna.pl","lubartow.pl","lublin.pl","poniatowa.pl","swidnik.pl","uklugs.org","glug.org.uk","lug.org.uk","lugs.org.uk","barsy.bg","barsy.co.uk","barsyonline.co.uk","barsycenter.com","barsyonline.com","barsy.club","barsy.de","barsy.eu","barsy.in","barsy.info","barsy.io","barsy.me","barsy.menu","barsy.mobi","barsy.net","barsy.online","barsy.org","barsy.pro","barsy.pub","barsy.shop","barsy.site","barsy.support","barsy.uk","*.magentosite.cloud","mayfirst.info","mayfirst.org","hb.cldmail.ru","miniserver.com","memset.net","cloud.metacentrum.cz","custom.metacentrum.cz","flt.cloud.muni.cz","usr.cloud.muni.cz","meteorapp.com","eu.meteorapp.com","co.pl","azurecontainer.io","azurewebsites.net","azure-mobile.net","cloudapp.net","mozilla-iot.org","bmoattachments.org","net.ru","org.ru","pp.ru","ui.nabu.casa","pony.club","of.fashion","on.fashion","of.football","in.london","of.london","for.men","and.mom","for.mom","for.one","for.sale","of.work","to.work","nctu.me","bitballoon.com","netlify.com","4u.com","ngrok.io","nh-serv.co.uk","nfshost.com","dnsking.ch","mypi.co","n4t.co","001www.com","ddnslive.com","myiphost.com","forumz.info","16-b.it","32-b.it","64-b.it","soundcast.me","tcp4.me","dnsup.net","hicam.net","now-dns.net","ownip.net","vpndns.net","dynserv.org","now-dns.org","x443.pw","now-dns.top","ntdll.top","freeddns.us","crafting.xyz","zapto.xyz","nsupdate.info","nerdpol.ovh","blogsyte.com","brasilia.me","cable-modem.org","ciscofreak.com","collegefan.org","couchpotatofries.org","damnserver.com","ddns.me","ditchyourip.com","dnsfor.me","dnsiskinky.com","dvrcam.info","dynns.com","eating-organic.net","fantasyleague.cc","geekgalaxy.com","golffan.us","health-carereform.com","homesecuritymac.com","homesecuritypc.com","hopto.me","ilovecollege.info","loginto.me","mlbfan.org","mmafan.biz","myactivedirectory.com","mydissent.net","myeffect.net","mymediapc.net","mypsx.net","mysecuritycamera.com","mysecuritycamera.net","mysecuritycamera.org","net-freaks.com","nflfan.org","nhlfan.net","no-ip.ca","no-ip.co.uk","no-ip.net","noip.us","onthewifi.com","pgafan.net","point2this.com","pointto.us","privatizehealthinsurance.net","quicksytes.com","read-books.org","securitytactics.com","serveexchange.com","servehumour.com","servep2p.com","servesarcasm.com","stufftoread.com","ufcfan.org","unusualperson.com","workisboring.com","3utilities.com","bounceme.net","ddns.net","ddnsking.com","gotdns.ch","hopto.org","myftp.biz","myftp.org","myvnc.com","no-ip.biz","no-ip.info","no-ip.org","noip.me","redirectme.net","servebeer.com","serveblog.net","servecounterstrike.com","serveftp.com","servegame.com","servehalflife.com","servehttp.com","serveirc.com","serveminecraft.net","servemp3.com","servepics.com","servequake.com","sytes.net","webhop.me","zapto.org","stage.nodeart.io","nodum.co","nodum.io","pcloud.host","nyc.mn","nom.ae","nom.af","nom.ai","nom.al","nym.by","nom.bz","nym.bz","nom.cl","nym.ec","nom.gd","nom.ge","nom.gl","nym.gr","nom.gt","nym.gy","nym.hk","nom.hn","nym.ie","nom.im","nom.ke","nym.kz","nym.la","nym.lc","nom.li","nym.li","nym.lt","nym.lu","nom.lv","nym.me","nom.mk","nym.mn","nym.mx","nom.nu","nym.nz","nym.pe","nym.pt","nom.pw","nom.qa","nym.ro","nom.rs","nom.si","nym.sk","nom.st","nym.su","nym.sx","nom.tj","nym.tw","nom.ug","nom.uy","nom.vc","nom.vg","static.observableusercontent.com","cya.gg","cloudycluster.net","nid.io","opencraft.hosting","operaunite.com","skygearapp.com","outsystemscloud.com","ownprovider.com","own.pm","ox.rs","oy.lc","pgfog.com","pagefrontapp.com","art.pl","gliwice.pl","krakow.pl","poznan.pl","wroc.pl","zakopane.pl","pantheonsite.io","gotpantheon.com","mypep.link","perspecta.cloud","on-web.fr","*.platform.sh","*.platformsh.site","dyn53.io","co.bn","xen.prgmr.com","priv.at","prvcy.page","*.dweb.link","protonet.io","chirurgiens-dentistes-en-france.fr","byen.site","pubtls.org","qualifioapp.com","qbuser.com","instantcloud.cn","ras.ru","qa2.com","qcx.io","*.sys.qcx.io","dev-myqnapcloud.com","alpha-myqnapcloud.com","myqnapcloud.com","*.quipelements.com","vapor.cloud","vaporcloud.io","rackmaze.com","rackmaze.net","*.on-k3s.io","*.on-rancher.cloud","*.on-rio.io","readthedocs.io","rhcloud.com","app.render.com","onrender.com","repl.co","repl.run","resindevice.io","devices.resinstaging.io","hzc.io","wellbeingzone.eu","ptplus.fit","wellbeingzone.co.uk","git-pages.rit.edu","sandcats.io","logoip.de","logoip.com","schokokeks.net","gov.scot","scrysec.com","firewall-gateway.com","firewall-gateway.de","my-gateway.de","my-router.de","spdns.de","spdns.eu","firewall-gateway.net","my-firewall.org","myfirewall.org","spdns.org","senseering.net","biz.ua","co.ua","pp.ua","shiftedit.io","myshopblocks.com","shopitsite.com","mo-siemens.io","1kapp.com","appchizi.com","applinzi.com","sinaapp.com","vipsinaapp.com","siteleaf.net","bounty-full.com","alpha.bounty-full.com","beta.bounty-full.com","stackhero-network.com","static.land","dev.static.land","sites.static.land","apps.lair.io","*.stolos.io","spacekit.io","customer.speedpartner.de","api.stdlib.com","storj.farm","utwente.io","soc.srcf.net","user.srcf.net","temp-dns.com","applicationcloud.io","scapp.io","*.s5y.io","*.sensiosite.cloud","syncloud.it","diskstation.me","dscloud.biz","dscloud.me","dscloud.mobi","dsmynas.com","dsmynas.net","dsmynas.org","familyds.com","familyds.net","familyds.org","i234.me","myds.me","synology.me","vpnplus.to","direct.quickconnect.to","taifun-dns.de","gda.pl","gdansk.pl","gdynia.pl","med.pl","sopot.pl","edugit.org","telebit.app","telebit.io","*.telebit.xyz","gwiddle.co.uk","thingdustdata.com","cust.dev.thingdust.io","cust.disrec.thingdust.io","cust.prod.thingdust.io","cust.testing.thingdust.io","arvo.network","azimuth.network","bloxcms.com","townnews-staging.com","12hp.at","2ix.at","4lima.at","lima-city.at","12hp.ch","2ix.ch","4lima.ch","lima-city.ch","trafficplex.cloud","de.cool","12hp.de","2ix.de","4lima.de","lima-city.de","1337.pictures","clan.rip","lima-city.rocks","webspace.rocks","lima.zone","*.transurl.be","*.transurl.eu","*.transurl.nl","tuxfamily.org","dd-dns.de","diskstation.eu","diskstation.org","dray-dns.de","draydns.de","dyn-vpn.de","dynvpn.de","mein-vigor.de","my-vigor.de","my-wan.de","syno-ds.de","synology-diskstation.de","synology-ds.de","uber.space","*.uberspace.de","hk.com","hk.org","ltd.hk","inc.hk","virtualuser.de","virtual-user.de","urown.cloud","dnsupdate.info","lib.de.us","2038.io","router.management","v-info.info","voorloper.cloud","v.ua","wafflecell.com","*.webhare.dev","wedeploy.io","wedeploy.me","wedeploy.sh","remotewd.com","wmflabs.org","myforum.community","community-pro.de","diskussionsbereich.de","community-pro.net","meinforum.net","half.host","xnbay.com","u2.xnbay.com","u2-local.xnbay.com","cistron.nl","demon.nl","xs4all.space","yandexcloud.net","storage.yandexcloud.net","website.yandexcloud.net","official.academy","yolasite.com","ybo.faith","yombo.me","homelink.one","ybo.party","ybo.review","ybo.science","ybo.trade","nohost.me","noho.st","za.net","za.org","now.sh","bss.design","basicserver.io","virtualserver.io","enterprisecloud.nu"]},{}],2:[function(a,o,r){"use strict";var p=a("punycode"),k={};k.rules=a("./data/rules.json").map(function(a){return{rule:a,suffix:a.replace(/^(\*\.|\!)/,""),punySuffix:-1,wildcard:"*"===a.charAt(0),exception:"!"===a.charAt(0)}}),k.endsWith=function(a,o){return-1!==a.indexOf(o,a.length-o.length)},k.findRule=function(a){var i=p.toASCII(a);return k.rules.reduce(function(a,o){return-1===o.punySuffix&&(o.punySuffix=p.toASCII(o.suffix)),k.endsWith(i,"."+o.punySuffix)||i===o.punySuffix?o:a},null)},r.errorCodes={DOMAIN_TOO_SHORT:"Domain name too short.",DOMAIN_TOO_LONG:"Domain name too long. It should be no more than 255 chars.",LABEL_STARTS_WITH_DASH:"Domain name label can not start with a dash.",LABEL_ENDS_WITH_DASH:"Domain name label can not end with a dash.",LABEL_TOO_LONG:"Domain name label should be at most 63 chars long.",LABEL_TOO_SHORT:"Domain name label should be at least 1 character long.",LABEL_INVALID_CHARS:"Domain name label can only contain alphanumeric characters or dashes."},k.validate=function(a){var o=p.toASCII(a);if(o.length<1)return"DOMAIN_TOO_SHORT";if(255<o.length)return"DOMAIN_TOO_LONG";for(var i,e=o.split("."),n=0;n<e.length;++n){if(!(i=e[n]).length)return"LABEL_TOO_SHORT";if(63<i.length)return"LABEL_TOO_LONG";if("-"===i.charAt(0))return"LABEL_STARTS_WITH_DASH";if("-"===i.charAt(i.length-1))return"LABEL_ENDS_WITH_DASH";if(!/^[a-z0-9\-]+$/.test(i))return"LABEL_INVALID_CHARS"}},r.parse=function(a){if("string"!=typeof a)throw new TypeError("Domain name must be a string.");var o=a.slice(0).toLowerCase();"."===o.charAt(o.length-1)&&(o=o.slice(0,o.length-1));var i=k.validate(o);if(i)return{input:a,error:{message:r.errorCodes[i],code:i}};var e={input:a,tld:null,sld:null,domain:null,subdomain:null,listed:!1},n=o.split(".");if("local"===n[n.length-1])return e;function s(){return/xn--/.test(o)&&(e.domain&&(e.domain=p.toASCII(e.domain)),e.subdomain&&(e.subdomain=p.toASCII(e.subdomain))),e}var m=k.findRule(o);if(!m)return n.length<2?e:(e.tld=n.pop(),e.sld=n.pop(),e.domain=[e.sld,e.tld].join("."),n.length&&(e.subdomain=n.pop()),s());e.listed=!0;var t=m.suffix.split("."),u=n.slice(0,n.length-t.length);return m.exception&&u.push(t.shift()),e.tld=t.join("."),u.length?(m.wildcard&&(t.unshift(u.pop()),e.tld=t.join(".")),u.length&&(e.sld=u.pop(),e.domain=[e.sld,e.tld].join("."),u.length&&(e.subdomain=u.join("."))),s()):s()},r.get=function(a){return a&&r.parse(a).domain||null},r.isValid=function(a){var o=r.parse(a);return Boolean(o.domain&&o.listed)}},{"./data/rules.json":1,punycode:3}],3:[function(a,T,D){(function(S){!function(a){var o="object"==typeof D&&D&&!D.nodeType&&D,i="object"==typeof T&&T&&!T.nodeType&&T,e="object"==typeof S&&S;e.global!==e&&e.window!==e&&e.self!==e||(a=e);var n,s,d=2147483647,b=36,y=1,f=26,m=38,t=700,v=72,w=128,z="-",u=/^xn--/,r=/[^\x20-\x7E]/,p=/[\x2E\u3002\uFF0E\uFF61]/g,k={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},c=b-y,x=Math.floor,q=String.fromCharCode;function A(a){throw new RangeError(k[a])}function l(a,o){for(var i=a.length,e=[];i--;)e[i]=o(a[i]);return e}function g(a,o){var i=a.split("@"),e="";return 1<i.length&&(e=i[0]+"@",a=i[1]),e+l((a=a.replace(p,".")).split("."),o).join(".")}function O(a){for(var o,i,e=[],n=0,s=a.length;n<s;)55296<=(o=a.charCodeAt(n++))&&o<=56319&&n<s?56320==(64512&(i=a.charCodeAt(n++)))?e.push(((1023&o)<<10)+(1023&i)+65536):(e.push(o),n--):e.push(o);return e}function _(a){return l(a,function(a){var o="";return 65535<a&&(o+=q((a-=65536)>>>10&1023|55296),a=56320|1023&a),o+=q(a)}).join("")}function L(a,o){return a+22+75*(a<26)-((0!=o)<<5)}function I(a,o,i){var e=0;for(a=i?x(a/t):a>>1,a+=x(a/o);c*f>>1<a;e+=b)a=x(a/c);return x(e+(c+1)*a/(a+m))}function h(a){var o,i,e,n,s,m,t,u,r,p,k,c=[],l=a.length,g=0,h=w,j=v;for((i=a.lastIndexOf(z))<0&&(i=0),e=0;e<i;++e)128<=a.charCodeAt(e)&&A("not-basic"),c.push(a.charCodeAt(e));for(n=0<i?i+1:0;n<l;){for(s=g,m=1,t=b;l<=n&&A("invalid-input"),k=a.charCodeAt(n++),(b<=(u=k-48<10?k-22:k-65<26?k-65:k-97<26?k-97:b)||u>x((d-g)/m))&&A("overflow"),g+=u*m,!(u<(r=t<=j?y:j+f<=t?f:t-j));t+=b)m>x(d/(p=b-r))&&A("overflow"),m*=p;j=I(g-s,o=c.length+1,0==s),x(g/o)>d-h&&A("overflow"),h+=x(g/o),g%=o,c.splice(g++,0,h)}return _(c)}function j(a){var o,i,e,n,s,m,t,u,r,p,k,c,l,g,h,j=[];for(c=(a=O(a)).length,o=w,s=v,m=i=0;m<c;++m)(k=a[m])<128&&j.push(q(k));for(e=n=j.length,n&&j.push(z);e<c;){for(t=d,m=0;m<c;++m)o<=(k=a[m])&&k<t&&(t=k);for(t-o>x((d-i)/(l=e+1))&&A("overflow"),i+=(t-o)*l,o=t,m=0;m<c;++m)if((k=a[m])<o&&++i>d&&A("overflow"),k==o){for(u=i,r=b;!(u<(p=r<=s?y:s+f<=r?f:r-s));r+=b)h=u-p,g=b-p,j.push(q(L(p+h%g,0))),u=x(h/g);j.push(q(L(u,0))),s=I(i,l,e==n),i=0,++e}++i,++o}return j.join("")}if(n={version:"1.4.1",ucs2:{decode:O,encode:_},decode:h,encode:j,toASCII:function(a){return g(a,function(a){return r.test(a)?"xn--"+j(a):a})},toUnicode:function(a){return g(a,function(a){return u.test(a)?h(a.slice(4).toLowerCase()):a})}},0,o&&i)if(T.exports==o)i.exports=n;else for(s in n)n.hasOwnProperty(s)&&(o[s]=n[s]);else a.punycode=n}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[2])(2)});
diff --git a/deps/npm/node_modules/psl/index.js b/deps/npm/node_modules/psl/index.js
deleted file mode 100644
index da7bc12136c..00000000000
--- a/deps/npm/node_modules/psl/index.js
+++ /dev/null
@@ -1,269 +0,0 @@
-/*eslint no-var:0, prefer-arrow-callback: 0, object-shorthand: 0 */
-'use strict';
-
-
-var Punycode = require('punycode');
-
-
-var internals = {};
-
-
-//
-// Read rules from file.
-//
-internals.rules = require('./data/rules.json').map(function (rule) {
-
- return {
- rule: rule,
- suffix: rule.replace(/^(\*\.|\!)/, ''),
- punySuffix: -1,
- wildcard: rule.charAt(0) === '*',
- exception: rule.charAt(0) === '!'
- };
-});
-
-
-//
-// Check is given string ends with `suffix`.
-//
-internals.endsWith = function (str, suffix) {
-
- return str.indexOf(suffix, str.length - suffix.length) !== -1;
-};
-
-
-//
-// Find rule for a given domain.
-//
-internals.findRule = function (domain) {
-
- var punyDomain = Punycode.toASCII(domain);
- return internals.rules.reduce(function (memo, rule) {
-
- if (rule.punySuffix === -1){
- rule.punySuffix = Punycode.toASCII(rule.suffix);
- }
- if (!internals.endsWith(punyDomain, '.' + rule.punySuffix) && punyDomain !== rule.punySuffix) {
- return memo;
- }
- // This has been commented out as it never seems to run. This is because
- // sub tlds always appear after their parents and we never find a shorter
- // match.
- //if (memo) {
- // var memoSuffix = Punycode.toASCII(memo.suffix);
- // if (memoSuffix.length >= punySuffix.length) {
- // return memo;
- // }
- //}
- return rule;
- }, null);
-};
-
-
-//
-// Error codes and messages.
-//
-exports.errorCodes = {
- DOMAIN_TOO_SHORT: 'Domain name too short.',
- DOMAIN_TOO_LONG: 'Domain name too long. It should be no more than 255 chars.',
- LABEL_STARTS_WITH_DASH: 'Domain name label can not start with a dash.',
- LABEL_ENDS_WITH_DASH: 'Domain name label can not end with a dash.',
- LABEL_TOO_LONG: 'Domain name label should be at most 63 chars long.',
- LABEL_TOO_SHORT: 'Domain name label should be at least 1 character long.',
- LABEL_INVALID_CHARS: 'Domain name label can only contain alphanumeric characters or dashes.'
-};
-
-
-//
-// Validate domain name and throw if not valid.
-//
-// From wikipedia:
-//
-// Hostnames are composed of series of labels concatenated with dots, as are all
-// domain names. Each label must be between 1 and 63 characters long, and the
-// entire hostname (including the delimiting dots) has a maximum of 255 chars.
-//
-// Allowed chars:
-//
-// * `a-z`
-// * `0-9`
-// * `-` but not as a starting or ending character
-// * `.` as a separator for the textual portions of a domain name
-//
-// * http://en.wikipedia.org/wiki/Domain_name
-// * http://en.wikipedia.org/wiki/Hostname
-//
-internals.validate = function (input) {
-
- // Before we can validate we need to take care of IDNs with unicode chars.
- var ascii = Punycode.toASCII(input);
-
- if (ascii.length < 1) {
- return 'DOMAIN_TOO_SHORT';
- }
- if (ascii.length > 255) {
- return 'DOMAIN_TOO_LONG';
- }
-
- // Check each part's length and allowed chars.
- var labels = ascii.split('.');
- var label;
-
- for (var i = 0; i < labels.length; ++i) {
- label = labels[i];
- if (!label.length) {
- return 'LABEL_TOO_SHORT';
- }
- if (label.length > 63) {
- return 'LABEL_TOO_LONG';
- }
- if (label.charAt(0) === '-') {
- return 'LABEL_STARTS_WITH_DASH';
- }
- if (label.charAt(label.length - 1) === '-') {
- return 'LABEL_ENDS_WITH_DASH';
- }
- if (!/^[a-z0-9\-]+$/.test(label)) {
- return 'LABEL_INVALID_CHARS';
- }
- }
-};
-
-
-//
-// Public API
-//
-
-
-//
-// Parse domain.
-//
-exports.parse = function (input) {
-
- if (typeof input !== 'string') {
- throw new TypeError('Domain name must be a string.');
- }
-
- // Force domain to lowercase.
- var domain = input.slice(0).toLowerCase();
-
- // Handle FQDN.
- // TODO: Simply remove trailing dot?
- if (domain.charAt(domain.length - 1) === '.') {
- domain = domain.slice(0, domain.length - 1);
- }
-
- // Validate and sanitise input.
- var error = internals.validate(domain);
- if (error) {
- return {
- input: input,
- error: {
- message: exports.errorCodes[error],
- code: error
- }
- };
- }
-
- var parsed = {
- input: input,
- tld: null,
- sld: null,
- domain: null,
- subdomain: null,
- listed: false
- };
-
- var domainParts = domain.split('.');
-
- // Non-Internet TLD
- if (domainParts[domainParts.length - 1] === 'local') {
- return parsed;
- }
-
- var handlePunycode = function () {
-
- if (!/xn--/.test(domain)) {
- return parsed;
- }
- if (parsed.domain) {
- parsed.domain = Punycode.toASCII(parsed.domain);
- }
- if (parsed.subdomain) {
- parsed.subdomain = Punycode.toASCII(parsed.subdomain);
- }
- return parsed;
- };
-
- var rule = internals.findRule(domain);
-
- // Unlisted tld.
- if (!rule) {
- if (domainParts.length < 2) {
- return parsed;
- }
- parsed.tld = domainParts.pop();
- parsed.sld = domainParts.pop();
- parsed.domain = [parsed.sld, parsed.tld].join('.');
- if (domainParts.length) {
- parsed.subdomain = domainParts.pop();
- }
- return handlePunycode();
- }
-
- // At this point we know the public suffix is listed.
- parsed.listed = true;
-
- var tldParts = rule.suffix.split('.');
- var privateParts = domainParts.slice(0, domainParts.length - tldParts.length);
-
- if (rule.exception) {
- privateParts.push(tldParts.shift());
- }
-
- parsed.tld = tldParts.join('.');
-
- if (!privateParts.length) {
- return handlePunycode();
- }
-
- if (rule.wildcard) {
- tldParts.unshift(privateParts.pop());
- parsed.tld = tldParts.join('.');
- }
-
- if (!privateParts.length) {
- return handlePunycode();
- }
-
- parsed.sld = privateParts.pop();
- parsed.domain = [parsed.sld, parsed.tld].join('.');
-
- if (privateParts.length) {
- parsed.subdomain = privateParts.join('.');
- }
-
- return handlePunycode();
-};
-
-
-//
-// Get domain.
-//
-exports.get = function (domain) {
-
- if (!domain) {
- return null;
- }
- return exports.parse(domain).domain || null;
-};
-
-
-//
-// Check whether domain belongs to a known public suffix.
-//
-exports.isValid = function (domain) {
-
- var parsed = exports.parse(domain);
- return Boolean(parsed.domain && parsed.listed);
-};
diff --git a/deps/npm/node_modules/psl/package.json b/deps/npm/node_modules/psl/package.json
deleted file mode 100644
index ee2da19fa2d..00000000000
--- a/deps/npm/node_modules/psl/package.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "name": "psl",
- "version": "1.8.0",
- "description": "Domain name parser based on the Public Suffix List",
- "repository": {
- "type": "git",
- "url": "git@github.com:lupomontero/psl.git"
- },
- "main": "index.js",
- "scripts": {
- "pretest": "eslint .",
- "test": "mocha test && karma start ./karma.conf.js --single-run",
- "watch": "mocha test --watch",
- "prebuild": "./scripts/update-rules.js",
- "build": "browserify ./index.js --standalone=psl > ./dist/psl.js",
- "postbuild": "cat ./dist/psl.js | uglifyjs -c -m > ./dist/psl.min.js",
- "commit-and-pr": "commit-and-pr",
- "changelog": "git log $(git describe --tags --abbrev=0)..HEAD --oneline --format=\"%h %s (%an <%ae>)\""
- },
- "keywords": [
- "publicsuffix",
- "publicsuffixlist"
- ],
- "author": "Lupo Montero <lupomontero@gmail.com> (https://lupomontero.com/)",
- "license": "MIT",
- "devDependencies": {
- "JSONStream": "^1.3.5",
- "browserify": "^16.5.0",
- "commit-and-pr": "^1.0.4",
- "eslint": "^6.8.0",
- "eslint-config-hapi": "^12.0.0",
- "eslint-plugin-hapi": "^4.1.0",
- "karma": "^4.4.1",
- "karma-browserify": "^7.0.0",
- "karma-mocha": "^1.3.0",
- "karma-mocha-reporter": "^2.2.5",
- "karma-phantomjs-launcher": "^1.0.4",
- "mocha": "^7.1.1",
- "phantomjs-prebuilt": "^2.1.16",
- "request": "^2.88.2",
- "uglify-js": "^3.8.0",
- "watchify": "^3.11.1"
- }
-}
diff --git a/deps/npm/node_modules/punycode/LICENSE-MIT.txt b/deps/npm/node_modules/punycode/LICENSE-MIT.txt
deleted file mode 100644
index a41e0a7ef97..00000000000
--- a/deps/npm/node_modules/punycode/LICENSE-MIT.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-Copyright Mathias Bynens <https://mathiasbynens.be/>
-
-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/deps/npm/node_modules/punycode/package.json b/deps/npm/node_modules/punycode/package.json
deleted file mode 100644
index 9202ccf8c0c..00000000000
--- a/deps/npm/node_modules/punycode/package.json
+++ /dev/null
@@ -1,58 +0,0 @@
-{
- "name": "punycode",
- "version": "2.1.1",
- "description": "A robust Punycode converter that fully complies to RFC 3492 and RFC 5891, and works on nearly all JavaScript platforms.",
- "homepage": "https://mths.be/punycode",
- "main": "punycode.js",
- "jsnext:main": "punycode.es6.js",
- "module": "punycode.es6.js",
- "engines": {
- "node": ">=6"
- },
- "keywords": [
- "punycode",
- "unicode",
- "idn",
- "idna",
- "dns",
- "url",
- "domain"
- ],
- "license": "MIT",
- "author": {
- "name": "Mathias Bynens",
- "url": "https://mathiasbynens.be/"
- },
- "contributors": [
- {
- "name": "Mathias Bynens",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "repository": {
- "type": "git",
- "url": "https://github.com/bestiejs/punycode.js.git"
- },
- "bugs": "https://github.com/bestiejs/punycode.js/issues",
- "files": [
- "LICENSE-MIT.txt",
- "punycode.js",
- "punycode.es6.js"
- ],
- "scripts": {
- "test": "mocha tests",
- "prepublish": "node scripts/prepublish.js"
- },
- "devDependencies": {
- "codecov": "^1.0.1",
- "istanbul": "^0.4.1",
- "mocha": "^2.5.3"
- },
- "jspm": {
- "map": {
- "./punycode.js": {
- "node": "@node/punycode"
- }
- }
- }
-}
diff --git a/deps/npm/node_modules/punycode/punycode.es6.js b/deps/npm/node_modules/punycode/punycode.es6.js
deleted file mode 100644
index 4610bc9ebf2..00000000000
--- a/deps/npm/node_modules/punycode/punycode.es6.js
+++ /dev/null
@@ -1,441 +0,0 @@
-'use strict';
-
-/** Highest positive signed 32-bit float value */
-const maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1
-
-/** Bootstring parameters */
-const base = 36;
-const tMin = 1;
-const tMax = 26;
-const skew = 38;
-const damp = 700;
-const initialBias = 72;
-const initialN = 128; // 0x80
-const delimiter = '-'; // '\x2D'
-
-/** Regular expressions */
-const regexPunycode = /^xn--/;
-const regexNonASCII = /[^\0-\x7E]/; // non-ASCII chars
-const regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g; // RFC 3490 separators
-
-/** Error messages */
-const errors = {
- 'overflow': 'Overflow: input needs wider integers to process',
- 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',
- 'invalid-input': 'Invalid input'
-};
-
-/** Convenience shortcuts */
-const baseMinusTMin = base - tMin;
-const floor = Math.floor;
-const stringFromCharCode = String.fromCharCode;
-
-/*--------------------------------------------------------------------------*/
-
-/**
- * A generic error utility function.
- * @private
- * @param {String} type The error type.
- * @returns {Error} Throws a `RangeError` with the applicable error message.
- */
-function error(type) {
- throw new RangeError(errors[type]);
-}
-
-/**
- * A generic `Array#map` utility function.
- * @private
- * @param {Array} array The array to iterate over.
- * @param {Function} callback The function that gets called for every array
- * item.
- * @returns {Array} A new array of values returned by the callback function.
- */
-function map(array, fn) {
- const result = [];
- let length = array.length;
- while (length--) {
- result[length] = fn(array[length]);
- }
- return result;
-}
-
-/**
- * A simple `Array#map`-like wrapper to work with domain name strings or email
- * addresses.
- * @private
- * @param {String} domain The domain name or email address.
- * @param {Function} callback The function that gets called for every
- * character.
- * @returns {Array} A new string of characters returned by the callback
- * function.
- */
-function mapDomain(string, fn) {
- const parts = string.split('@');
- let result = '';
- if (parts.length > 1) {
- // In email addresses, only the domain name should be punycoded. Leave
- // the local part (i.e. everything up to `@`) intact.
- result = parts[0] + '@';
- string = parts[1];
- }
- // Avoid `split(regex)` for IE8 compatibility. See #17.
- string = string.replace(regexSeparators, '\x2E');
- const labels = string.split('.');
- const encoded = map(labels, fn).join('.');
- return result + encoded;
-}
-
-/**
- * Creates an array containing the numeric code points of each Unicode
- * character in the string. While JavaScript uses UCS-2 internally,
- * this function will convert a pair of surrogate halves (each of which
- * UCS-2 exposes as separate characters) into a single code point,
- * matching UTF-16.
- * @see `punycode.ucs2.encode`
- * @see <https://mathiasbynens.be/notes/javascript-encoding>
- * @memberOf punycode.ucs2
- * @name decode
- * @param {String} string The Unicode input string (UCS-2).
- * @returns {Array} The new array of code points.
- */
-function ucs2decode(string) {
- const output = [];
- let counter = 0;
- const length = string.length;
- while (counter < length) {
- const value = string.charCodeAt(counter++);
- if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
- // It's a high surrogate, and there is a next character.
- const extra = string.charCodeAt(counter++);
- if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.
- output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
- } else {
- // It's an unmatched surrogate; only append this code unit, in case the
- // next code unit is the high surrogate of a surrogate pair.
- output.push(value);
- counter--;
- }
- } else {
- output.push(value);
- }
- }
- return output;
-}
-
-/**
- * Creates a string based on an array of numeric code points.
- * @see `punycode.ucs2.decode`
- * @memberOf punycode.ucs2
- * @name encode
- * @param {Array} codePoints The array of numeric code points.
- * @returns {String} The new Unicode string (UCS-2).
- */
-const ucs2encode = array => String.fromCodePoint(...array);
-
-/**
- * Converts a basic code point into a digit/integer.
- * @see `digitToBasic()`
- * @private
- * @param {Number} codePoint The basic numeric code point value.
- * @returns {Number} The numeric value of a basic code point (for use in
- * representing integers) in the range `0` to `base - 1`, or `base` if
- * the code point does not represent a value.
- */
-const basicToDigit = function(codePoint) {
- if (codePoint - 0x30 < 0x0A) {
- return codePoint - 0x16;
- }
- if (codePoint - 0x41 < 0x1A) {
- return codePoint - 0x41;
- }
- if (codePoint - 0x61 < 0x1A) {
- return codePoint - 0x61;
- }
- return base;
-};
-
-/**
- * Converts a digit/integer into a basic code point.
- * @see `basicToDigit()`
- * @private
- * @param {Number} digit The numeric value of a basic code point.
- * @returns {Number} The basic code point whose value (when used for
- * representing integers) is `digit`, which needs to be in the range
- * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is
- * used; else, the lowercase form is used. The behavior is undefined
- * if `flag` is non-zero and `digit` has no uppercase form.
- */
-const digitToBasic = function(digit, flag) {
- // 0..25 map to ASCII a..z or A..Z
- // 26..35 map to ASCII 0..9
- return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
-};
-
-/**
- * Bias adaptation function as per section 3.4 of RFC 3492.
- * https://tools.ietf.org/html/rfc3492#section-3.4
- * @private
- */
-const adapt = function(delta, numPoints, firstTime) {
- let k = 0;
- delta = firstTime ? floor(delta / damp) : delta >> 1;
- delta += floor(delta / numPoints);
- for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {
- delta = floor(delta / baseMinusTMin);
- }
- return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
-};
-
-/**
- * Converts a Punycode string of ASCII-only symbols to a string of Unicode
- * symbols.
- * @memberOf punycode
- * @param {String} input The Punycode string of ASCII-only symbols.
- * @returns {String} The resulting string of Unicode symbols.
- */
-const decode = function(input) {
- // Don't use UCS-2.
- const output = [];
- const inputLength = input.length;
- let i = 0;
- let n = initialN;
- let bias = initialBias;
-
- // Handle the basic code points: let `basic` be the number of input code
- // points before the last delimiter, or `0` if there is none, then copy
- // the first basic code points to the output.
-
- let basic = input.lastIndexOf(delimiter);
- if (basic < 0) {
- basic = 0;
- }
-
- for (let j = 0; j < basic; ++j) {
- // if it's not a basic code point
- if (input.charCodeAt(j) >= 0x80) {
- error('not-basic');
- }
- output.push(input.charCodeAt(j));
- }
-
- // Main decoding loop: start just after the last delimiter if any basic code
- // points were copied; start at the beginning otherwise.
-
- for (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {
-
- // `index` is the index of the next character to be consumed.
- // Decode a generalized variable-length integer into `delta`,
- // which gets added to `i`. The overflow checking is easier
- // if we increase `i` as we go, then subtract off its starting
- // value at the end to obtain `delta`.
- let oldi = i;
- for (let w = 1, k = base; /* no condition */; k += base) {
-
- if (index >= inputLength) {
- error('invalid-input');
- }
-
- const digit = basicToDigit(input.charCodeAt(index++));
-
- if (digit >= base || digit > floor((maxInt - i) / w)) {
- error('overflow');
- }
-
- i += digit * w;
- const t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
-
- if (digit < t) {
- break;
- }
-
- const baseMinusT = base - t;
- if (w > floor(maxInt / baseMinusT)) {
- error('overflow');
- }
-
- w *= baseMinusT;
-
- }
-
- const out = output.length + 1;
- bias = adapt(i - oldi, out, oldi == 0);
-
- // `i` was supposed to wrap around from `out` to `0`,
- // incrementing `n` each time, so we'll fix that now:
- if (floor(i / out) > maxInt - n) {
- error('overflow');
- }
-
- n += floor(i / out);
- i %= out;
-
- // Insert `n` at position `i` of the output.
- output.splice(i++, 0, n);
-
- }
-
- return String.fromCodePoint(...output);
-};
-
-/**
- * Converts a string of Unicode symbols (e.g. a domain name label) to a
- * Punycode string of ASCII-only symbols.
- * @memberOf punycode
- * @param {String} input The string of Unicode symbols.
- * @returns {String} The resulting Punycode string of ASCII-only symbols.
- */
-const encode = function(input) {
- const output = [];
-
- // Convert the input in UCS-2 to an array of Unicode code points.
- input = ucs2decode(input);
-
- // Cache the length.
- let inputLength = input.length;
-
- // Initialize the state.
- let n = initialN;
- let delta = 0;
- let bias = initialBias;
-
- // Handle the basic code points.
- for (const currentValue of input) {
- if (currentValue < 0x80) {
- output.push(stringFromCharCode(currentValue));
- }
- }
-
- let basicLength = output.length;
- let handledCPCount = basicLength;
-
- // `handledCPCount` is the number of code points that have been handled;
- // `basicLength` is the number of basic code points.
-
- // Finish the basic string with a delimiter unless it's empty.
- if (basicLength) {
- output.push(delimiter);
- }
-
- // Main encoding loop:
- while (handledCPCount < inputLength) {
-
- // All non-basic code points < n have been handled already. Find the next
- // larger one:
- let m = maxInt;
- for (const currentValue of input) {
- if (currentValue >= n && currentValue < m) {
- m = currentValue;
- }
- }
-
- // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,
- // but guard against overflow.
- const handledCPCountPlusOne = handledCPCount + 1;
- if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
- error('overflow');
- }
-
- delta += (m - n) * handledCPCountPlusOne;
- n = m;
-
- for (const currentValue of input) {
- if (currentValue < n && ++delta > maxInt) {
- error('overflow');
- }
- if (currentValue == n) {
- // Represent delta as a generalized variable-length integer.
- let q = delta;
- for (let k = base; /* no condition */; k += base) {
- const t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
- if (q < t) {
- break;
- }
- const qMinusT = q - t;
- const baseMinusT = base - t;
- output.push(
- stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))
- );
- q = floor(qMinusT / baseMinusT);
- }
-
- output.push(stringFromCharCode(digitToBasic(q, 0)));
- bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
- delta = 0;
- ++handledCPCount;
- }
- }
-
- ++delta;
- ++n;
-
- }
- return output.join('');
-};
-
-/**
- * Converts a Punycode string representing a domain name or an email address
- * to Unicode. Only the Punycoded parts of the input will be converted, i.e.
- * it doesn't matter if you call it on a string that has already been
- * converted to Unicode.
- * @memberOf punycode
- * @param {String} input The Punycoded domain name or email address to
- * convert to Unicode.
- * @returns {String} The Unicode representation of the given Punycode
- * string.
- */
-const toUnicode = function(input) {
- return mapDomain(input, function(string) {
- return regexPunycode.test(string)
- ? decode(string.slice(4).toLowerCase())
- : string;
- });
-};
-
-/**
- * Converts a Unicode string representing a domain name or an email address to
- * Punycode. Only the non-ASCII parts of the domain name will be converted,
- * i.e. it doesn't matter if you call it with a domain that's already in
- * ASCII.
- * @memberOf punycode
- * @param {String} input The domain name or email address to convert, as a
- * Unicode string.
- * @returns {String} The Punycode representation of the given domain name or
- * email address.
- */
-const toASCII = function(input) {
- return mapDomain(input, function(string) {
- return regexNonASCII.test(string)
- ? 'xn--' + encode(string)
- : string;
- });
-};
-
-/*--------------------------------------------------------------------------*/
-
-/** Define the public API */
-const punycode = {
- /**
- * A string representing the current Punycode.js version number.
- * @memberOf punycode
- * @type String
- */
- 'version': '2.1.0',
- /**
- * An object of methods to convert from JavaScript's internal character
- * representation (UCS-2) to Unicode code points, and back.
- * @see <https://mathiasbynens.be/notes/javascript-encoding>
- * @memberOf punycode
- * @type Object
- */
- 'ucs2': {
- 'decode': ucs2decode,
- 'encode': ucs2encode
- },
- 'decode': decode,
- 'encode': encode,
- 'toASCII': toASCII,
- 'toUnicode': toUnicode
-};
-
-export { ucs2decode, ucs2encode, decode, encode, toASCII, toUnicode };
-export default punycode;
diff --git a/deps/npm/node_modules/punycode/punycode.js b/deps/npm/node_modules/punycode/punycode.js
deleted file mode 100644
index ea61fd0d39a..00000000000
--- a/deps/npm/node_modules/punycode/punycode.js
+++ /dev/null
@@ -1,440 +0,0 @@
-'use strict';
-
-/** Highest positive signed 32-bit float value */
-const maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1
-
-/** Bootstring parameters */
-const base = 36;
-const tMin = 1;
-const tMax = 26;
-const skew = 38;
-const damp = 700;
-const initialBias = 72;
-const initialN = 128; // 0x80
-const delimiter = '-'; // '\x2D'
-
-/** Regular expressions */
-const regexPunycode = /^xn--/;
-const regexNonASCII = /[^\0-\x7E]/; // non-ASCII chars
-const regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g; // RFC 3490 separators
-
-/** Error messages */
-const errors = {
- 'overflow': 'Overflow: input needs wider integers to process',
- 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',
- 'invalid-input': 'Invalid input'
-};
-
-/** Convenience shortcuts */
-const baseMinusTMin = base - tMin;
-const floor = Math.floor;
-const stringFromCharCode = String.fromCharCode;
-
-/*--------------------------------------------------------------------------*/
-
-/**
- * A generic error utility function.
- * @private
- * @param {String} type The error type.
- * @returns {Error} Throws a `RangeError` with the applicable error message.
- */
-function error(type) {
- throw new RangeError(errors[type]);
-}
-
-/**
- * A generic `Array#map` utility function.
- * @private
- * @param {Array} array The array to iterate over.
- * @param {Function} callback The function that gets called for every array
- * item.
- * @returns {Array} A new array of values returned by the callback function.
- */
-function map(array, fn) {
- const result = [];
- let length = array.length;
- while (length--) {
- result[length] = fn(array[length]);
- }
- return result;
-}
-
-/**
- * A simple `Array#map`-like wrapper to work with domain name strings or email
- * addresses.
- * @private
- * @param {String} domain The domain name or email address.
- * @param {Function} callback The function that gets called for every
- * character.
- * @returns {Array} A new string of characters returned by the callback
- * function.
- */
-function mapDomain(string, fn) {
- const parts = string.split('@');
- let result = '';
- if (parts.length > 1) {
- // In email addresses, only the domain name should be punycoded. Leave
- // the local part (i.e. everything up to `@`) intact.
- result = parts[0] + '@';
- string = parts[1];
- }
- // Avoid `split(regex)` for IE8 compatibility. See #17.
- string = string.replace(regexSeparators, '\x2E');
- const labels = string.split('.');
- const encoded = map(labels, fn).join('.');
- return result + encoded;
-}
-
-/**
- * Creates an array containing the numeric code points of each Unicode
- * character in the string. While JavaScript uses UCS-2 internally,
- * this function will convert a pair of surrogate halves (each of which
- * UCS-2 exposes as separate characters) into a single code point,
- * matching UTF-16.
- * @see `punycode.ucs2.encode`
- * @see <https://mathiasbynens.be/notes/javascript-encoding>
- * @memberOf punycode.ucs2
- * @name decode
- * @param {String} string The Unicode input string (UCS-2).
- * @returns {Array} The new array of code points.
- */
-function ucs2decode(string) {
- const output = [];
- let counter = 0;
- const length = string.length;
- while (counter < length) {
- const value = string.charCodeAt(counter++);
- if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
- // It's a high surrogate, and there is a next character.
- const extra = string.charCodeAt(counter++);
- if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.
- output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
- } else {
- // It's an unmatched surrogate; only append this code unit, in case the
- // next code unit is the high surrogate of a surrogate pair.
- output.push(value);
- counter--;
- }
- } else {
- output.push(value);
- }
- }
- return output;
-}
-
-/**
- * Creates a string based on an array of numeric code points.
- * @see `punycode.ucs2.decode`
- * @memberOf punycode.ucs2
- * @name encode
- * @param {Array} codePoints The array of numeric code points.
- * @returns {String} The new Unicode string (UCS-2).
- */
-const ucs2encode = array => String.fromCodePoint(...array);
-
-/**
- * Converts a basic code point into a digit/integer.
- * @see `digitToBasic()`
- * @private
- * @param {Number} codePoint The basic numeric code point value.
- * @returns {Number} The numeric value of a basic code point (for use in
- * representing integers) in the range `0` to `base - 1`, or `base` if
- * the code point does not represent a value.
- */
-const basicToDigit = function(codePoint) {
- if (codePoint - 0x30 < 0x0A) {
- return codePoint - 0x16;
- }
- if (codePoint - 0x41 < 0x1A) {
- return codePoint - 0x41;
- }
- if (codePoint - 0x61 < 0x1A) {
- return codePoint - 0x61;
- }
- return base;
-};
-
-/**
- * Converts a digit/integer into a basic code point.
- * @see `basicToDigit()`
- * @private
- * @param {Number} digit The numeric value of a basic code point.
- * @returns {Number} The basic code point whose value (when used for
- * representing integers) is `digit`, which needs to be in the range
- * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is
- * used; else, the lowercase form is used. The behavior is undefined
- * if `flag` is non-zero and `digit` has no uppercase form.
- */
-const digitToBasic = function(digit, flag) {
- // 0..25 map to ASCII a..z or A..Z
- // 26..35 map to ASCII 0..9
- return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
-};
-
-/**
- * Bias adaptation function as per section 3.4 of RFC 3492.
- * https://tools.ietf.org/html/rfc3492#section-3.4
- * @private
- */
-const adapt = function(delta, numPoints, firstTime) {
- let k = 0;
- delta = firstTime ? floor(delta / damp) : delta >> 1;
- delta += floor(delta / numPoints);
- for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {
- delta = floor(delta / baseMinusTMin);
- }
- return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
-};
-
-/**
- * Converts a Punycode string of ASCII-only symbols to a string of Unicode
- * symbols.
- * @memberOf punycode
- * @param {String} input The Punycode string of ASCII-only symbols.
- * @returns {String} The resulting string of Unicode symbols.
- */
-const decode = function(input) {
- // Don't use UCS-2.
- const output = [];
- const inputLength = input.length;
- let i = 0;
- let n = initialN;
- let bias = initialBias;
-
- // Handle the basic code points: let `basic` be the number of input code
- // points before the last delimiter, or `0` if there is none, then copy
- // the first basic code points to the output.
-
- let basic = input.lastIndexOf(delimiter);
- if (basic < 0) {
- basic = 0;
- }
-
- for (let j = 0; j < basic; ++j) {
- // if it's not a basic code point
- if (input.charCodeAt(j) >= 0x80) {
- error('not-basic');
- }
- output.push(input.charCodeAt(j));
- }
-
- // Main decoding loop: start just after the last delimiter if any basic code
- // points were copied; start at the beginning otherwise.
-
- for (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {
-
- // `index` is the index of the next character to be consumed.
- // Decode a generalized variable-length integer into `delta`,
- // which gets added to `i`. The overflow checking is easier
- // if we increase `i` as we go, then subtract off its starting
- // value at the end to obtain `delta`.
- let oldi = i;
- for (let w = 1, k = base; /* no condition */; k += base) {
-
- if (index >= inputLength) {
- error('invalid-input');
- }
-
- const digit = basicToDigit(input.charCodeAt(index++));
-
- if (digit >= base || digit > floor((maxInt - i) / w)) {
- error('overflow');
- }
-
- i += digit * w;
- const t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
-
- if (digit < t) {
- break;
- }
-
- const baseMinusT = base - t;
- if (w > floor(maxInt / baseMinusT)) {
- error('overflow');
- }
-
- w *= baseMinusT;
-
- }
-
- const out = output.length + 1;
- bias = adapt(i - oldi, out, oldi == 0);
-
- // `i` was supposed to wrap around from `out` to `0`,
- // incrementing `n` each time, so we'll fix that now:
- if (floor(i / out) > maxInt - n) {
- error('overflow');
- }
-
- n += floor(i / out);
- i %= out;
-
- // Insert `n` at position `i` of the output.
- output.splice(i++, 0, n);
-
- }
-
- return String.fromCodePoint(...output);
-};
-
-/**
- * Converts a string of Unicode symbols (e.g. a domain name label) to a
- * Punycode string of ASCII-only symbols.
- * @memberOf punycode
- * @param {String} input The string of Unicode symbols.
- * @returns {String} The resulting Punycode string of ASCII-only symbols.
- */
-const encode = function(input) {
- const output = [];
-
- // Convert the input in UCS-2 to an array of Unicode code points.
- input = ucs2decode(input);
-
- // Cache the length.
- let inputLength = input.length;
-
- // Initialize the state.
- let n = initialN;
- let delta = 0;
- let bias = initialBias;
-
- // Handle the basic code points.
- for (const currentValue of input) {
- if (currentValue < 0x80) {
- output.push(stringFromCharCode(currentValue));
- }
- }
-
- let basicLength = output.length;
- let handledCPCount = basicLength;
-
- // `handledCPCount` is the number of code points that have been handled;
- // `basicLength` is the number of basic code points.
-
- // Finish the basic string with a delimiter unless it's empty.
- if (basicLength) {
- output.push(delimiter);
- }
-
- // Main encoding loop:
- while (handledCPCount < inputLength) {
-
- // All non-basic code points < n have been handled already. Find the next
- // larger one:
- let m = maxInt;
- for (const currentValue of input) {
- if (currentValue >= n && currentValue < m) {
- m = currentValue;
- }
- }
-
- // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,
- // but guard against overflow.
- const handledCPCountPlusOne = handledCPCount + 1;
- if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
- error('overflow');
- }
-
- delta += (m - n) * handledCPCountPlusOne;
- n = m;
-
- for (const currentValue of input) {
- if (currentValue < n && ++delta > maxInt) {
- error('overflow');
- }
- if (currentValue == n) {
- // Represent delta as a generalized variable-length integer.
- let q = delta;
- for (let k = base; /* no condition */; k += base) {
- const t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
- if (q < t) {
- break;
- }
- const qMinusT = q - t;
- const baseMinusT = base - t;
- output.push(
- stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))
- );
- q = floor(qMinusT / baseMinusT);
- }
-
- output.push(stringFromCharCode(digitToBasic(q, 0)));
- bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
- delta = 0;
- ++handledCPCount;
- }
- }
-
- ++delta;
- ++n;
-
- }
- return output.join('');
-};
-
-/**
- * Converts a Punycode string representing a domain name or an email address
- * to Unicode. Only the Punycoded parts of the input will be converted, i.e.
- * it doesn't matter if you call it on a string that has already been
- * converted to Unicode.
- * @memberOf punycode
- * @param {String} input The Punycoded domain name or email address to
- * convert to Unicode.
- * @returns {String} The Unicode representation of the given Punycode
- * string.
- */
-const toUnicode = function(input) {
- return mapDomain(input, function(string) {
- return regexPunycode.test(string)
- ? decode(string.slice(4).toLowerCase())
- : string;
- });
-};
-
-/**
- * Converts a Unicode string representing a domain name or an email address to
- * Punycode. Only the non-ASCII parts of the domain name will be converted,
- * i.e. it doesn't matter if you call it with a domain that's already in
- * ASCII.
- * @memberOf punycode
- * @param {String} input The domain name or email address to convert, as a
- * Unicode string.
- * @returns {String} The Punycode representation of the given domain name or
- * email address.
- */
-const toASCII = function(input) {
- return mapDomain(input, function(string) {
- return regexNonASCII.test(string)
- ? 'xn--' + encode(string)
- : string;
- });
-};
-
-/*--------------------------------------------------------------------------*/
-
-/** Define the public API */
-const punycode = {
- /**
- * A string representing the current Punycode.js version number.
- * @memberOf punycode
- * @type String
- */
- 'version': '2.1.0',
- /**
- * An object of methods to convert from JavaScript's internal character
- * representation (UCS-2) to Unicode code points, and back.
- * @see <https://mathiasbynens.be/notes/javascript-encoding>
- * @memberOf punycode
- * @type Object
- */
- 'ucs2': {
- 'decode': ucs2decode,
- 'encode': ucs2encode
- },
- 'decode': decode,
- 'encode': encode,
- 'toASCII': toASCII,
- 'toUnicode': toUnicode
-};
-
-module.exports = punycode;
diff --git a/deps/npm/node_modules/qs/LICENSE b/deps/npm/node_modules/qs/LICENSE
deleted file mode 100644
index d4569487a09..00000000000
--- a/deps/npm/node_modules/qs/LICENSE
+++ /dev/null
@@ -1,28 +0,0 @@
-Copyright (c) 2014 Nathan LaFreniere and other contributors.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * The names of any contributors may not be used to endorse or promote
- products derived from this software without specific prior written
- permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- * * *
-
-The complete list of contributors can be found at: https://github.com/hapijs/qs/graphs/contributors
diff --git a/deps/npm/node_modules/qs/dist/qs.js b/deps/npm/node_modules/qs/dist/qs.js
deleted file mode 100644
index ecf7ba44cf1..00000000000
--- a/deps/npm/node_modules/qs/dist/qs.js
+++ /dev/null
@@ -1,638 +0,0 @@
-(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.Qs = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
-'use strict';
-
-var replace = String.prototype.replace;
-var percentTwenties = /%20/g;
-
-module.exports = {
- 'default': 'RFC3986',
- formatters: {
- RFC1738: function (value) {
- return replace.call(value, percentTwenties, '+');
- },
- RFC3986: function (value) {
- return value;
- }
- },
- RFC1738: 'RFC1738',
- RFC3986: 'RFC3986'
-};
-
-},{}],2:[function(require,module,exports){
-'use strict';
-
-var stringify = require('./stringify');
-var parse = require('./parse');
-var formats = require('./formats');
-
-module.exports = {
- formats: formats,
- parse: parse,
- stringify: stringify
-};
-
-},{"./formats":1,"./parse":3,"./stringify":4}],3:[function(require,module,exports){
-'use strict';
-
-var utils = require('./utils');
-
-var has = Object.prototype.hasOwnProperty;
-
-var defaults = {
- allowDots: false,
- allowPrototypes: false,
- arrayLimit: 20,
- decoder: utils.decode,
- delimiter: '&',
- depth: 5,
- parameterLimit: 1000,
- plainObjects: false,
- strictNullHandling: false
-};
-
-var parseValues = function parseQueryStringValues(str, options) {
- var obj = {};
- var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, '') : str;
- var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;
- var parts = cleanStr.split(options.delimiter, limit);
-
- for (var i = 0; i < parts.length; ++i) {
- var part = parts[i];
-
- var bracketEqualsPos = part.indexOf(']=');
- var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;
-
- var key, val;
- if (pos === -1) {
- key = options.decoder(part, defaults.decoder);
- val = options.strictNullHandling ? null : '';
- } else {
- key = options.decoder(part.slice(0, pos), defaults.decoder);
- val = options.decoder(part.slice(pos + 1), defaults.decoder);
- }
- if (has.call(obj, key)) {
- obj[key] = [].concat(obj[key]).concat(val);
- } else {
- obj[key] = val;
- }
- }
-
- return obj;
-};
-
-var parseObject = function (chain, val, options) {
- var leaf = val;
-
- for (var i = chain.length - 1; i >= 0; --i) {
- var obj;
- var root = chain[i];
-
- if (root === '[]') {
- obj = [];
- obj = obj.concat(leaf);
- } else {
- obj = options.plainObjects ? Object.create(null) : {};
- var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;
- var index = parseInt(cleanRoot, 10);
- if (
- !isNaN(index)
- && root !== cleanRoot
- && String(index) === cleanRoot
- && index >= 0
- && (options.parseArrays && index <= options.arrayLimit)
- ) {
- obj = [];
- obj[index] = leaf;
- } else {
- obj[cleanRoot] = leaf;
- }
- }
-
- leaf = obj;
- }
-
- return leaf;
-};
-
-var parseKeys = function parseQueryStringKeys(givenKey, val, options) {
- if (!givenKey) {
- return;
- }
-
- // Transform dot notation to bracket notation
- var key = options.allowDots ? givenKey.replace(/\.([^.[]+)/g, '[$1]') : givenKey;
-
- // The regex chunks
-
- var brackets = /(\[[^[\]]*])/;
- var child = /(\[[^[\]]*])/g;
-
- // Get the parent
-
- var segment = brackets.exec(key);
- var parent = segment ? key.slice(0, segment.index) : key;
-
- // Stash the parent if it exists
-
- var keys = [];
- if (parent) {
- // If we aren't using plain objects, optionally prefix keys
- // that would overwrite object prototype properties
- if (!options.plainObjects && has.call(Object.prototype, parent)) {
- if (!options.allowPrototypes) {
- return;
- }
- }
-
- keys.push(parent);
- }
-
- // Loop through children appending to the array until we hit depth
-
- var i = 0;
- while ((segment = child.exec(key)) !== null && i < options.depth) {
- i += 1;
- if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {
- if (!options.allowPrototypes) {
- return;
- }
- }
- keys.push(segment[1]);
- }
-
- // If there's a remainder, just add whatever is left
-
- if (segment) {
- keys.push('[' + key.slice(segment.index) + ']');
- }
-
- return parseObject(keys, val, options);
-};
-
-module.exports = function (str, opts) {
- var options = opts ? utils.assign({}, opts) : {};
-
- if (options.decoder !== null && options.decoder !== undefined && typeof options.decoder !== 'function') {
- throw new TypeError('Decoder has to be a function.');
- }
-
- options.ignoreQueryPrefix = options.ignoreQueryPrefix === true;
- options.delimiter = typeof options.delimiter === 'string' || utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter;
- options.depth = typeof options.depth === 'number' ? options.depth : defaults.depth;
- options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : defaults.arrayLimit;
- options.parseArrays = options.parseArrays !== false;
- options.decoder = typeof options.decoder === 'function' ? options.decoder : defaults.decoder;
- options.allowDots = typeof options.allowDots === 'boolean' ? options.allowDots : defaults.allowDots;
- options.plainObjects = typeof options.plainObjects === 'boolean' ? options.plainObjects : defaults.plainObjects;
- options.allowPrototypes = typeof options.allowPrototypes === 'boolean' ? options.allowPrototypes : defaults.allowPrototypes;
- options.parameterLimit = typeof options.parameterLimit === 'number' ? options.parameterLimit : defaults.parameterLimit;
- options.strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;
-
- if (str === '' || str === null || typeof str === 'undefined') {
- return options.plainObjects ? Object.create(null) : {};
- }
-
- var tempObj = typeof str === 'string' ? parseValues(str, options) : str;
- var obj = options.plainObjects ? Object.create(null) : {};
-
- // Iterate over the keys and setup the new object
-
- var keys = Object.keys(tempObj);
- for (var i = 0; i < keys.length; ++i) {
- var key = keys[i];
- var newObj = parseKeys(key, tempObj[key], options);
- obj = utils.merge(obj, newObj, options);
- }
-
- return utils.compact(obj);
-};
-
-},{"./utils":5}],4:[function(require,module,exports){
-'use strict';
-
-var utils = require('./utils');
-var formats = require('./formats');
-
-var arrayPrefixGenerators = {
- brackets: function brackets(prefix) { // eslint-disable-line func-name-matching
- return prefix + '[]';
- },
- indices: function indices(prefix, key) { // eslint-disable-line func-name-matching
- return prefix + '[' + key + ']';
- },
- repeat: function repeat(prefix) { // eslint-disable-line func-name-matching
- return prefix;
- }
-};
-
-var toISO = Date.prototype.toISOString;
-
-var defaults = {
- delimiter: '&',
- encode: true,
- encoder: utils.encode,
- encodeValuesOnly: false,
- serializeDate: function serializeDate(date) { // eslint-disable-line func-name-matching
- return toISO.call(date);
- },
- skipNulls: false,
- strictNullHandling: false
-};
-
-var stringify = function stringify( // eslint-disable-line func-name-matching
- object,
- prefix,
- generateArrayPrefix,
- strictNullHandling,
- skipNulls,
- encoder,
- filter,
- sort,
- allowDots,
- serializeDate,
- formatter,
- encodeValuesOnly
-) {
- var obj = object;
- if (typeof filter === 'function') {
- obj = filter(prefix, obj);
- } else if (obj instanceof Date) {
- obj = serializeDate(obj);
- } else if (obj === null) {
- if (strictNullHandling) {
- return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder) : prefix;
- }
-
- obj = '';
- }
-
- if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || utils.isBuffer(obj)) {
- if (encoder) {
- var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder);
- return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder))];
- }
- return [formatter(prefix) + '=' + formatter(String(obj))];
- }
-
- var values = [];
-
- if (typeof obj === 'undefined') {
- return values;
- }
-
- var objKeys;
- if (Array.isArray(filter)) {
- objKeys = filter;
- } else {
- var keys = Object.keys(obj);
- objKeys = sort ? keys.sort(sort) : keys;
- }
-
- for (var i = 0; i < objKeys.length; ++i) {
- var key = objKeys[i];
-
- if (skipNulls && obj[key] === null) {
- continue;
- }
-
- if (Array.isArray(obj)) {
- values = values.concat(stringify(
- obj[key],
- generateArrayPrefix(prefix, key),
- generateArrayPrefix,
- strictNullHandling,
- skipNulls,
- encoder,
- filter,
- sort,
- allowDots,
- serializeDate,
- formatter,
- encodeValuesOnly
- ));
- } else {
- values = values.concat(stringify(
- obj[key],
- prefix + (allowDots ? '.' + key : '[' + key + ']'),
- generateArrayPrefix,
- strictNullHandling,
- skipNulls,
- encoder,
- filter,
- sort,
- allowDots,
- serializeDate,
- formatter,
- encodeValuesOnly
- ));
- }
- }
-
- return values;
-};
-
-module.exports = function (object, opts) {
- var obj = object;
- var options = opts ? utils.assign({}, opts) : {};
-
- if (options.encoder !== null && options.encoder !== undefined && typeof options.encoder !== 'function') {
- throw new TypeError('Encoder has to be a function.');
- }
-
- var delimiter = typeof options.delimiter === 'undefined' ? defaults.delimiter : options.delimiter;
- var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;
- var skipNulls = typeof options.skipNulls === 'boolean' ? options.skipNulls : defaults.skipNulls;
- var encode = typeof options.encode === 'boolean' ? options.encode : defaults.encode;
- var encoder = typeof options.encoder === 'function' ? options.encoder : defaults.encoder;
- var sort = typeof options.sort === 'function' ? options.sort : null;
- var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots;
- var serializeDate = typeof options.serializeDate === 'function' ? options.serializeDate : defaults.serializeDate;
- var encodeValuesOnly = typeof options.encodeValuesOnly === 'boolean' ? options.encodeValuesOnly : defaults.encodeValuesOnly;
- if (typeof options.format === 'undefined') {
- options.format = formats['default'];
- } else if (!Object.prototype.hasOwnProperty.call(formats.formatters, options.format)) {
- throw new TypeError('Unknown format option provided.');
- }
- var formatter = formats.formatters[options.format];
- var objKeys;
- var filter;
-
- if (typeof options.filter === 'function') {
- filter = options.filter;
- obj = filter('', obj);
- } else if (Array.isArray(options.filter)) {
- filter = options.filter;
- objKeys = filter;
- }
-
- var keys = [];
-
- if (typeof obj !== 'object' || obj === null) {
- return '';
- }
-
- var arrayFormat;
- if (options.arrayFormat in arrayPrefixGenerators) {
- arrayFormat = options.arrayFormat;
- } else if ('indices' in options) {
- arrayFormat = options.indices ? 'indices' : 'repeat';
- } else {
- arrayFormat = 'indices';
- }
-
- var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];
-
- if (!objKeys) {
- objKeys = Object.keys(obj);
- }
-
- if (sort) {
- objKeys.sort(sort);
- }
-
- for (var i = 0; i < objKeys.length; ++i) {
- var key = objKeys[i];
-
- if (skipNulls && obj[key] === null) {
- continue;
- }
-
- keys = keys.concat(stringify(
- obj[key],
- key,
- generateArrayPrefix,
- strictNullHandling,
- skipNulls,
- encode ? encoder : null,
- filter,
- sort,
- allowDots,
- serializeDate,
- formatter,
- encodeValuesOnly
- ));
- }
-
- var joined = keys.join(delimiter);
- var prefix = options.addQueryPrefix === true ? '?' : '';
-
- return joined.length > 0 ? prefix + joined : '';
-};
-
-},{"./formats":1,"./utils":5}],5:[function(require,module,exports){
-'use strict';
-
-var has = Object.prototype.hasOwnProperty;
-
-var hexTable = (function () {
- var array = [];
- for (var i = 0; i < 256; ++i) {
- array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());
- }
-
- return array;
-}());
-
-var compactQueue = function compactQueue(queue) {
- var obj;
-
- while (queue.length) {
- var item = queue.pop();
- obj = item.obj[item.prop];
-
- if (Array.isArray(obj)) {
- var compacted = [];
-
- for (var j = 0; j < obj.length; ++j) {
- if (typeof obj[j] !== 'undefined') {
- compacted.push(obj[j]);
- }
- }
-
- item.obj[item.prop] = compacted;
- }
- }
-
- return obj;
-};
-
-var arrayToObject = function arrayToObject(source, options) {
- var obj = options && options.plainObjects ? Object.create(null) : {};
- for (var i = 0; i < source.length; ++i) {
- if (typeof source[i] !== 'undefined') {
- obj[i] = source[i];
- }
- }
-
- return obj;
-};
-
-var merge = function merge(target, source, options) {
- if (!source) {
- return target;
- }
-
- if (typeof source !== 'object') {
- if (Array.isArray(target)) {
- target.push(source);
- } else if (typeof target === 'object') {
- if (options.plainObjects || options.allowPrototypes || !has.call(Object.prototype, source)) {
- target[source] = true;
- }
- } else {
- return [target, source];
- }
-
- return target;
- }
-
- if (typeof target !== 'object') {
- return [target].concat(source);
- }
-
- var mergeTarget = target;
- if (Array.isArray(target) && !Array.isArray(source)) {
- mergeTarget = arrayToObject(target, options);
- }
-
- if (Array.isArray(target) && Array.isArray(source)) {
- source.forEach(function (item, i) {
- if (has.call(target, i)) {
- if (target[i] && typeof target[i] === 'object') {
- target[i] = merge(target[i], item, options);
- } else {
- target.push(item);
- }
- } else {
- target[i] = item;
- }
- });
- return target;
- }
-
- return Object.keys(source).reduce(function (acc, key) {
- var value = source[key];
-
- if (has.call(acc, key)) {
- acc[key] = merge(acc[key], value, options);
- } else {
- acc[key] = value;
- }
- return acc;
- }, mergeTarget);
-};
-
-var assign = function assignSingleSource(target, source) {
- return Object.keys(source).reduce(function (acc, key) {
- acc[key] = source[key];
- return acc;
- }, target);
-};
-
-var decode = function (str) {
- try {
- return decodeURIComponent(str.replace(/\+/g, ' '));
- } catch (e) {
- return str;
- }
-};
-
-var encode = function encode(str) {
- // This code was originally written by Brian White (mscdex) for the io.js core querystring library.
- // It has been adapted here for stricter adherence to RFC 3986
- if (str.length === 0) {
- return str;
- }
-
- var string = typeof str === 'string' ? str : String(str);
-
- var out = '';
- for (var i = 0; i < string.length; ++i) {
- var c = string.charCodeAt(i);
-
- if (
- c === 0x2D // -
- || c === 0x2E // .
- || c === 0x5F // _
- || c === 0x7E // ~
- || (c >= 0x30 && c <= 0x39) // 0-9
- || (c >= 0x41 && c <= 0x5A) // a-z
- || (c >= 0x61 && c <= 0x7A) // A-Z
- ) {
- out += string.charAt(i);
- continue;
- }
-
- if (c < 0x80) {
- out = out + hexTable[c];
- continue;
- }
-
- if (c < 0x800) {
- out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);
- continue;
- }
-
- if (c < 0xD800 || c >= 0xE000) {
- out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);
- continue;
- }
-
- i += 1;
- c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));
- out += hexTable[0xF0 | (c >> 18)]
- + hexTable[0x80 | ((c >> 12) & 0x3F)]
- + hexTable[0x80 | ((c >> 6) & 0x3F)]
- + hexTable[0x80 | (c & 0x3F)];
- }
-
- return out;
-};
-
-var compact = function compact(value) {
- var queue = [{ obj: { o: value }, prop: 'o' }];
- var refs = [];
-
- for (var i = 0; i < queue.length; ++i) {
- var item = queue[i];
- var obj = item.obj[item.prop];
-
- var keys = Object.keys(obj);
- for (var j = 0; j < keys.length; ++j) {
- var key = keys[j];
- var val = obj[key];
- if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {
- queue.push({ obj: obj, prop: key });
- refs.push(val);
- }
- }
- }
-
- return compactQueue(queue);
-};
-
-var isRegExp = function isRegExp(obj) {
- return Object.prototype.toString.call(obj) === '[object RegExp]';
-};
-
-var isBuffer = function isBuffer(obj) {
- if (obj === null || typeof obj === 'undefined') {
- return false;
- }
-
- return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));
-};
-
-module.exports = {
- arrayToObject: arrayToObject,
- assign: assign,
- compact: compact,
- decode: decode,
- encode: encode,
- isBuffer: isBuffer,
- isRegExp: isRegExp,
- merge: merge
-};
-
-},{}]},{},[2])(2)
-});
diff --git a/deps/npm/node_modules/qs/lib/formats.js b/deps/npm/node_modules/qs/lib/formats.js
deleted file mode 100644
index df459975291..00000000000
--- a/deps/npm/node_modules/qs/lib/formats.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-
-var replace = String.prototype.replace;
-var percentTwenties = /%20/g;
-
-module.exports = {
- 'default': 'RFC3986',
- formatters: {
- RFC1738: function (value) {
- return replace.call(value, percentTwenties, '+');
- },
- RFC3986: function (value) {
- return value;
- }
- },
- RFC1738: 'RFC1738',
- RFC3986: 'RFC3986'
-};
diff --git a/deps/npm/node_modules/qs/lib/index.js b/deps/npm/node_modules/qs/lib/index.js
deleted file mode 100644
index 0d6a97dcf09..00000000000
--- a/deps/npm/node_modules/qs/lib/index.js
+++ /dev/null
@@ -1,11 +0,0 @@
-'use strict';
-
-var stringify = require('./stringify');
-var parse = require('./parse');
-var formats = require('./formats');
-
-module.exports = {
- formats: formats,
- parse: parse,
- stringify: stringify
-};
diff --git a/deps/npm/node_modules/qs/lib/parse.js b/deps/npm/node_modules/qs/lib/parse.js
deleted file mode 100644
index 8c9872ecc69..00000000000
--- a/deps/npm/node_modules/qs/lib/parse.js
+++ /dev/null
@@ -1,174 +0,0 @@
-'use strict';
-
-var utils = require('./utils');
-
-var has = Object.prototype.hasOwnProperty;
-
-var defaults = {
- allowDots: false,
- allowPrototypes: false,
- arrayLimit: 20,
- decoder: utils.decode,
- delimiter: '&',
- depth: 5,
- parameterLimit: 1000,
- plainObjects: false,
- strictNullHandling: false
-};
-
-var parseValues = function parseQueryStringValues(str, options) {
- var obj = {};
- var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, '') : str;
- var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;
- var parts = cleanStr.split(options.delimiter, limit);
-
- for (var i = 0; i < parts.length; ++i) {
- var part = parts[i];
-
- var bracketEqualsPos = part.indexOf(']=');
- var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;
-
- var key, val;
- if (pos === -1) {
- key = options.decoder(part, defaults.decoder);
- val = options.strictNullHandling ? null : '';
- } else {
- key = options.decoder(part.slice(0, pos), defaults.decoder);
- val = options.decoder(part.slice(pos + 1), defaults.decoder);
- }
- if (has.call(obj, key)) {
- obj[key] = [].concat(obj[key]).concat(val);
- } else {
- obj[key] = val;
- }
- }
-
- return obj;
-};
-
-var parseObject = function (chain, val, options) {
- var leaf = val;
-
- for (var i = chain.length - 1; i >= 0; --i) {
- var obj;
- var root = chain[i];
-
- if (root === '[]') {
- obj = [];
- obj = obj.concat(leaf);
- } else {
- obj = options.plainObjects ? Object.create(null) : {};
- var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;
- var index = parseInt(cleanRoot, 10);
- if (
- !isNaN(index)
- && root !== cleanRoot
- && String(index) === cleanRoot
- && index >= 0
- && (options.parseArrays && index <= options.arrayLimit)
- ) {
- obj = [];
- obj[index] = leaf;
- } else {
- obj[cleanRoot] = leaf;
- }
- }
-
- leaf = obj;
- }
-
- return leaf;
-};
-
-var parseKeys = function parseQueryStringKeys(givenKey, val, options) {
- if (!givenKey) {
- return;
- }
-
- // Transform dot notation to bracket notation
- var key = options.allowDots ? givenKey.replace(/\.([^.[]+)/g, '[$1]') : givenKey;
-
- // The regex chunks
-
- var brackets = /(\[[^[\]]*])/;
- var child = /(\[[^[\]]*])/g;
-
- // Get the parent
-
- var segment = brackets.exec(key);
- var parent = segment ? key.slice(0, segment.index) : key;
-
- // Stash the parent if it exists
-
- var keys = [];
- if (parent) {
- // If we aren't using plain objects, optionally prefix keys
- // that would overwrite object prototype properties
- if (!options.plainObjects && has.call(Object.prototype, parent)) {
- if (!options.allowPrototypes) {
- return;
- }
- }
-
- keys.push(parent);
- }
-
- // Loop through children appending to the array until we hit depth
-
- var i = 0;
- while ((segment = child.exec(key)) !== null && i < options.depth) {
- i += 1;
- if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {
- if (!options.allowPrototypes) {
- return;
- }
- }
- keys.push(segment[1]);
- }
-
- // If there's a remainder, just add whatever is left
-
- if (segment) {
- keys.push('[' + key.slice(segment.index) + ']');
- }
-
- return parseObject(keys, val, options);
-};
-
-module.exports = function (str, opts) {
- var options = opts ? utils.assign({}, opts) : {};
-
- if (options.decoder !== null && options.decoder !== undefined && typeof options.decoder !== 'function') {
- throw new TypeError('Decoder has to be a function.');
- }
-
- options.ignoreQueryPrefix = options.ignoreQueryPrefix === true;
- options.delimiter = typeof options.delimiter === 'string' || utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter;
- options.depth = typeof options.depth === 'number' ? options.depth : defaults.depth;
- options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : defaults.arrayLimit;
- options.parseArrays = options.parseArrays !== false;
- options.decoder = typeof options.decoder === 'function' ? options.decoder : defaults.decoder;
- options.allowDots = typeof options.allowDots === 'boolean' ? options.allowDots : defaults.allowDots;
- options.plainObjects = typeof options.plainObjects === 'boolean' ? options.plainObjects : defaults.plainObjects;
- options.allowPrototypes = typeof options.allowPrototypes === 'boolean' ? options.allowPrototypes : defaults.allowPrototypes;
- options.parameterLimit = typeof options.parameterLimit === 'number' ? options.parameterLimit : defaults.parameterLimit;
- options.strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;
-
- if (str === '' || str === null || typeof str === 'undefined') {
- return options.plainObjects ? Object.create(null) : {};
- }
-
- var tempObj = typeof str === 'string' ? parseValues(str, options) : str;
- var obj = options.plainObjects ? Object.create(null) : {};
-
- // Iterate over the keys and setup the new object
-
- var keys = Object.keys(tempObj);
- for (var i = 0; i < keys.length; ++i) {
- var key = keys[i];
- var newObj = parseKeys(key, tempObj[key], options);
- obj = utils.merge(obj, newObj, options);
- }
-
- return utils.compact(obj);
-};
diff --git a/deps/npm/node_modules/qs/lib/stringify.js b/deps/npm/node_modules/qs/lib/stringify.js
deleted file mode 100644
index ab915ac4638..00000000000
--- a/deps/npm/node_modules/qs/lib/stringify.js
+++ /dev/null
@@ -1,210 +0,0 @@
-'use strict';
-
-var utils = require('./utils');
-var formats = require('./formats');
-
-var arrayPrefixGenerators = {
- brackets: function brackets(prefix) { // eslint-disable-line func-name-matching
- return prefix + '[]';
- },
- indices: function indices(prefix, key) { // eslint-disable-line func-name-matching
- return prefix + '[' + key + ']';
- },
- repeat: function repeat(prefix) { // eslint-disable-line func-name-matching
- return prefix;
- }
-};
-
-var toISO = Date.prototype.toISOString;
-
-var defaults = {
- delimiter: '&',
- encode: true,
- encoder: utils.encode,
- encodeValuesOnly: false,
- serializeDate: function serializeDate(date) { // eslint-disable-line func-name-matching
- return toISO.call(date);
- },
- skipNulls: false,
- strictNullHandling: false
-};
-
-var stringify = function stringify( // eslint-disable-line func-name-matching
- object,
- prefix,
- generateArrayPrefix,
- strictNullHandling,
- skipNulls,
- encoder,
- filter,
- sort,
- allowDots,
- serializeDate,
- formatter,
- encodeValuesOnly
-) {
- var obj = object;
- if (typeof filter === 'function') {
- obj = filter(prefix, obj);
- } else if (obj instanceof Date) {
- obj = serializeDate(obj);
- } else if (obj === null) {
- if (strictNullHandling) {
- return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder) : prefix;
- }
-
- obj = '';
- }
-
- if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || utils.isBuffer(obj)) {
- if (encoder) {
- var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder);
- return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder))];
- }
- return [formatter(prefix) + '=' + formatter(String(obj))];
- }
-
- var values = [];
-
- if (typeof obj === 'undefined') {
- return values;
- }
-
- var objKeys;
- if (Array.isArray(filter)) {
- objKeys = filter;
- } else {
- var keys = Object.keys(obj);
- objKeys = sort ? keys.sort(sort) : keys;
- }
-
- for (var i = 0; i < objKeys.length; ++i) {
- var key = objKeys[i];
-
- if (skipNulls && obj[key] === null) {
- continue;
- }
-
- if (Array.isArray(obj)) {
- values = values.concat(stringify(
- obj[key],
- generateArrayPrefix(prefix, key),
- generateArrayPrefix,
- strictNullHandling,
- skipNulls,
- encoder,
- filter,
- sort,
- allowDots,
- serializeDate,
- formatter,
- encodeValuesOnly
- ));
- } else {
- values = values.concat(stringify(
- obj[key],
- prefix + (allowDots ? '.' + key : '[' + key + ']'),
- generateArrayPrefix,
- strictNullHandling,
- skipNulls,
- encoder,
- filter,
- sort,
- allowDots,
- serializeDate,
- formatter,
- encodeValuesOnly
- ));
- }
- }
-
- return values;
-};
-
-module.exports = function (object, opts) {
- var obj = object;
- var options = opts ? utils.assign({}, opts) : {};
-
- if (options.encoder !== null && options.encoder !== undefined && typeof options.encoder !== 'function') {
- throw new TypeError('Encoder has to be a function.');
- }
-
- var delimiter = typeof options.delimiter === 'undefined' ? defaults.delimiter : options.delimiter;
- var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;
- var skipNulls = typeof options.skipNulls === 'boolean' ? options.skipNulls : defaults.skipNulls;
- var encode = typeof options.encode === 'boolean' ? options.encode : defaults.encode;
- var encoder = typeof options.encoder === 'function' ? options.encoder : defaults.encoder;
- var sort = typeof options.sort === 'function' ? options.sort : null;
- var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots;
- var serializeDate = typeof options.serializeDate === 'function' ? options.serializeDate : defaults.serializeDate;
- var encodeValuesOnly = typeof options.encodeValuesOnly === 'boolean' ? options.encodeValuesOnly : defaults.encodeValuesOnly;
- if (typeof options.format === 'undefined') {
- options.format = formats['default'];
- } else if (!Object.prototype.hasOwnProperty.call(formats.formatters, options.format)) {
- throw new TypeError('Unknown format option provided.');
- }
- var formatter = formats.formatters[options.format];
- var objKeys;
- var filter;
-
- if (typeof options.filter === 'function') {
- filter = options.filter;
- obj = filter('', obj);
- } else if (Array.isArray(options.filter)) {
- filter = options.filter;
- objKeys = filter;
- }
-
- var keys = [];
-
- if (typeof obj !== 'object' || obj === null) {
- return '';
- }
-
- var arrayFormat;
- if (options.arrayFormat in arrayPrefixGenerators) {
- arrayFormat = options.arrayFormat;
- } else if ('indices' in options) {
- arrayFormat = options.indices ? 'indices' : 'repeat';
- } else {
- arrayFormat = 'indices';
- }
-
- var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];
-
- if (!objKeys) {
- objKeys = Object.keys(obj);
- }
-
- if (sort) {
- objKeys.sort(sort);
- }
-
- for (var i = 0; i < objKeys.length; ++i) {
- var key = objKeys[i];
-
- if (skipNulls && obj[key] === null) {
- continue;
- }
-
- keys = keys.concat(stringify(
- obj[key],
- key,
- generateArrayPrefix,
- strictNullHandling,
- skipNulls,
- encode ? encoder : null,
- filter,
- sort,
- allowDots,
- serializeDate,
- formatter,
- encodeValuesOnly
- ));
- }
-
- var joined = keys.join(delimiter);
- var prefix = options.addQueryPrefix === true ? '?' : '';
-
- return joined.length > 0 ? prefix + joined : '';
-};
diff --git a/deps/npm/node_modules/qs/lib/utils.js b/deps/npm/node_modules/qs/lib/utils.js
deleted file mode 100644
index 8775a3270c7..00000000000
--- a/deps/npm/node_modules/qs/lib/utils.js
+++ /dev/null
@@ -1,213 +0,0 @@
-'use strict';
-
-var has = Object.prototype.hasOwnProperty;
-
-var hexTable = (function () {
- var array = [];
- for (var i = 0; i < 256; ++i) {
- array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());
- }
-
- return array;
-}());
-
-var compactQueue = function compactQueue(queue) {
- var obj;
-
- while (queue.length) {
- var item = queue.pop();
- obj = item.obj[item.prop];
-
- if (Array.isArray(obj)) {
- var compacted = [];
-
- for (var j = 0; j < obj.length; ++j) {
- if (typeof obj[j] !== 'undefined') {
- compacted.push(obj[j]);
- }
- }
-
- item.obj[item.prop] = compacted;
- }
- }
-
- return obj;
-};
-
-var arrayToObject = function arrayToObject(source, options) {
- var obj = options && options.plainObjects ? Object.create(null) : {};
- for (var i = 0; i < source.length; ++i) {
- if (typeof source[i] !== 'undefined') {
- obj[i] = source[i];
- }
- }
-
- return obj;
-};
-
-var merge = function merge(target, source, options) {
- if (!source) {
- return target;
- }
-
- if (typeof source !== 'object') {
- if (Array.isArray(target)) {
- target.push(source);
- } else if (typeof target === 'object') {
- if (options.plainObjects || options.allowPrototypes || !has.call(Object.prototype, source)) {
- target[source] = true;
- }
- } else {
- return [target, source];
- }
-
- return target;
- }
-
- if (typeof target !== 'object') {
- return [target].concat(source);
- }
-
- var mergeTarget = target;
- if (Array.isArray(target) && !Array.isArray(source)) {
- mergeTarget = arrayToObject(target, options);
- }
-
- if (Array.isArray(target) && Array.isArray(source)) {
- source.forEach(function (item, i) {
- if (has.call(target, i)) {
- if (target[i] && typeof target[i] === 'object') {
- target[i] = merge(target[i], item, options);
- } else {
- target.push(item);
- }
- } else {
- target[i] = item;
- }
- });
- return target;
- }
-
- return Object.keys(source).reduce(function (acc, key) {
- var value = source[key];
-
- if (has.call(acc, key)) {
- acc[key] = merge(acc[key], value, options);
- } else {
- acc[key] = value;
- }
- return acc;
- }, mergeTarget);
-};
-
-var assign = function assignSingleSource(target, source) {
- return Object.keys(source).reduce(function (acc, key) {
- acc[key] = source[key];
- return acc;
- }, target);
-};
-
-var decode = function (str) {
- try {
- return decodeURIComponent(str.replace(/\+/g, ' '));
- } catch (e) {
- return str;
- }
-};
-
-var encode = function encode(str) {
- // This code was originally written by Brian White (mscdex) for the io.js core querystring library.
- // It has been adapted here for stricter adherence to RFC 3986
- if (str.length === 0) {
- return str;
- }
-
- var string = typeof str === 'string' ? str : String(str);
-
- var out = '';
- for (var i = 0; i < string.length; ++i) {
- var c = string.charCodeAt(i);
-
- if (
- c === 0x2D // -
- || c === 0x2E // .
- || c === 0x5F // _
- || c === 0x7E // ~
- || (c >= 0x30 && c <= 0x39) // 0-9
- || (c >= 0x41 && c <= 0x5A) // a-z
- || (c >= 0x61 && c <= 0x7A) // A-Z
- ) {
- out += string.charAt(i);
- continue;
- }
-
- if (c < 0x80) {
- out = out + hexTable[c];
- continue;
- }
-
- if (c < 0x800) {
- out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);
- continue;
- }
-
- if (c < 0xD800 || c >= 0xE000) {
- out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);
- continue;
- }
-
- i += 1;
- c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));
- out += hexTable[0xF0 | (c >> 18)]
- + hexTable[0x80 | ((c >> 12) & 0x3F)]
- + hexTable[0x80 | ((c >> 6) & 0x3F)]
- + hexTable[0x80 | (c & 0x3F)];
- }
-
- return out;
-};
-
-var compact = function compact(value) {
- var queue = [{ obj: { o: value }, prop: 'o' }];
- var refs = [];
-
- for (var i = 0; i < queue.length; ++i) {
- var item = queue[i];
- var obj = item.obj[item.prop];
-
- var keys = Object.keys(obj);
- for (var j = 0; j < keys.length; ++j) {
- var key = keys[j];
- var val = obj[key];
- if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {
- queue.push({ obj: obj, prop: key });
- refs.push(val);
- }
- }
- }
-
- return compactQueue(queue);
-};
-
-var isRegExp = function isRegExp(obj) {
- return Object.prototype.toString.call(obj) === '[object RegExp]';
-};
-
-var isBuffer = function isBuffer(obj) {
- if (obj === null || typeof obj === 'undefined') {
- return false;
- }
-
- return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));
-};
-
-module.exports = {
- arrayToObject: arrayToObject,
- assign: assign,
- compact: compact,
- decode: decode,
- encode: encode,
- isBuffer: isBuffer,
- isRegExp: isRegExp,
- merge: merge
-};
diff --git a/deps/npm/node_modules/qs/package.json b/deps/npm/node_modules/qs/package.json
deleted file mode 100644
index 2c6549003c4..00000000000
--- a/deps/npm/node_modules/qs/package.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
- "name": "qs",
- "description": "A querystring parser that supports nesting and arrays, with a depth limit",
- "homepage": "https://github.com/ljharb/qs",
- "version": "6.5.2",
- "repository": {
- "type": "git",
- "url": "https://github.com/ljharb/qs.git"
- },
- "main": "lib/index.js",
- "contributors": [
- {
- "name": "Jordan Harband",
- "email": "ljharb@gmail.com",
- "url": "http://ljharb.codes"
- }
- ],
- "keywords": [
- "querystring",
- "qs"
- ],
- "engines": {
- "node": ">=0.6"
- },
- "dependencies": {},
- "devDependencies": {
- "@ljharb/eslint-config": "^12.2.1",
- "browserify": "^16.2.0",
- "covert": "^1.1.0",
- "editorconfig-tools": "^0.1.1",
- "eslint": "^4.19.1",
- "evalmd": "^0.0.17",
- "iconv-lite": "^0.4.21",
- "mkdirp": "^0.5.1",
- "qs-iconv": "^1.0.4",
- "safe-publish-latest": "^1.1.1",
- "safer-buffer": "^2.1.2",
- "tape": "^4.9.0"
- },
- "scripts": {
- "prepublish": "safe-publish-latest && npm run dist",
- "pretest": "npm run --silent readme && npm run --silent lint",
- "test": "npm run --silent coverage",
- "tests-only": "node test",
- "readme": "evalmd README.md",
- "prelint": "editorconfig-tools check * lib/* test/*",
- "lint": "eslint lib/*.js test/*.js",
- "coverage": "covert test",
- "dist": "mkdirp dist && browserify --standalone Qs lib/index.js > dist/qs.js"
- },
- "license": "BSD-3-Clause"
-}
diff --git a/deps/npm/node_modules/qs/test/index.js b/deps/npm/node_modules/qs/test/index.js
deleted file mode 100644
index 5e6bc8fbd9b..00000000000
--- a/deps/npm/node_modules/qs/test/index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-
-require('./parse');
-
-require('./stringify');
-
-require('./utils');
diff --git a/deps/npm/node_modules/qs/test/parse.js b/deps/npm/node_modules/qs/test/parse.js
deleted file mode 100644
index 0f8fe4578a0..00000000000
--- a/deps/npm/node_modules/qs/test/parse.js
+++ /dev/null
@@ -1,574 +0,0 @@
-'use strict';
-
-var test = require('tape');
-var qs = require('../');
-var utils = require('../lib/utils');
-var iconv = require('iconv-lite');
-var SaferBuffer = require('safer-buffer').Buffer;
-
-test('parse()', function (t) {
- t.test('parses a simple string', function (st) {
- st.deepEqual(qs.parse('0=foo'), { 0: 'foo' });
- st.deepEqual(qs.parse('foo=c++'), { foo: 'c ' });
- st.deepEqual(qs.parse('a[>=]=23'), { a: { '>=': '23' } });
- st.deepEqual(qs.parse('a[<=>]==23'), { a: { '<=>': '=23' } });
- st.deepEqual(qs.parse('a[==]=23'), { a: { '==': '23' } });
- st.deepEqual(qs.parse('foo', { strictNullHandling: true }), { foo: null });
- st.deepEqual(qs.parse('foo'), { foo: '' });
- st.deepEqual(qs.parse('foo='), { foo: '' });
- st.deepEqual(qs.parse('foo=bar'), { foo: 'bar' });
- st.deepEqual(qs.parse(' foo = bar = baz '), { ' foo ': ' bar = baz ' });
- st.deepEqual(qs.parse('foo=bar=baz'), { foo: 'bar=baz' });
- st.deepEqual(qs.parse('foo=bar&bar=baz'), { foo: 'bar', bar: 'baz' });
- st.deepEqual(qs.parse('foo2=bar2&baz2='), { foo2: 'bar2', baz2: '' });
- st.deepEqual(qs.parse('foo=bar&baz', { strictNullHandling: true }), { foo: 'bar', baz: null });
- st.deepEqual(qs.parse('foo=bar&baz'), { foo: 'bar', baz: '' });
- st.deepEqual(qs.parse('cht=p3&chd=t:60,40&chs=250x100&chl=Hello|World'), {
- cht: 'p3',
- chd: 't:60,40',
- chs: '250x100',
- chl: 'Hello|World'
- });
- st.end();
- });
-
- t.test('allows enabling dot notation', function (st) {
- st.deepEqual(qs.parse('a.b=c'), { 'a.b': 'c' });
- st.deepEqual(qs.parse('a.b=c', { allowDots: true }), { a: { b: 'c' } });
- st.end();
- });
-
- t.deepEqual(qs.parse('a[b]=c'), { a: { b: 'c' } }, 'parses a single nested string');
- t.deepEqual(qs.parse('a[b][c]=d'), { a: { b: { c: 'd' } } }, 'parses a double nested string');
- t.deepEqual(
- qs.parse('a[b][c][d][e][f][g][h]=i'),
- { a: { b: { c: { d: { e: { f: { '[g][h]': 'i' } } } } } } },
- 'defaults to a depth of 5'
- );
-
- t.test('only parses one level when depth = 1', function (st) {
- st.deepEqual(qs.parse('a[b][c]=d', { depth: 1 }), { a: { b: { '[c]': 'd' } } });
- st.deepEqual(qs.parse('a[b][c][d]=e', { depth: 1 }), { a: { b: { '[c][d]': 'e' } } });
- st.end();
- });
-
- t.deepEqual(qs.parse('a=b&a=c'), { a: ['b', 'c'] }, 'parses a simple array');
-
- t.test('parses an explicit array', function (st) {
- st.deepEqual(qs.parse('a[]=b'), { a: ['b'] });
- st.deepEqual(qs.parse('a[]=b&a[]=c'), { a: ['b', 'c'] });
- st.deepEqual(qs.parse('a[]=b&a[]=c&a[]=d'), { a: ['b', 'c', 'd'] });
- st.end();
- });
-
- t.test('parses a mix of simple and explicit arrays', function (st) {
- st.deepEqual(qs.parse('a=b&a[]=c'), { a: ['b', 'c'] });
- st.deepEqual(qs.parse('a[]=b&a=c'), { a: ['b', 'c'] });
- st.deepEqual(qs.parse('a[0]=b&a=c'), { a: ['b', 'c'] });
- st.deepEqual(qs.parse('a=b&a[0]=c'), { a: ['b', 'c'] });
-
- st.deepEqual(qs.parse('a[1]=b&a=c', { arrayLimit: 20 }), { a: ['b', 'c'] });
- st.deepEqual(qs.parse('a[]=b&a=c', { arrayLimit: 0 }), { a: ['b', 'c'] });
- st.deepEqual(qs.parse('a[]=b&a=c'), { a: ['b', 'c'] });
-
- st.deepEqual(qs.parse('a=b&a[1]=c', { arrayLimit: 20 }), { a: ['b', 'c'] });
- st.deepEqual(qs.parse('a=b&a[]=c', { arrayLimit: 0 }), { a: ['b', 'c'] });
- st.deepEqual(qs.parse('a=b&a[]=c'), { a: ['b', 'c'] });
-
- st.end();
- });
-
- t.test('parses a nested array', function (st) {
- st.deepEqual(qs.parse('a[b][]=c&a[b][]=d'), { a: { b: ['c', 'd'] } });
- st.deepEqual(qs.parse('a[>=]=25'), { a: { '>=': '25' } });
- st.end();
- });
-
- t.test('allows to specify array indices', function (st) {
- st.deepEqual(qs.parse('a[1]=c&a[0]=b&a[2]=d'), { a: ['b', 'c', 'd'] });
- st.deepEqual(qs.parse('a[1]=c&a[0]=b'), { a: ['b', 'c'] });
- st.deepEqual(qs.parse('a[1]=c', { arrayLimit: 20 }), { a: ['c'] });
- st.deepEqual(qs.parse('a[1]=c', { arrayLimit: 0 }), { a: { 1: 'c' } });
- st.deepEqual(qs.parse('a[1]=c'), { a: ['c'] });
- st.end();
- });
-
- t.test('limits specific array indices to arrayLimit', function (st) {
- st.deepEqual(qs.parse('a[20]=a', { arrayLimit: 20 }), { a: ['a'] });
- st.deepEqual(qs.parse('a[21]=a', { arrayLimit: 20 }), { a: { 21: 'a' } });
- st.end();
- });
-
- t.deepEqual(qs.parse('a[12b]=c'), { a: { '12b': 'c' } }, 'supports keys that begin with a number');
-
- t.test('supports encoded = signs', function (st) {
- st.deepEqual(qs.parse('he%3Dllo=th%3Dere'), { 'he=llo': 'th=ere' });
- st.end();
- });
-
- t.test('is ok with url encoded strings', function (st) {
- st.deepEqual(qs.parse('a[b%20c]=d'), { a: { 'b c': 'd' } });
- st.deepEqual(qs.parse('a[b]=c%20d'), { a: { b: 'c d' } });
- st.end();
- });
-
- t.test('allows brackets in the value', function (st) {
- st.deepEqual(qs.parse('pets=["tobi"]'), { pets: '["tobi"]' });
- st.deepEqual(qs.parse('operators=[">=", "<="]'), { operators: '[">=", "<="]' });
- st.end();
- });
-
- t.test('allows empty values', function (st) {
- st.deepEqual(qs.parse(''), {});
- st.deepEqual(qs.parse(null), {});
- st.deepEqual(qs.parse(undefined), {});
- st.end();
- });
-
- t.test('transforms arrays to objects', function (st) {
- st.deepEqual(qs.parse('foo[0]=bar&foo[bad]=baz'), { foo: { 0: 'bar', bad: 'baz' } });
- st.deepEqual(qs.parse('foo[bad]=baz&foo[0]=bar'), { foo: { bad: 'baz', 0: 'bar' } });
- st.deepEqual(qs.parse('foo[bad]=baz&foo[]=bar'), { foo: { bad: 'baz', 0: 'bar' } });
- st.deepEqual(qs.parse('foo[]=bar&foo[bad]=baz'), { foo: { 0: 'bar', bad: 'baz' } });
- st.deepEqual(qs.parse('foo[bad]=baz&foo[]=bar&foo[]=foo'), { foo: { bad: 'baz', 0: 'bar', 1: 'foo' } });
- st.deepEqual(qs.parse('foo[0][a]=a&foo[0][b]=b&foo[1][a]=aa&foo[1][b]=bb'), { foo: [{ a: 'a', b: 'b' }, { a: 'aa', b: 'bb' }] });
-
- st.deepEqual(qs.parse('a[]=b&a[t]=u&a[hasOwnProperty]=c', { allowPrototypes: false }), { a: { 0: 'b', t: 'u' } });
- st.deepEqual(qs.parse('a[]=b&a[t]=u&a[hasOwnProperty]=c', { allowPrototypes: true }), { a: { 0: 'b', t: 'u', hasOwnProperty: 'c' } });
- st.deepEqual(qs.parse('a[]=b&a[hasOwnProperty]=c&a[x]=y', { allowPrototypes: false }), { a: { 0: 'b', x: 'y' } });
- st.deepEqual(qs.parse('a[]=b&a[hasOwnProperty]=c&a[x]=y', { allowPrototypes: true }), { a: { 0: 'b', hasOwnProperty: 'c', x: 'y' } });
- st.end();
- });
-
- t.test('transforms arrays to objects (dot notation)', function (st) {
- st.deepEqual(qs.parse('foo[0].baz=bar&fool.bad=baz', { allowDots: true }), { foo: [{ baz: 'bar' }], fool: { bad: 'baz' } });
- st.deepEqual(qs.parse('foo[0].baz=bar&fool.bad.boo=baz', { allowDots: true }), { foo: [{ baz: 'bar' }], fool: { bad: { boo: 'baz' } } });
- st.deepEqual(qs.parse('foo[0][0].baz=bar&fool.bad=baz', { allowDots: true }), { foo: [[{ baz: 'bar' }]], fool: { bad: 'baz' } });
- st.deepEqual(qs.parse('foo[0].baz[0]=15&foo[0].bar=2', { allowDots: true }), { foo: [{ baz: ['15'], bar: '2' }] });
- st.deepEqual(qs.parse('foo[0].baz[0]=15&foo[0].baz[1]=16&foo[0].bar=2', { allowDots: true }), { foo: [{ baz: ['15', '16'], bar: '2' }] });
- st.deepEqual(qs.parse('foo.bad=baz&foo[0]=bar', { allowDots: true }), { foo: { bad: 'baz', 0: 'bar' } });
- st.deepEqual(qs.parse('foo.bad=baz&foo[]=bar', { allowDots: true }), { foo: { bad: 'baz', 0: 'bar' } });
- st.deepEqual(qs.parse('foo[]=bar&foo.bad=baz', { allowDots: true }), { foo: { 0: 'bar', bad: 'baz' } });
- st.deepEqual(qs.parse('foo.bad=baz&foo[]=bar&foo[]=foo', { allowDots: true }), { foo: { bad: 'baz', 0: 'bar', 1: 'foo' } });
- st.deepEqual(qs.parse('foo[0].a=a&foo[0].b=b&foo[1].a=aa&foo[1].b=bb', { allowDots: true }), { foo: [{ a: 'a', b: 'b' }, { a: 'aa', b: 'bb' }] });
- st.end();
- });
-
- t.test('correctly prunes undefined values when converting an array to an object', function (st) {
- st.deepEqual(qs.parse('a[2]=b&a[99999999]=c'), { a: { 2: 'b', 99999999: 'c' } });
- st.end();
- });
-
- t.test('supports malformed uri characters', function (st) {
- st.deepEqual(qs.parse('{%:%}', { strictNullHandling: true }), { '{%:%}': null });
- st.deepEqual(qs.parse('{%:%}='), { '{%:%}': '' });
- st.deepEqual(qs.parse('foo=%:%}'), { foo: '%:%}' });
- st.end();
- });
-
- t.test('doesn\'t produce empty keys', function (st) {
- st.deepEqual(qs.parse('_r=1&'), { _r: '1' });
- st.end();
- });
-
- t.test('cannot access Object prototype', function (st) {
- qs.parse('constructor[prototype][bad]=bad');
- qs.parse('bad[constructor][prototype][bad]=bad');
- st.equal(typeof Object.prototype.bad, 'undefined');
- st.end();
- });
-
- t.test('parses arrays of objects', function (st) {
- st.deepEqual(qs.parse('a[][b]=c'), { a: [{ b: 'c' }] });
- st.deepEqual(qs.parse('a[0][b]=c'), { a: [{ b: 'c' }] });
- st.end();
- });
-
- t.test('allows for empty strings in arrays', function (st) {
- st.deepEqual(qs.parse('a[]=b&a[]=&a[]=c'), { a: ['b', '', 'c'] });
-
- st.deepEqual(
- qs.parse('a[0]=b&a[1]&a[2]=c&a[19]=', { strictNullHandling: true, arrayLimit: 20 }),
- { a: ['b', null, 'c', ''] },
- 'with arrayLimit 20 + array indices: null then empty string works'
- );
- st.deepEqual(
- qs.parse('a[]=b&a[]&a[]=c&a[]=', { strictNullHandling: true, arrayLimit: 0 }),
- { a: ['b', null, 'c', ''] },
- 'with arrayLimit 0 + array brackets: null then empty string works'
- );
-
- st.deepEqual(
- qs.parse('a[0]=b&a[1]=&a[2]=c&a[19]', { strictNullHandling: true, arrayLimit: 20 }),
- { a: ['b', '', 'c', null] },
- 'with arrayLimit 20 + array indices: empty string then null works'
- );
- st.deepEqual(
- qs.parse('a[]=b&a[]=&a[]=c&a[]', { strictNullHandling: true, arrayLimit: 0 }),
- { a: ['b', '', 'c', null] },
- 'with arrayLimit 0 + array brackets: empty string then null works'
- );
-
- st.deepEqual(
- qs.parse('a[]=&a[]=b&a[]=c'),
- { a: ['', 'b', 'c'] },
- 'array brackets: empty strings work'
- );
- st.end();
- });
-
- t.test('compacts sparse arrays', function (st) {
- st.deepEqual(qs.parse('a[10]=1&a[2]=2', { arrayLimit: 20 }), { a: ['2', '1'] });
- st.deepEqual(qs.parse('a[1][b][2][c]=1', { arrayLimit: 20 }), { a: [{ b: [{ c: '1' }] }] });
- st.deepEqual(qs.parse('a[1][2][3][c]=1', { arrayLimit: 20 }), { a: [[[{ c: '1' }]]] });
- st.deepEqual(qs.parse('a[1][2][3][c][1]=1', { arrayLimit: 20 }), { a: [[[{ c: ['1'] }]]] });
- st.end();
- });
-
- t.test('parses semi-parsed strings', function (st) {
- st.deepEqual(qs.parse({ 'a[b]': 'c' }), { a: { b: 'c' } });
- st.deepEqual(qs.parse({ 'a[b]': 'c', 'a[d]': 'e' }), { a: { b: 'c', d: 'e' } });
- st.end();
- });
-
- t.test('parses buffers correctly', function (st) {
- var b = SaferBuffer.from('test');
- st.deepEqual(qs.parse({ a: b }), { a: b });
- st.end();
- });
-
- t.test('continues parsing when no parent is found', function (st) {
- st.deepEqual(qs.parse('[]=&a=b'), { 0: '', a: 'b' });
- st.deepEqual(qs.parse('[]&a=b', { strictNullHandling: true }), { 0: null, a: 'b' });
- st.deepEqual(qs.parse('[foo]=bar'), { foo: 'bar' });
- st.end();
- });
-
- t.test('does not error when parsing a very long array', function (st) {
- var str = 'a[]=a';
- while (Buffer.byteLength(str) < 128 * 1024) {
- str = str + '&' + str;
- }
-
- st.doesNotThrow(function () {
- qs.parse(str);
- });
-
- st.end();
- });
-
- t.test('should not throw when a native prototype has an enumerable property', { parallel: false }, function (st) {
- Object.prototype.crash = '';
- Array.prototype.crash = '';
- st.doesNotThrow(qs.parse.bind(null, 'a=b'));
- st.deepEqual(qs.parse('a=b'), { a: 'b' });
- st.doesNotThrow(qs.parse.bind(null, 'a[][b]=c'));
- st.deepEqual(qs.parse('a[][b]=c'), { a: [{ b: 'c' }] });
- delete Object.prototype.crash;
- delete Array.prototype.crash;
- st.end();
- });
-
- t.test('parses a string with an alternative string delimiter', function (st) {
- st.deepEqual(qs.parse('a=b;c=d', { delimiter: ';' }), { a: 'b', c: 'd' });
- st.end();
- });
-
- t.test('parses a string with an alternative RegExp delimiter', function (st) {
- st.deepEqual(qs.parse('a=b; c=d', { delimiter: /[;,] */ }), { a: 'b', c: 'd' });
- st.end();
- });
-
- t.test('does not use non-splittable objects as delimiters', function (st) {
- st.deepEqual(qs.parse('a=b&c=d', { delimiter: true }), { a: 'b', c: 'd' });
- st.end();
- });
-
- t.test('allows overriding parameter limit', function (st) {
- st.deepEqual(qs.parse('a=b&c=d', { parameterLimit: 1 }), { a: 'b' });
- st.end();
- });
-
- t.test('allows setting the parameter limit to Infinity', function (st) {
- st.deepEqual(qs.parse('a=b&c=d', { parameterLimit: Infinity }), { a: 'b', c: 'd' });
- st.end();
- });
-
- t.test('allows overriding array limit', function (st) {
- st.deepEqual(qs.parse('a[0]=b', { arrayLimit: -1 }), { a: { 0: 'b' } });
- st.deepEqual(qs.parse('a[-1]=b', { arrayLimit: -1 }), { a: { '-1': 'b' } });
- st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayLimit: 0 }), { a: { 0: 'b', 1: 'c' } });
- st.end();
- });
-
- t.test('allows disabling array parsing', function (st) {
- st.deepEqual(qs.parse('a[0]=b&a[1]=c', { parseArrays: false }), { a: { 0: 'b', 1: 'c' } });
- st.end();
- });
-
- t.test('allows for query string prefix', function (st) {
- st.deepEqual(qs.parse('?foo=bar', { ignoreQueryPrefix: true }), { foo: 'bar' });
- st.deepEqual(qs.parse('foo=bar', { ignoreQueryPrefix: true }), { foo: 'bar' });
- st.deepEqual(qs.parse('?foo=bar', { ignoreQueryPrefix: false }), { '?foo': 'bar' });
- st.end();
- });
-
- t.test('parses an object', function (st) {
- var input = {
- 'user[name]': { 'pop[bob]': 3 },
- 'user[email]': null
- };
-
- var expected = {
- user: {
- name: { 'pop[bob]': 3 },
- email: null
- }
- };
-
- var result = qs.parse(input);
-
- st.deepEqual(result, expected);
- st.end();
- });
-
- t.test('parses an object in dot notation', function (st) {
- var input = {
- 'user.name': { 'pop[bob]': 3 },
- 'user.email.': null
- };
-
- var expected = {
- user: {
- name: { 'pop[bob]': 3 },
- email: null
- }
- };
-
- var result = qs.parse(input, { allowDots: true });
-
- st.deepEqual(result, expected);
- st.end();
- });
-
- t.test('parses an object and not child values', function (st) {
- var input = {
- 'user[name]': { 'pop[bob]': { test: 3 } },
- 'user[email]': null
- };
-
- var expected = {
- user: {
- name: { 'pop[bob]': { test: 3 } },
- email: null
- }
- };
-
- var result = qs.parse(input);
-
- st.deepEqual(result, expected);
- st.end();
- });
-
- t.test('does not blow up when Buffer global is missing', function (st) {
- var tempBuffer = global.Buffer;
- delete global.Buffer;
- var result = qs.parse('a=b&c=d');
- global.Buffer = tempBuffer;
- st.deepEqual(result, { a: 'b', c: 'd' });
- st.end();
- });
-
- t.test('does not crash when parsing circular references', function (st) {
- var a = {};
- a.b = a;
-
- var parsed;
-
- st.doesNotThrow(function () {
- parsed = qs.parse({ 'foo[bar]': 'baz', 'foo[baz]': a });
- });
-
- st.equal('foo' in parsed, true, 'parsed has "foo" property');
- st.equal('bar' in parsed.foo, true);
- st.equal('baz' in parsed.foo, true);
- st.equal(parsed.foo.bar, 'baz');
- st.deepEqual(parsed.foo.baz, a);
- st.end();
- });
-
- t.test('does not crash when parsing deep objects', function (st) {
- var parsed;
- var str = 'foo';
-
- for (var i = 0; i < 5000; i++) {
- str += '[p]';
- }
-
- str += '=bar';
-
- st.doesNotThrow(function () {
- parsed = qs.parse(str, { depth: 5000 });
- });
-
- st.equal('foo' in parsed, true, 'parsed has "foo" property');
-
- var depth = 0;
- var ref = parsed.foo;
- while ((ref = ref.p)) {
- depth += 1;
- }
-
- st.equal(depth, 5000, 'parsed is 5000 properties deep');
-
- st.end();
- });
-
- t.test('parses null objects correctly', { skip: !Object.create }, function (st) {
- var a = Object.create(null);
- a.b = 'c';
-
- st.deepEqual(qs.parse(a), { b: 'c' });
- var result = qs.parse({ a: a });
- st.equal('a' in result, true, 'result has "a" property');
- st.deepEqual(result.a, a);
- st.end();
- });
-
- t.test('parses dates correctly', function (st) {
- var now = new Date();
- st.deepEqual(qs.parse({ a: now }), { a: now });
- st.end();
- });
-
- t.test('parses regular expressions correctly', function (st) {
- var re = /^test$/;
- st.deepEqual(qs.parse({ a: re }), { a: re });
- st.end();
- });
-
- t.test('does not allow overwriting prototype properties', function (st) {
- st.deepEqual(qs.parse('a[hasOwnProperty]=b', { allowPrototypes: false }), {});
- st.deepEqual(qs.parse('hasOwnProperty=b', { allowPrototypes: false }), {});
-
- st.deepEqual(
- qs.parse('toString', { allowPrototypes: false }),
- {},
- 'bare "toString" results in {}'
- );
-
- st.end();
- });
-
- t.test('can allow overwriting prototype properties', function (st) {
- st.deepEqual(qs.parse('a[hasOwnProperty]=b', { allowPrototypes: true }), { a: { hasOwnProperty: 'b' } });
- st.deepEqual(qs.parse('hasOwnProperty=b', { allowPrototypes: true }), { hasOwnProperty: 'b' });
-
- st.deepEqual(
- qs.parse('toString', { allowPrototypes: true }),
- { toString: '' },
- 'bare "toString" results in { toString: "" }'
- );
-
- st.end();
- });
-
- t.test('params starting with a closing bracket', function (st) {
- st.deepEqual(qs.parse(']=toString'), { ']': 'toString' });
- st.deepEqual(qs.parse(']]=toString'), { ']]': 'toString' });
- st.deepEqual(qs.parse(']hello]=toString'), { ']hello]': 'toString' });
- st.end();
- });
-
- t.test('params starting with a starting bracket', function (st) {
- st.deepEqual(qs.parse('[=toString'), { '[': 'toString' });
- st.deepEqual(qs.parse('[[=toString'), { '[[': 'toString' });
- st.deepEqual(qs.parse('[hello[=toString'), { '[hello[': 'toString' });
- st.end();
- });
-
- t.test('add keys to objects', function (st) {
- st.deepEqual(
- qs.parse('a[b]=c&a=d'),
- { a: { b: 'c', d: true } },
- 'can add keys to objects'
- );
-
- st.deepEqual(
- qs.parse('a[b]=c&a=toString'),
- { a: { b: 'c' } },
- 'can not overwrite prototype'
- );
-
- st.deepEqual(
- qs.parse('a[b]=c&a=toString', { allowPrototypes: true }),
- { a: { b: 'c', toString: true } },
- 'can overwrite prototype with allowPrototypes true'
- );
-
- st.deepEqual(
- qs.parse('a[b]=c&a=toString', { plainObjects: true }),
- { a: { b: 'c', toString: true } },
- 'can overwrite prototype with plainObjects true'
- );
-
- st.end();
- });
-
- t.test('can return null objects', { skip: !Object.create }, function (st) {
- var expected = Object.create(null);
- expected.a = Object.create(null);
- expected.a.b = 'c';
- expected.a.hasOwnProperty = 'd';
- st.deepEqual(qs.parse('a[b]=c&a[hasOwnProperty]=d', { plainObjects: true }), expected);
- st.deepEqual(qs.parse(null, { plainObjects: true }), Object.create(null));
- var expectedArray = Object.create(null);
- expectedArray.a = Object.create(null);
- expectedArray.a[0] = 'b';
- expectedArray.a.c = 'd';
- st.deepEqual(qs.parse('a[]=b&a[c]=d', { plainObjects: true }), expectedArray);
- st.end();
- });
-
- t.test('can parse with custom encoding', function (st) {
- st.deepEqual(qs.parse('%8c%a7=%91%e5%8d%e3%95%7b', {
- decoder: function (str) {
- var reg = /%([0-9A-F]{2})/ig;
- var result = [];
- var parts = reg.exec(str);
- while (parts) {
- result.push(parseInt(parts[1], 16));
- parts = reg.exec(str);
- }
- return iconv.decode(SaferBuffer.from(result), 'shift_jis').toString();
- }
- }), { 県: '大阪府' });
- st.end();
- });
-
- t.test('receives the default decoder as a second argument', function (st) {
- st.plan(1);
- qs.parse('a', {
- decoder: function (str, defaultDecoder) {
- st.equal(defaultDecoder, utils.decode);
- }
- });
- st.end();
- });
-
- t.test('throws error with wrong decoder', function (st) {
- st['throws'](function () {
- qs.parse({}, { decoder: 'string' });
- }, new TypeError('Decoder has to be a function.'));
- st.end();
- });
-
- t.test('does not mutate the options argument', function (st) {
- var options = {};
- qs.parse('a[b]=true', options);
- st.deepEqual(options, {});
- st.end();
- });
-
- t.end();
-});
diff --git a/deps/npm/node_modules/qs/test/stringify.js b/deps/npm/node_modules/qs/test/stringify.js
deleted file mode 100644
index 165ac621fe3..00000000000
--- a/deps/npm/node_modules/qs/test/stringify.js
+++ /dev/null
@@ -1,597 +0,0 @@
-'use strict';
-
-var test = require('tape');
-var qs = require('../');
-var utils = require('../lib/utils');
-var iconv = require('iconv-lite');
-var SaferBuffer = require('safer-buffer').Buffer;
-
-test('stringify()', function (t) {
- t.test('stringifies a querystring object', function (st) {
- st.equal(qs.stringify({ a: 'b' }), 'a=b');
- st.equal(qs.stringify({ a: 1 }), 'a=1');
- st.equal(qs.stringify({ a: 1, b: 2 }), 'a=1&b=2');
- st.equal(qs.stringify({ a: 'A_Z' }), 'a=A_Z');
- st.equal(qs.stringify({ a: '€' }), 'a=%E2%82%AC');
- st.equal(qs.stringify({ a: '' }), 'a=%EE%80%80');
- st.equal(qs.stringify({ a: 'א' }), 'a=%D7%90');
- st.equal(qs.stringify({ a: '𐐷' }), 'a=%F0%90%90%B7');
- st.end();
- });
-
- t.test('adds query prefix', function (st) {
- st.equal(qs.stringify({ a: 'b' }, { addQueryPrefix: true }), '?a=b');
- st.end();
- });
-
- t.test('with query prefix, outputs blank string given an empty object', function (st) {
- st.equal(qs.stringify({}, { addQueryPrefix: true }), '');
- st.end();
- });
-
- t.test('stringifies a nested object', function (st) {
- st.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c');
- st.equal(qs.stringify({ a: { b: { c: { d: 'e' } } } }), 'a%5Bb%5D%5Bc%5D%5Bd%5D=e');
- st.end();
- });
-
- t.test('stringifies a nested object with dots notation', function (st) {
- st.equal(qs.stringify({ a: { b: 'c' } }, { allowDots: true }), 'a.b=c');
- st.equal(qs.stringify({ a: { b: { c: { d: 'e' } } } }, { allowDots: true }), 'a.b.c.d=e');
- st.end();
- });
-
- t.test('stringifies an array value', function (st) {
- st.equal(
- qs.stringify({ a: ['b', 'c', 'd'] }, { arrayFormat: 'indices' }),
- 'a%5B0%5D=b&a%5B1%5D=c&a%5B2%5D=d',
- 'indices => indices'
- );
- st.equal(
- qs.stringify({ a: ['b', 'c', 'd'] }, { arrayFormat: 'brackets' }),
- 'a%5B%5D=b&a%5B%5D=c&a%5B%5D=d',
- 'brackets => brackets'
- );
- st.equal(
- qs.stringify({ a: ['b', 'c', 'd'] }),
- 'a%5B0%5D=b&a%5B1%5D=c&a%5B2%5D=d',
- 'default => indices'
- );
- st.end();
- });
-
- t.test('omits nulls when asked', function (st) {
- st.equal(qs.stringify({ a: 'b', c: null }, { skipNulls: true }), 'a=b');
- st.end();
- });
-
- t.test('omits nested nulls when asked', function (st) {
- st.equal(qs.stringify({ a: { b: 'c', d: null } }, { skipNulls: true }), 'a%5Bb%5D=c');
- st.end();
- });
-
- t.test('omits array indices when asked', function (st) {
- st.equal(qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false }), 'a=b&a=c&a=d');
- st.end();
- });
-
- t.test('stringifies a nested array value', function (st) {
- st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { arrayFormat: 'indices' }), 'a%5Bb%5D%5B0%5D=c&a%5Bb%5D%5B1%5D=d');
- st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { arrayFormat: 'brackets' }), 'a%5Bb%5D%5B%5D=c&a%5Bb%5D%5B%5D=d');
- st.equal(qs.stringify({ a: { b: ['c', 'd'] } }), 'a%5Bb%5D%5B0%5D=c&a%5Bb%5D%5B1%5D=d');
- st.end();
- });
-
- t.test('stringifies a nested array value with dots notation', function (st) {
- st.equal(
- qs.stringify(
- { a: { b: ['c', 'd'] } },
- { allowDots: true, encode: false, arrayFormat: 'indices' }
- ),
- 'a.b[0]=c&a.b[1]=d',
- 'indices: stringifies with dots + indices'
- );
- st.equal(
- qs.stringify(
- { a: { b: ['c', 'd'] } },
- { allowDots: true, encode: false, arrayFormat: 'brackets' }
- ),
- 'a.b[]=c&a.b[]=d',
- 'brackets: stringifies with dots + brackets'
- );
- st.equal(
- qs.stringify(
- { a: { b: ['c', 'd'] } },
- { allowDots: true, encode: false }
- ),
- 'a.b[0]=c&a.b[1]=d',
- 'default: stringifies with dots + indices'
- );
- st.end();
- });
-
- t.test('stringifies an object inside an array', function (st) {
- st.equal(
- qs.stringify({ a: [{ b: 'c' }] }, { arrayFormat: 'indices' }),
- 'a%5B0%5D%5Bb%5D=c',
- 'indices => brackets'
- );
- st.equal(
- qs.stringify({ a: [{ b: 'c' }] }, { arrayFormat: 'brackets' }),
- 'a%5B%5D%5Bb%5D=c',
- 'brackets => brackets'
- );
- st.equal(
- qs.stringify({ a: [{ b: 'c' }] }),
- 'a%5B0%5D%5Bb%5D=c',
- 'default => indices'
- );
-
- st.equal(
- qs.stringify({ a: [{ b: { c: [1] } }] }, { arrayFormat: 'indices' }),
- 'a%5B0%5D%5Bb%5D%5Bc%5D%5B0%5D=1',
- 'indices => indices'
- );
-
- st.equal(
- qs.stringify({ a: [{ b: { c: [1] } }] }, { arrayFormat: 'brackets' }),
- 'a%5B%5D%5Bb%5D%5Bc%5D%5B%5D=1',
- 'brackets => brackets'
- );
-
- st.equal(
- qs.stringify({ a: [{ b: { c: [1] } }] }),
- 'a%5B0%5D%5Bb%5D%5Bc%5D%5B0%5D=1',
- 'default => indices'
- );
-
- st.end();
- });
-
- t.test('stringifies an array with mixed objects and primitives', function (st) {
- st.equal(
- qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encode: false, arrayFormat: 'indices' }),
- 'a[0][b]=1&a[1]=2&a[2]=3',
- 'indices => indices'
- );
- st.equal(
- qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encode: false, arrayFormat: 'brackets' }),
- 'a[][b]=1&a[]=2&a[]=3',
- 'brackets => brackets'
- );
- st.equal(
- qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encode: false }),
- 'a[0][b]=1&a[1]=2&a[2]=3',
- 'default => indices'
- );
-
- st.end();
- });
-
- t.test('stringifies an object inside an array with dots notation', function (st) {
- st.equal(
- qs.stringify(
- { a: [{ b: 'c' }] },
- { allowDots: true, encode: false, arrayFormat: 'indices' }
- ),
- 'a[0].b=c',
- 'indices => indices'
- );
- st.equal(
- qs.stringify(
- { a: [{ b: 'c' }] },
- { allowDots: true, encode: false, arrayFormat: 'brackets' }
- ),
- 'a[].b=c',
- 'brackets => brackets'
- );
- st.equal(
- qs.stringify(
- { a: [{ b: 'c' }] },
- { allowDots: true, encode: false }
- ),
- 'a[0].b=c',
- 'default => indices'
- );
-
- st.equal(
- qs.stringify(
- { a: [{ b: { c: [1] } }] },
- { allowDots: true, encode: false, arrayFormat: 'indices' }
- ),
- 'a[0].b.c[0]=1',
- 'indices => indices'
- );
- st.equal(
- qs.stringify(
- { a: [{ b: { c: [1] } }] },
- { allowDots: true, encode: false, arrayFormat: 'brackets' }
- ),
- 'a[].b.c[]=1',
- 'brackets => brackets'
- );
- st.equal(
- qs.stringify(
- { a: [{ b: { c: [1] } }] },
- { allowDots: true, encode: false }
- ),
- 'a[0].b.c[0]=1',
- 'default => indices'
- );
-
- st.end();
- });
-
- t.test('does not omit object keys when indices = false', function (st) {
- st.equal(qs.stringify({ a: [{ b: 'c' }] }, { indices: false }), 'a%5Bb%5D=c');
- st.end();
- });
-
- t.test('uses indices notation for arrays when indices=true', function (st) {
- st.equal(qs.stringify({ a: ['b', 'c'] }, { indices: true }), 'a%5B0%5D=b&a%5B1%5D=c');
- st.end();
- });
-
- t.test('uses indices notation for arrays when no arrayFormat is specified', function (st) {
- st.equal(qs.stringify({ a: ['b', 'c'] }), 'a%5B0%5D=b&a%5B1%5D=c');
- st.end();
- });
-
- t.test('uses indices notation for arrays when no arrayFormat=indices', function (st) {
- st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' }), 'a%5B0%5D=b&a%5B1%5D=c');
- st.end();
- });
-
- t.test('uses repeat notation for arrays when no arrayFormat=repeat', function (st) {
- st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' }), 'a=b&a=c');
- st.end();
- });
-
- t.test('uses brackets notation for arrays when no arrayFormat=brackets', function (st) {
- st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' }), 'a%5B%5D=b&a%5B%5D=c');
- st.end();
- });
-
- t.test('stringifies a complicated object', function (st) {
- st.equal(qs.stringify({ a: { b: 'c', d: 'e' } }), 'a%5Bb%5D=c&a%5Bd%5D=e');
- st.end();
- });
-
- t.test('stringifies an empty value', function (st) {
- st.equal(qs.stringify({ a: '' }), 'a=');
- st.equal(qs.stringify({ a: null }, { strictNullHandling: true }), 'a');
-
- st.equal(qs.stringify({ a: '', b: '' }), 'a=&b=');
- st.equal(qs.stringify({ a: null, b: '' }, { strictNullHandling: true }), 'a&b=');
-
- st.equal(qs.stringify({ a: { b: '' } }), 'a%5Bb%5D=');
- st.equal(qs.stringify({ a: { b: null } }, { strictNullHandling: true }), 'a%5Bb%5D');
- st.equal(qs.stringify({ a: { b: null } }, { strictNullHandling: false }), 'a%5Bb%5D=');
-
- st.end();
- });
-
- t.test('stringifies a null object', { skip: !Object.create }, function (st) {
- var obj = Object.create(null);
- obj.a = 'b';
- st.equal(qs.stringify(obj), 'a=b');
- st.end();
- });
-
- t.test('returns an empty string for invalid input', function (st) {
- st.equal(qs.stringify(undefined), '');
- st.equal(qs.stringify(false), '');
- st.equal(qs.stringify(null), '');
- st.equal(qs.stringify(''), '');
- st.end();
- });
-
- t.test('stringifies an object with a null object as a child', { skip: !Object.create }, function (st) {
- var obj = { a: Object.create(null) };
-
- obj.a.b = 'c';
- st.equal(qs.stringify(obj), 'a%5Bb%5D=c');
- st.end();
- });
-
- t.test('drops keys with a value of undefined', function (st) {
- st.equal(qs.stringify({ a: undefined }), '');
-
- st.equal(qs.stringify({ a: { b: undefined, c: null } }, { strictNullHandling: true }), 'a%5Bc%5D');
- st.equal(qs.stringify({ a: { b: undefined, c: null } }, { strictNullHandling: false }), 'a%5Bc%5D=');
- st.equal(qs.stringify({ a: { b: undefined, c: '' } }), 'a%5Bc%5D=');
- st.end();
- });
-
- t.test('url encodes values', function (st) {
- st.equal(qs.stringify({ a: 'b c' }), 'a=b%20c');
- st.end();
- });
-
- t.test('stringifies a date', function (st) {
- var now = new Date();
- var str = 'a=' + encodeURIComponent(now.toISOString());
- st.equal(qs.stringify({ a: now }), str);
- st.end();
- });
-
- t.test('stringifies the weird object from qs', function (st) {
- st.equal(qs.stringify({ 'my weird field': '~q1!2"\'w$5&7/z8)?' }), 'my%20weird%20field=~q1%212%22%27w%245%267%2Fz8%29%3F');
- st.end();
- });
-
- t.test('skips properties that are part of the object prototype', function (st) {
- Object.prototype.crash = 'test';
- st.equal(qs.stringify({ a: 'b' }), 'a=b');
- st.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c');
- delete Object.prototype.crash;
- st.end();
- });
-
- t.test('stringifies boolean values', function (st) {
- st.equal(qs.stringify({ a: true }), 'a=true');
- st.equal(qs.stringify({ a: { b: true } }), 'a%5Bb%5D=true');
- st.equal(qs.stringify({ b: false }), 'b=false');
- st.equal(qs.stringify({ b: { c: false } }), 'b%5Bc%5D=false');
- st.end();
- });
-
- t.test('stringifies buffer values', function (st) {
- st.equal(qs.stringify({ a: SaferBuffer.from('test') }), 'a=test');
- st.equal(qs.stringify({ a: { b: SaferBuffer.from('test') } }), 'a%5Bb%5D=test');
- st.end();
- });
-
- t.test('stringifies an object using an alternative delimiter', function (st) {
- st.equal(qs.stringify({ a: 'b', c: 'd' }, { delimiter: ';' }), 'a=b;c=d');
- st.end();
- });
-
- t.test('doesn\'t blow up when Buffer global is missing', function (st) {
- var tempBuffer = global.Buffer;
- delete global.Buffer;
- var result = qs.stringify({ a: 'b', c: 'd' });
- global.Buffer = tempBuffer;
- st.equal(result, 'a=b&c=d');
- st.end();
- });
-
- t.test('selects properties when filter=array', function (st) {
- st.equal(qs.stringify({ a: 'b' }, { filter: ['a'] }), 'a=b');
- st.equal(qs.stringify({ a: 1 }, { filter: [] }), '');
-
- st.equal(
- qs.stringify(
- { a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' },
- { filter: ['a', 'b', 0, 2], arrayFormat: 'indices' }
- ),
- 'a%5Bb%5D%5B0%5D=1&a%5Bb%5D%5B2%5D=3',
- 'indices => indices'
- );
- st.equal(
- qs.stringify(
- { a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' },
- { filter: ['a', 'b', 0, 2], arrayFormat: 'brackets' }
- ),
- 'a%5Bb%5D%5B%5D=1&a%5Bb%5D%5B%5D=3',
- 'brackets => brackets'
- );
- st.equal(
- qs.stringify(
- { a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' },
- { filter: ['a', 'b', 0, 2] }
- ),
- 'a%5Bb%5D%5B0%5D=1&a%5Bb%5D%5B2%5D=3',
- 'default => indices'
- );
-
- st.end();
- });
-
- t.test('supports custom representations when filter=function', function (st) {
- var calls = 0;
- var obj = { a: 'b', c: 'd', e: { f: new Date(1257894000000) } };
- var filterFunc = function (prefix, value) {
- calls += 1;
- if (calls === 1) {
- st.equal(prefix, '', 'prefix is empty');
- st.equal(value, obj);
- } else if (prefix === 'c') {
- return void 0;
- } else if (value instanceof Date) {
- st.equal(prefix, 'e[f]');
- return value.getTime();
- }
- return value;
- };
-
- st.equal(qs.stringify(obj, { filter: filterFunc }), 'a=b&e%5Bf%5D=1257894000000');
- st.equal(calls, 5);
- st.end();
- });
-
- t.test('can disable uri encoding', function (st) {
- st.equal(qs.stringify({ a: 'b' }, { encode: false }), 'a=b');
- st.equal(qs.stringify({ a: { b: 'c' } }, { encode: false }), 'a[b]=c');
- st.equal(qs.stringify({ a: 'b', c: null }, { strictNullHandling: true, encode: false }), 'a=b&c');
- st.end();
- });
-
- t.test('can sort the keys', function (st) {
- var sort = function (a, b) {
- return a.localeCompare(b);
- };
- st.equal(qs.stringify({ a: 'c', z: 'y', b: 'f' }, { sort: sort }), 'a=c&b=f&z=y');
- st.equal(qs.stringify({ a: 'c', z: { j: 'a', i: 'b' }, b: 'f' }, { sort: sort }), 'a=c&b=f&z%5Bi%5D=b&z%5Bj%5D=a');
- st.end();
- });
-
- t.test('can sort the keys at depth 3 or more too', function (st) {
- var sort = function (a, b) {
- return a.localeCompare(b);
- };
- st.equal(
- qs.stringify(
- { a: 'a', z: { zj: { zjb: 'zjb', zja: 'zja' }, zi: { zib: 'zib', zia: 'zia' } }, b: 'b' },
- { sort: sort, encode: false }
- ),
- 'a=a&b=b&z[zi][zia]=zia&z[zi][zib]=zib&z[zj][zja]=zja&z[zj][zjb]=zjb'
- );
- st.equal(
- qs.stringify(
- { a: 'a', z: { zj: { zjb: 'zjb', zja: 'zja' }, zi: { zib: 'zib', zia: 'zia' } }, b: 'b' },
- { sort: null, encode: false }
- ),
- 'a=a&z[zj][zjb]=zjb&z[zj][zja]=zja&z[zi][zib]=zib&z[zi][zia]=zia&b=b'
- );
- st.end();
- });
-
- t.test('can stringify with custom encoding', function (st) {
- st.equal(qs.stringify({ 県: '大阪府', '': '' }, {
- encoder: function (str) {
- if (str.length === 0) {
- return '';
- }
- var buf = iconv.encode(str, 'shiftjis');
- var result = [];
- for (var i = 0; i < buf.length; ++i) {
- result.push(buf.readUInt8(i).toString(16));
- }
- return '%' + result.join('%');
- }
- }), '%8c%a7=%91%e5%8d%e3%95%7b&=');
- st.end();
- });
-
- t.test('receives the default encoder as a second argument', function (st) {
- st.plan(2);
- qs.stringify({ a: 1 }, {
- encoder: function (str, defaultEncoder) {
- st.equal(defaultEncoder, utils.encode);
- }
- });
- st.end();
- });
-
- t.test('throws error with wrong encoder', function (st) {
- st['throws'](function () {
- qs.stringify({}, { encoder: 'string' });
- }, new TypeError('Encoder has to be a function.'));
- st.end();
- });
-
- t.test('can use custom encoder for a buffer object', { skip: typeof Buffer === 'undefined' }, function (st) {
- st.equal(qs.stringify({ a: SaferBuffer.from([1]) }, {
- encoder: function (buffer) {
- if (typeof buffer === 'string') {
- return buffer;
- }
- return String.fromCharCode(buffer.readUInt8(0) + 97);
- }
- }), 'a=b');
- st.end();
- });
-
- t.test('serializeDate option', function (st) {
- var date = new Date();
- st.equal(
- qs.stringify({ a: date }),
- 'a=' + date.toISOString().replace(/:/g, '%3A'),
- 'default is toISOString'
- );
-
- var mutatedDate = new Date();
- mutatedDate.toISOString = function () {
- throw new SyntaxError();
- };
- st['throws'](function () {
- mutatedDate.toISOString();
- }, SyntaxError);
- st.equal(
- qs.stringify({ a: mutatedDate }),
- 'a=' + Date.prototype.toISOString.call(mutatedDate).replace(/:/g, '%3A'),
- 'toISOString works even when method is not locally present'
- );
-
- var specificDate = new Date(6);
- st.equal(
- qs.stringify(
- { a: specificDate },
- { serializeDate: function (d) { return d.getTime() * 7; } }
- ),
- 'a=42',
- 'custom serializeDate function called'
- );
-
- st.end();
- });
-
- t.test('RFC 1738 spaces serialization', function (st) {
- st.equal(qs.stringify({ a: 'b c' }, { format: qs.formats.RFC1738 }), 'a=b+c');
- st.equal(qs.stringify({ 'a b': 'c d' }, { format: qs.formats.RFC1738 }), 'a+b=c+d');
- st.end();
- });
-
- t.test('RFC 3986 spaces serialization', function (st) {
- st.equal(qs.stringify({ a: 'b c' }, { format: qs.formats.RFC3986 }), 'a=b%20c');
- st.equal(qs.stringify({ 'a b': 'c d' }, { format: qs.formats.RFC3986 }), 'a%20b=c%20d');
- st.end();
- });
-
- t.test('Backward compatibility to RFC 3986', function (st) {
- st.equal(qs.stringify({ a: 'b c' }), 'a=b%20c');
- st.end();
- });
-
- t.test('Edge cases and unknown formats', function (st) {
- ['UFO1234', false, 1234, null, {}, []].forEach(
- function (format) {
- st['throws'](
- function () {
- qs.stringify({ a: 'b c' }, { format: format });
- },
- new TypeError('Unknown format option provided.')
- );
- }
- );
- st.end();
- });
-
- t.test('encodeValuesOnly', function (st) {
- st.equal(
- qs.stringify(
- { a: 'b', c: ['d', 'e=f'], f: [['g'], ['h']] },
- { encodeValuesOnly: true }
- ),
- 'a=b&c[0]=d&c[1]=e%3Df&f[0][0]=g&f[1][0]=h'
- );
- st.equal(
- qs.stringify(
- { a: 'b', c: ['d', 'e'], f: [['g'], ['h']] }
- ),
- 'a=b&c%5B0%5D=d&c%5B1%5D=e&f%5B0%5D%5B0%5D=g&f%5B1%5D%5B0%5D=h'
- );
- st.end();
- });
-
- t.test('encodeValuesOnly - strictNullHandling', function (st) {
- st.equal(
- qs.stringify(
- { a: { b: null } },
- { encodeValuesOnly: true, strictNullHandling: true }
- ),
- 'a[b]'
- );
- st.end();
- });
-
- t.test('does not mutate the options argument', function (st) {
- var options = {};
- qs.stringify({}, options);
- st.deepEqual(options, {});
- st.end();
- });
-
- t.end();
-});
diff --git a/deps/npm/node_modules/qs/test/utils.js b/deps/npm/node_modules/qs/test/utils.js
deleted file mode 100644
index eff4011a401..00000000000
--- a/deps/npm/node_modules/qs/test/utils.js
+++ /dev/null
@@ -1,34 +0,0 @@
-'use strict';
-
-var test = require('tape');
-var utils = require('../lib/utils');
-
-test('merge()', function (t) {
- t.deepEqual(utils.merge({ a: 'b' }, { a: 'c' }), { a: ['b', 'c'] }, 'merges two objects with the same key');
-
- var oneMerged = utils.merge({ foo: 'bar' }, { foo: { first: '123' } });
- t.deepEqual(oneMerged, { foo: ['bar', { first: '123' }] }, 'merges a standalone and an object into an array');
-
- var twoMerged = utils.merge({ foo: ['bar', { first: '123' }] }, { foo: { second: '456' } });
- t.deepEqual(twoMerged, { foo: { 0: 'bar', 1: { first: '123' }, second: '456' } }, 'merges a standalone and two objects into an array');
-
- var sandwiched = utils.merge({ foo: ['bar', { first: '123', second: '456' }] }, { foo: 'baz' });
- t.deepEqual(sandwiched, { foo: ['bar', { first: '123', second: '456' }, 'baz'] }, 'merges an object sandwiched by two standalones into an array');
-
- var nestedArrays = utils.merge({ foo: ['baz'] }, { foo: ['bar', 'xyzzy'] });
- t.deepEqual(nestedArrays, { foo: ['baz', 'bar', 'xyzzy'] });
-
- t.end();
-});
-
-test('assign()', function (t) {
- var target = { a: 1, b: 2 };
- var source = { b: 3, c: 4 };
- var result = utils.assign(target, source);
-
- t.equal(result, target, 'returns the target');
- t.deepEqual(target, { a: 1, b: 3, c: 4 }, 'target and source are merged');
- t.deepEqual(source, { b: 3, c: 4 }, 'source is untouched');
-
- t.end();
-});
diff --git a/deps/npm/node_modules/request/LICENSE b/deps/npm/node_modules/request/LICENSE
deleted file mode 100644
index a4a9aee0c2f..00000000000
--- a/deps/npm/node_modules/request/LICENSE
+++ /dev/null
@@ -1,55 +0,0 @@
-Apache License
-
-Version 2.0, January 2004
-
-http://www.apache.org/licenses/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
-"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
-
-"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
-
-"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
-
-"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
-
-"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
-
-"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
-
-"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
-
-"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
-
-"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
-
-"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
-
-2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
-
-You must give any other recipients of the Work or Derivative Works a copy of this License; and
-
-You must cause any modified files to carry prominent notices stating that You changed the files; and
-
-You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
-
-If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
-
-5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS \ No newline at end of file
diff --git a/deps/npm/node_modules/request/index.js b/deps/npm/node_modules/request/index.js
deleted file mode 100755
index d50f9917b5f..00000000000
--- a/deps/npm/node_modules/request/index.js
+++ /dev/null
@@ -1,155 +0,0 @@
-// Copyright 2010-2012 Mikeal Rogers
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-'use strict'
-
-var extend = require('extend')
-var cookies = require('./lib/cookies')
-var helpers = require('./lib/helpers')
-
-var paramsHaveRequestBody = helpers.paramsHaveRequestBody
-
-// organize params for patch, post, put, head, del
-function initParams (uri, options, callback) {
- if (typeof options === 'function') {
- callback = options
- }
-
- var params = {}
- if (options !== null && typeof options === 'object') {
- extend(params, options, {uri: uri})
- } else if (typeof uri === 'string') {
- extend(params, {uri: uri})
- } else {
- extend(params, uri)
- }
-
- params.callback = callback || params.callback
- return params
-}
-
-function request (uri, options, callback) {
- if (typeof uri === 'undefined') {
- throw new Error('undefined is not a valid uri or options object.')
- }
-
- var params = initParams(uri, options, callback)
-
- if (params.method === 'HEAD' && paramsHaveRequestBody(params)) {
- throw new Error('HTTP HEAD requests MUST NOT include a request body.')
- }
-
- return new request.Request(params)
-}
-
-function verbFunc (verb) {
- var method = verb.toUpperCase()
- return function (uri, options, callback) {
- var params = initParams(uri, options, callback)
- params.method = method
- return request(params, params.callback)
- }
-}
-
-// define like this to please codeintel/intellisense IDEs
-request.get = verbFunc('get')
-request.head = verbFunc('head')
-request.options = verbFunc('options')
-request.post = verbFunc('post')
-request.put = verbFunc('put')
-request.patch = verbFunc('patch')
-request.del = verbFunc('delete')
-request['delete'] = verbFunc('delete')
-
-request.jar = function (store) {
- return cookies.jar(store)
-}
-
-request.cookie = function (str) {
- return cookies.parse(str)
-}
-
-function wrapRequestMethod (method, options, requester, verb) {
- return function (uri, opts, callback) {
- var params = initParams(uri, opts, callback)
-
- var target = {}
- extend(true, target, options, params)
-
- target.pool = params.pool || options.pool
-
- if (verb) {
- target.method = verb.toUpperCase()
- }
-
- if (typeof requester === 'function') {
- method = requester
- }
-
- return method(target, target.callback)
- }
-}
-
-request.defaults = function (options, requester) {
- var self = this
-
- options = options || {}
-
- if (typeof options === 'function') {
- requester = options
- options = {}
- }
-
- var defaults = wrapRequestMethod(self, options, requester)
-
- var verbs = ['get', 'head', 'post', 'put', 'patch', 'del', 'delete']
- verbs.forEach(function (verb) {
- defaults[verb] = wrapRequestMethod(self[verb], options, requester, verb)
- })
-
- defaults.cookie = wrapRequestMethod(self.cookie, options, requester)
- defaults.jar = self.jar
- defaults.defaults = self.defaults
- return defaults
-}
-
-request.forever = function (agentOptions, optionsArg) {
- var options = {}
- if (optionsArg) {
- extend(options, optionsArg)
- }
- if (agentOptions) {
- options.agentOptions = agentOptions
- }
-
- options.forever = true
- return request.defaults(options)
-}
-
-// Exports
-
-module.exports = request
-request.Request = require('./request')
-request.initParams = initParams
-
-// Backwards compatibility for request.debug
-Object.defineProperty(request, 'debug', {
- enumerable: true,
- get: function () {
- return request.Request.debug
- },
- set: function (debug) {
- request.Request.debug = debug
- }
-})
diff --git a/deps/npm/node_modules/request/lib/auth.js b/deps/npm/node_modules/request/lib/auth.js
deleted file mode 100644
index 02f20386932..00000000000
--- a/deps/npm/node_modules/request/lib/auth.js
+++ /dev/null
@@ -1,167 +0,0 @@
-'use strict'
-
-var caseless = require('caseless')
-var uuid = require('uuid/v4')
-var helpers = require('./helpers')
-
-var md5 = helpers.md5
-var toBase64 = helpers.toBase64
-
-function Auth (request) {
- // define all public properties here
- this.request = request
- this.hasAuth = false
- this.sentAuth = false
- this.bearerToken = null
- this.user = null
- this.pass = null
-}
-
-Auth.prototype.basic = function (user, pass, sendImmediately) {
- var self = this
- if (typeof user !== 'string' || (pass !== undefined && typeof pass !== 'string')) {
- self.request.emit('error', new Error('auth() received invalid user or password'))
- }
- self.user = user
- self.pass = pass
- self.hasAuth = true
- var header = user + ':' + (pass || '')
- if (sendImmediately || typeof sendImmediately === 'undefined') {
- var authHeader = 'Basic ' + toBase64(header)
- self.sentAuth = true
- return authHeader
- }
-}
-
-Auth.prototype.bearer = function (bearer, sendImmediately) {
- var self = this
- self.bearerToken = bearer
- self.hasAuth = true
- if (sendImmediately || typeof sendImmediately === 'undefined') {
- if (typeof bearer === 'function') {
- bearer = bearer()
- }
- var authHeader = 'Bearer ' + (bearer || '')
- self.sentAuth = true
- return authHeader
- }
-}
-
-Auth.prototype.digest = function (method, path, authHeader) {
- // TODO: More complete implementation of RFC 2617.
- // - handle challenge.domain
- // - support qop="auth-int" only
- // - handle Authentication-Info (not necessarily?)
- // - check challenge.stale (not necessarily?)
- // - increase nc (not necessarily?)
- // For reference:
- // http://tools.ietf.org/html/rfc2617#section-3
- // https://github.com/bagder/curl/blob/master/lib/http_digest.c
-
- var self = this
-
- var challenge = {}
- var re = /([a-z0-9_-]+)=(?:"([^"]+)"|([a-z0-9_-]+))/gi
- while (true) {
- var match = re.exec(authHeader)
- if (!match) {
- break
- }
- challenge[match[1]] = match[2] || match[3]
- }
-
- /**
- * RFC 2617: handle both MD5 and MD5-sess algorithms.
- *
- * If the algorithm directive's value is "MD5" or unspecified, then HA1 is
- * HA1=MD5(username:realm:password)
- * If the algorithm directive's value is "MD5-sess", then HA1 is
- * HA1=MD5(MD5(username:realm:password):nonce:cnonce)
- */
- var ha1Compute = function (algorithm, user, realm, pass, nonce, cnonce) {
- var ha1 = md5(user + ':' + realm + ':' + pass)
- if (algorithm && algorithm.toLowerCase() === 'md5-sess') {
- return md5(ha1 + ':' + nonce + ':' + cnonce)
- } else {
- return ha1
- }
- }
-
- var qop = /(^|,)\s*auth\s*($|,)/.test(challenge.qop) && 'auth'
- var nc = qop && '00000001'
- var cnonce = qop && uuid().replace(/-/g, '')
- var ha1 = ha1Compute(challenge.algorithm, self.user, challenge.realm, self.pass, challenge.nonce, cnonce)
- var ha2 = md5(method + ':' + path)
- var digestResponse = qop
- ? md5(ha1 + ':' + challenge.nonce + ':' + nc + ':' + cnonce + ':' + qop + ':' + ha2)
- : md5(ha1 + ':' + challenge.nonce + ':' + ha2)
- var authValues = {
- username: self.user,
- realm: challenge.realm,
- nonce: challenge.nonce,
- uri: path,
- qop: qop,
- response: digestResponse,
- nc: nc,
- cnonce: cnonce,
- algorithm: challenge.algorithm,
- opaque: challenge.opaque
- }
-
- authHeader = []
- for (var k in authValues) {
- if (authValues[k]) {
- if (k === 'qop' || k === 'nc' || k === 'algorithm') {
- authHeader.push(k + '=' + authValues[k])
- } else {
- authHeader.push(k + '="' + authValues[k] + '"')
- }
- }
- }
- authHeader = 'Digest ' + authHeader.join(', ')
- self.sentAuth = true
- return authHeader
-}
-
-Auth.prototype.onRequest = function (user, pass, sendImmediately, bearer) {
- var self = this
- var request = self.request
-
- var authHeader
- if (bearer === undefined && user === undefined) {
- self.request.emit('error', new Error('no auth mechanism defined'))
- } else if (bearer !== undefined) {
- authHeader = self.bearer(bearer, sendImmediately)
- } else {
- authHeader = self.basic(user, pass, sendImmediately)
- }
- if (authHeader) {
- request.setHeader('authorization', authHeader)
- }
-}
-
-Auth.prototype.onResponse = function (response) {
- var self = this
- var request = self.request
-
- if (!self.hasAuth || self.sentAuth) { return null }
-
- var c = caseless(response.headers)
-
- var authHeader = c.get('www-authenticate')
- var authVerb = authHeader && authHeader.split(' ')[0].toLowerCase()
- request.debug('reauth', authVerb)
-
- switch (authVerb) {
- case 'basic':
- return self.basic(self.user, self.pass, true)
-
- case 'bearer':
- return self.bearer(self.bearerToken, true)
-
- case 'digest':
- return self.digest(request.method, request.path, authHeader)
- }
-}
-
-exports.Auth = Auth
diff --git a/deps/npm/node_modules/request/lib/cookies.js b/deps/npm/node_modules/request/lib/cookies.js
deleted file mode 100644
index bd5d46bead9..00000000000
--- a/deps/npm/node_modules/request/lib/cookies.js
+++ /dev/null
@@ -1,38 +0,0 @@
-'use strict'
-
-var tough = require('tough-cookie')
-
-var Cookie = tough.Cookie
-var CookieJar = tough.CookieJar
-
-exports.parse = function (str) {
- if (str && str.uri) {
- str = str.uri
- }
- if (typeof str !== 'string') {
- throw new Error('The cookie function only accepts STRING as param')
- }
- return Cookie.parse(str, {loose: true})
-}
-
-// Adapt the sometimes-Async api of tough.CookieJar to our requirements
-function RequestJar (store) {
- var self = this
- self._jar = new CookieJar(store, {looseMode: true})
-}
-RequestJar.prototype.setCookie = function (cookieOrStr, uri, options) {
- var self = this
- return self._jar.setCookieSync(cookieOrStr, uri, options || {})
-}
-RequestJar.prototype.getCookieString = function (uri) {
- var self = this
- return self._jar.getCookieStringSync(uri)
-}
-RequestJar.prototype.getCookies = function (uri) {
- var self = this
- return self._jar.getCookiesSync(uri)
-}
-
-exports.jar = function (store) {
- return new RequestJar(store)
-}
diff --git a/deps/npm/node_modules/request/lib/getProxyFromURI.js b/deps/npm/node_modules/request/lib/getProxyFromURI.js
deleted file mode 100644
index 0b9b18e5acf..00000000000
--- a/deps/npm/node_modules/request/lib/getProxyFromURI.js
+++ /dev/null
@@ -1,79 +0,0 @@
-'use strict'
-
-function formatHostname (hostname) {
- // canonicalize the hostname, so that 'oogle.com' won't match 'google.com'
- return hostname.replace(/^\.*/, '.').toLowerCase()
-}
-
-function parseNoProxyZone (zone) {
- zone = zone.trim().toLowerCase()
-
- var zoneParts = zone.split(':', 2)
- var zoneHost = formatHostname(zoneParts[0])
- var zonePort = zoneParts[1]
- var hasPort = zone.indexOf(':') > -1
-
- return {hostname: zoneHost, port: zonePort, hasPort: hasPort}
-}
-
-function uriInNoProxy (uri, noProxy) {
- var port = uri.port || (uri.protocol === 'https:' ? '443' : '80')
- var hostname = formatHostname(uri.hostname)
- var noProxyList = noProxy.split(',')
-
- // iterate through the noProxyList until it finds a match.
- return noProxyList.map(parseNoProxyZone).some(function (noProxyZone) {
- var isMatchedAt = hostname.indexOf(noProxyZone.hostname)
- var hostnameMatched = (
- isMatchedAt > -1 &&
- (isMatchedAt === hostname.length - noProxyZone.hostname.length)
- )
-
- if (noProxyZone.hasPort) {
- return (port === noProxyZone.port) && hostnameMatched
- }
-
- return hostnameMatched
- })
-}
-
-function getProxyFromURI (uri) {
- // Decide the proper request proxy to use based on the request URI object and the
- // environmental variables (NO_PROXY, HTTP_PROXY, etc.)
- // respect NO_PROXY environment variables (see: https://lynx.invisible-island.net/lynx2.8.7/breakout/lynx_help/keystrokes/environments.html)
-
- var noProxy = process.env.NO_PROXY || process.env.no_proxy || ''
-
- // if the noProxy is a wildcard then return null
-
- if (noProxy === '*') {
- return null
- }
-
- // if the noProxy is not empty and the uri is found return null
-
- if (noProxy !== '' && uriInNoProxy(uri, noProxy)) {
- return null
- }
-
- // Check for HTTP or HTTPS Proxy in environment Else default to null
-
- if (uri.protocol === 'http:') {
- return process.env.HTTP_PROXY ||
- process.env.http_proxy || null
- }
-
- if (uri.protocol === 'https:') {
- return process.env.HTTPS_PROXY ||
- process.env.https_proxy ||
- process.env.HTTP_PROXY ||
- process.env.http_proxy || null
- }
-
- // if none of that works, return null
- // (What uri protocol are you using then?)
-
- return null
-}
-
-module.exports = getProxyFromURI
diff --git a/deps/npm/node_modules/request/lib/har.js b/deps/npm/node_modules/request/lib/har.js
deleted file mode 100644
index 0dedee44475..00000000000
--- a/deps/npm/node_modules/request/lib/har.js
+++ /dev/null
@@ -1,205 +0,0 @@
-'use strict'
-
-var fs = require('fs')
-var qs = require('querystring')
-var validate = require('har-validator')
-var extend = require('extend')
-
-function Har (request) {
- this.request = request
-}
-
-Har.prototype.reducer = function (obj, pair) {
- // new property ?
- if (obj[pair.name] === undefined) {
- obj[pair.name] = pair.value
- return obj
- }
-
- // existing? convert to array
- var arr = [
- obj[pair.name],
- pair.value
- ]
-
- obj[pair.name] = arr
-
- return obj
-}
-
-Har.prototype.prep = function (data) {
- // construct utility properties
- data.queryObj = {}
- data.headersObj = {}
- data.postData.jsonObj = false
- data.postData.paramsObj = false
-
- // construct query objects
- if (data.queryString && data.queryString.length) {
- data.queryObj = data.queryString.reduce(this.reducer, {})
- }
-
- // construct headers objects
- if (data.headers && data.headers.length) {
- // loweCase header keys
- data.headersObj = data.headers.reduceRight(function (headers, header) {
- headers[header.name] = header.value
- return headers
- }, {})
- }
-
- // construct Cookie header
- if (data.cookies && data.cookies.length) {
- var cookies = data.cookies.map(function (cookie) {
- return cookie.name + '=' + cookie.value
- })
-
- if (cookies.length) {
- data.headersObj.cookie = cookies.join('; ')
- }
- }
-
- // prep body
- function some (arr) {
- return arr.some(function (type) {
- return data.postData.mimeType.indexOf(type) === 0
- })
- }
-
- if (some([
- 'multipart/mixed',
- 'multipart/related',
- 'multipart/form-data',
- 'multipart/alternative'])) {
- // reset values
- data.postData.mimeType = 'multipart/form-data'
- } else if (some([
- 'application/x-www-form-urlencoded'])) {
- if (!data.postData.params) {
- data.postData.text = ''
- } else {
- data.postData.paramsObj = data.postData.params.reduce(this.reducer, {})
-
- // always overwrite
- data.postData.text = qs.stringify(data.postData.paramsObj)
- }
- } else if (some([
- 'text/json',
- 'text/x-json',
- 'application/json',
- 'application/x-json'])) {
- data.postData.mimeType = 'application/json'
-
- if (data.postData.text) {
- try {
- data.postData.jsonObj = JSON.parse(data.postData.text)
- } catch (e) {
- this.request.debug(e)
-
- // force back to text/plain
- data.postData.mimeType = 'text/plain'
- }
- }
- }
-
- return data
-}
-
-Har.prototype.options = function (options) {
- // skip if no har property defined
- if (!options.har) {
- return options
- }
-
- var har = {}
- extend(har, options.har)
-
- // only process the first entry
- if (har.log && har.log.entries) {
- har = har.log.entries[0]
- }
-
- // add optional properties to make validation successful
- har.url = har.url || options.url || options.uri || options.baseUrl || '/'
- har.httpVersion = har.httpVersion || 'HTTP/1.1'
- har.queryString = har.queryString || []
- har.headers = har.headers || []
- har.cookies = har.cookies || []
- har.postData = har.postData || {}
- har.postData.mimeType = har.postData.mimeType || 'application/octet-stream'
-
- har.bodySize = 0
- har.headersSize = 0
- har.postData.size = 0
-
- if (!validate.request(har)) {
- return options
- }
-
- // clean up and get some utility properties
- var req = this.prep(har)
-
- // construct new options
- if (req.url) {
- options.url = req.url
- }
-
- if (req.method) {
- options.method = req.method
- }
-
- if (Object.keys(req.queryObj).length) {
- options.qs = req.queryObj
- }
-
- if (Object.keys(req.headersObj).length) {
- options.headers = req.headersObj
- }
-
- function test (type) {
- return req.postData.mimeType.indexOf(type) === 0
- }
- if (test('application/x-www-form-urlencoded')) {
- options.form = req.postData.paramsObj
- } else if (test('application/json')) {
- if (req.postData.jsonObj) {
- options.body = req.postData.jsonObj
- options.json = true
- }
- } else if (test('multipart/form-data')) {
- options.formData = {}
-
- req.postData.params.forEach(function (param) {
- var attachment = {}
-
- if (!param.fileName && !param.contentType) {
- options.formData[param.name] = param.value
- return
- }
-
- // attempt to read from disk!
- if (param.fileName && !param.value) {
- attachment.value = fs.createReadStream(param.fileName)
- } else if (param.value) {
- attachment.value = param.value
- }
-
- if (param.fileName) {
- attachment.options = {
- filename: param.fileName,
- contentType: param.contentType ? param.contentType : null
- }
- }
-
- options.formData[param.name] = attachment
- })
- } else {
- if (req.postData.text) {
- options.body = req.postData.text
- }
- }
-
- return options
-}
-
-exports.Har = Har
diff --git a/deps/npm/node_modules/request/lib/hawk.js b/deps/npm/node_modules/request/lib/hawk.js
deleted file mode 100644
index de48a98519c..00000000000
--- a/deps/npm/node_modules/request/lib/hawk.js
+++ /dev/null
@@ -1,89 +0,0 @@
-'use strict'
-
-var crypto = require('crypto')
-
-function randomString (size) {
- var bits = (size + 1) * 6
- var buffer = crypto.randomBytes(Math.ceil(bits / 8))
- var string = buffer.toString('base64').replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '')
- return string.slice(0, size)
-}
-
-function calculatePayloadHash (payload, algorithm, contentType) {
- var hash = crypto.createHash(algorithm)
- hash.update('hawk.1.payload\n')
- hash.update((contentType ? contentType.split(';')[0].trim().toLowerCase() : '') + '\n')
- hash.update(payload || '')
- hash.update('\n')
- return hash.digest('base64')
-}
-
-exports.calculateMac = function (credentials, opts) {
- var normalized = 'hawk.1.header\n' +
- opts.ts + '\n' +
- opts.nonce + '\n' +
- (opts.method || '').toUpperCase() + '\n' +
- opts.resource + '\n' +
- opts.host.toLowerCase() + '\n' +
- opts.port + '\n' +
- (opts.hash || '') + '\n'
-
- if (opts.ext) {
- normalized = normalized + opts.ext.replace('\\', '\\\\').replace('\n', '\\n')
- }
-
- normalized = normalized + '\n'
-
- if (opts.app) {
- normalized = normalized + opts.app + '\n' + (opts.dlg || '') + '\n'
- }
-
- var hmac = crypto.createHmac(credentials.algorithm, credentials.key).update(normalized)
- var digest = hmac.digest('base64')
- return digest
-}
-
-exports.header = function (uri, method, opts) {
- var timestamp = opts.timestamp || Math.floor((Date.now() + (opts.localtimeOffsetMsec || 0)) / 1000)
- var credentials = opts.credentials
- if (!credentials || !credentials.id || !credentials.key || !credentials.algorithm) {
- return ''
- }
-
- if (['sha1', 'sha256'].indexOf(credentials.algorithm) === -1) {
- return ''
- }
-
- var artifacts = {
- ts: timestamp,
- nonce: opts.nonce || randomString(6),
- method: method,
- resource: uri.pathname + (uri.search || ''),
- host: uri.hostname,
- port: uri.port || (uri.protocol === 'http:' ? 80 : 443),
- hash: opts.hash,
- ext: opts.ext,
- app: opts.app,
- dlg: opts.dlg
- }
-
- if (!artifacts.hash && (opts.payload || opts.payload === '')) {
- artifacts.hash = calculatePayloadHash(opts.payload, credentials.algorithm, opts.contentType)
- }
-
- var mac = exports.calculateMac(credentials, artifacts)
-
- var hasExt = artifacts.ext !== null && artifacts.ext !== undefined && artifacts.ext !== ''
- var header = 'Hawk id="' + credentials.id +
- '", ts="' + artifacts.ts +
- '", nonce="' + artifacts.nonce +
- (artifacts.hash ? '", hash="' + artifacts.hash : '') +
- (hasExt ? '", ext="' + artifacts.ext.replace(/\\/g, '\\\\').replace(/"/g, '\\"') : '') +
- '", mac="' + mac + '"'
-
- if (artifacts.app) {
- header = header + ', app="' + artifacts.app + (artifacts.dlg ? '", dlg="' + artifacts.dlg : '') + '"'
- }
-
- return header
-}
diff --git a/deps/npm/node_modules/request/lib/helpers.js b/deps/npm/node_modules/request/lib/helpers.js
deleted file mode 100644
index 8b2a7e6ebf3..00000000000
--- a/deps/npm/node_modules/request/lib/helpers.js
+++ /dev/null
@@ -1,66 +0,0 @@
-'use strict'
-
-var jsonSafeStringify = require('json-stringify-safe')
-var crypto = require('crypto')
-var Buffer = require('safe-buffer').Buffer
-
-var defer = typeof setImmediate === 'undefined'
- ? process.nextTick
- : setImmediate
-
-function paramsHaveRequestBody (params) {
- return (
- params.body ||
- params.requestBodyStream ||
- (params.json && typeof params.json !== 'boolean') ||
- params.multipart
- )
-}
-
-function safeStringify (obj, replacer) {
- var ret
- try {
- ret = JSON.stringify(obj, replacer)
- } catch (e) {
- ret = jsonSafeStringify(obj, replacer)
- }
- return ret
-}
-
-function md5 (str) {
- return crypto.createHash('md5').update(str).digest('hex')
-}
-
-function isReadStream (rs) {
- return rs.readable && rs.path && rs.mode
-}
-
-function toBase64 (str) {
- return Buffer.from(str || '', 'utf8').toString('base64')
-}
-
-function copy (obj) {
- var o = {}
- Object.keys(obj).forEach(function (i) {
- o[i] = obj[i]
- })
- return o
-}
-
-function version () {
- var numbers = process.version.replace('v', '').split('.')
- return {
- major: parseInt(numbers[0], 10),
- minor: parseInt(numbers[1], 10),
- patch: parseInt(numbers[2], 10)
- }
-}
-
-exports.paramsHaveRequestBody = paramsHaveRequestBody
-exports.safeStringify = safeStringify
-exports.md5 = md5
-exports.isReadStream = isReadStream
-exports.toBase64 = toBase64
-exports.copy = copy
-exports.version = version
-exports.defer = defer
diff --git a/deps/npm/node_modules/request/lib/multipart.js b/deps/npm/node_modules/request/lib/multipart.js
deleted file mode 100644
index 6a009bc1301..00000000000
--- a/deps/npm/node_modules/request/lib/multipart.js
+++ /dev/null
@@ -1,112 +0,0 @@
-'use strict'
-
-var uuid = require('uuid/v4')
-var CombinedStream = require('combined-stream')
-var isstream = require('isstream')
-var Buffer = require('safe-buffer').Buffer
-
-function Multipart (request) {
- this.request = request
- this.boundary = uuid()
- this.chunked = false
- this.body = null
-}
-
-Multipart.prototype.isChunked = function (options) {
- var self = this
- var chunked = false
- var parts = options.data || options
-
- if (!parts.forEach) {
- self.request.emit('error', new Error('Argument error, options.multipart.'))
- }
-
- if (options.chunked !== undefined) {
- chunked = options.chunked
- }
-
- if (self.request.getHeader('transfer-encoding') === 'chunked') {
- chunked = true
- }
-
- if (!chunked) {
- parts.forEach(function (part) {
- if (typeof part.body === 'undefined') {
- self.request.emit('error', new Error('Body attribute missing in multipart.'))
- }
- if (isstream(part.body)) {
- chunked = true
- }
- })
- }
-
- return chunked
-}
-
-Multipart.prototype.setHeaders = function (chunked) {
- var self = this
-
- if (chunked && !self.request.hasHeader('transfer-encoding')) {
- self.request.setHeader('transfer-encoding', 'chunked')
- }
-
- var header = self.request.getHeader('content-type')
-
- if (!header || header.indexOf('multipart') === -1) {
- self.request.setHeader('content-type', 'multipart/related; boundary=' + self.boundary)
- } else {
- if (header.indexOf('boundary') !== -1) {
- self.boundary = header.replace(/.*boundary=([^\s;]+).*/, '$1')
- } else {
- self.request.setHeader('content-type', header + '; boundary=' + self.boundary)
- }
- }
-}
-
-Multipart.prototype.build = function (parts, chunked) {
- var self = this
- var body = chunked ? new CombinedStream() : []
-
- function add (part) {
- if (typeof part === 'number') {
- part = part.toString()
- }
- return chunked ? body.append(part) : body.push(Buffer.from(part))
- }
-
- if (self.request.preambleCRLF) {
- add('\r\n')
- }
-
- parts.forEach(function (part) {
- var preamble = '--' + self.boundary + '\r\n'
- Object.keys(part).forEach(function (key) {
- if (key === 'body') { return }
- preamble += key + ': ' + part[key] + '\r\n'
- })
- preamble += '\r\n'
- add(preamble)
- add(part.body)
- add('\r\n')
- })
- add('--' + self.boundary + '--')
-
- if (self.request.postambleCRLF) {
- add('\r\n')
- }
-
- return body
-}
-
-Multipart.prototype.onRequest = function (options) {
- var self = this
-
- var chunked = self.isChunked(options)
- var parts = options.data || options
-
- self.setHeaders(chunked)
- self.chunked = chunked
- self.body = self.build(parts, chunked)
-}
-
-exports.Multipart = Multipart
diff --git a/deps/npm/node_modules/request/lib/oauth.js b/deps/npm/node_modules/request/lib/oauth.js
deleted file mode 100644
index 96de72b8e5f..00000000000
--- a/deps/npm/node_modules/request/lib/oauth.js
+++ /dev/null
@@ -1,148 +0,0 @@
-'use strict'
-
-var url = require('url')
-var qs = require('qs')
-var caseless = require('caseless')
-var uuid = require('uuid/v4')
-var oauth = require('oauth-sign')
-var crypto = require('crypto')
-var Buffer = require('safe-buffer').Buffer
-
-function OAuth (request) {
- this.request = request
- this.params = null
-}
-
-OAuth.prototype.buildParams = function (_oauth, uri, method, query, form, qsLib) {
- var oa = {}
- for (var i in _oauth) {
- oa['oauth_' + i] = _oauth[i]
- }
- if (!oa.oauth_version) {
- oa.oauth_version = '1.0'
- }
- if (!oa.oauth_timestamp) {
- oa.oauth_timestamp = Math.floor(Date.now() / 1000).toString()
- }
- if (!oa.oauth_nonce) {
- oa.oauth_nonce = uuid().replace(/-/g, '')
- }
- if (!oa.oauth_signature_method) {
- oa.oauth_signature_method = 'HMAC-SHA1'
- }
-
- var consumer_secret_or_private_key = oa.oauth_consumer_secret || oa.oauth_private_key // eslint-disable-line camelcase
- delete oa.oauth_consumer_secret
- delete oa.oauth_private_key
-
- var token_secret = oa.oauth_token_secret // eslint-disable-line camelcase
- delete oa.oauth_token_secret
-
- var realm = oa.oauth_realm
- delete oa.oauth_realm
- delete oa.oauth_transport_method
-
- var baseurl = uri.protocol + '//' + uri.host + uri.pathname
- var params = qsLib.parse([].concat(query, form, qsLib.stringify(oa)).join('&'))
-
- oa.oauth_signature = oauth.sign(
- oa.oauth_signature_method,
- method,
- baseurl,
- params,
- consumer_secret_or_private_key, // eslint-disable-line camelcase
- token_secret // eslint-disable-line camelcase
- )
-
- if (realm) {
- oa.realm = realm
- }
-
- return oa
-}
-
-OAuth.prototype.buildBodyHash = function (_oauth, body) {
- if (['HMAC-SHA1', 'RSA-SHA1'].indexOf(_oauth.signature_method || 'HMAC-SHA1') < 0) {
- this.request.emit('error', new Error('oauth: ' + _oauth.signature_method +
- ' signature_method not supported with body_hash signing.'))
- }
-
- var shasum = crypto.createHash('sha1')
- shasum.update(body || '')
- var sha1 = shasum.digest('hex')
-
- return Buffer.from(sha1, 'hex').toString('base64')
-}
-
-OAuth.prototype.concatParams = function (oa, sep, wrap) {
- wrap = wrap || ''
-
- var params = Object.keys(oa).filter(function (i) {
- return i !== 'realm' && i !== 'oauth_signature'
- }).sort()
-
- if (oa.realm) {
- params.splice(0, 0, 'realm')
- }
- params.push('oauth_signature')
-
- return params.map(function (i) {
- return i + '=' + wrap + oauth.rfc3986(oa[i]) + wrap
- }).join(sep)
-}
-
-OAuth.prototype.onRequest = function (_oauth) {
- var self = this
- self.params = _oauth
-
- var uri = self.request.uri || {}
- var method = self.request.method || ''
- var headers = caseless(self.request.headers)
- var body = self.request.body || ''
- var qsLib = self.request.qsLib || qs
-
- var form
- var query
- var contentType = headers.get('content-type') || ''
- var formContentType = 'application/x-www-form-urlencoded'
- var transport = _oauth.transport_method || 'header'
-
- if (contentType.slice(0, formContentType.length) === formContentType) {
- contentType = formContentType
- form = body
- }
- if (uri.query) {
- query = uri.query
- }
- if (transport === 'body' && (method !== 'POST' || contentType !== formContentType)) {
- self.request.emit('error', new Error('oauth: transport_method of body requires POST ' +
- 'and content-type ' + formContentType))
- }
-
- if (!form && typeof _oauth.body_hash === 'boolean') {
- _oauth.body_hash = self.buildBodyHash(_oauth, self.request.body.toString())
- }
-
- var oa = self.buildParams(_oauth, uri, method, query, form, qsLib)
-
- switch (transport) {
- case 'header':
- self.request.setHeader('Authorization', 'OAuth ' + self.concatParams(oa, ',', '"'))
- break
-
- case 'query':
- var href = self.request.uri.href += (query ? '&' : '?') + self.concatParams(oa, '&')
- self.request.uri = url.parse(href)
- self.request.path = self.request.uri.path
- break
-
- case 'body':
- self.request.body = (form ? form + '&' : '') + self.concatParams(oa, '&')
- break
-
- default:
- self.request.emit('error', new Error('oauth: transport_method invalid'))
- }
-}
-
-exports.OAuth = OAuth
diff --git a/deps/npm/node_modules/request/lib/querystring.js b/deps/npm/node_modules/request/lib/querystring.js
deleted file mode 100644
index 4a32cd1491a..00000000000
--- a/deps/npm/node_modules/request/lib/querystring.js
+++ /dev/null
@@ -1,50 +0,0 @@
-'use strict'
-
-var qs = require('qs')
-var querystring = require('querystring')
-
-function Querystring (request) {
- this.request = request
- this.lib = null
- this.useQuerystring = null
- this.parseOptions = null
- this.stringifyOptions = null
-}
-
-Querystring.prototype.init = function (options) {
- if (this.lib) { return }
-
- this.useQuerystring = options.useQuerystring
- this.lib = (this.useQuerystring ? querystring : qs)
-
- this.parseOptions = options.qsParseOptions || {}
- this.stringifyOptions = options.qsStringifyOptions || {}
-}
-
-Querystring.prototype.stringify = function (obj) {
- return (this.useQuerystring)
- ? this.rfc3986(this.lib.stringify(obj,
- this.stringifyOptions.sep || null,
- this.stringifyOptions.eq || null,
- this.stringifyOptions))
- : this.lib.stringify(obj, this.stringifyOptions)
-}
-
-Querystring.prototype.parse = function (str) {
- return (this.useQuerystring)
- ? this.lib.parse(str,
- this.parseOptions.sep || null,
- this.parseOptions.eq || null,
- this.parseOptions)
- : this.lib.parse(str, this.parseOptions)
-}
-
-Querystring.prototype.rfc3986 = function (str) {
- return str.replace(/[!'()*]/g, function (c) {
- return '%' + c.charCodeAt(0).toString(16).toUpperCase()
- })
-}
-
-Querystring.prototype.unescape = querystring.unescape
-
-exports.Querystring = Querystring
diff --git a/deps/npm/node_modules/request/lib/redirect.js b/deps/npm/node_modules/request/lib/redirect.js
deleted file mode 100644
index b9150e77c73..00000000000
--- a/deps/npm/node_modules/request/lib/redirect.js
+++ /dev/null
@@ -1,154 +0,0 @@
-'use strict'
-
-var url = require('url')
-var isUrl = /^https?:/
-
-function Redirect (request) {
- this.request = request
- this.followRedirect = true
- this.followRedirects = true
- this.followAllRedirects = false
- this.followOriginalHttpMethod = false
- this.allowRedirect = function () { return true }
- this.maxRedirects = 10
- this.redirects = []
- this.redirectsFollowed = 0
- this.removeRefererHeader = false
-}
-
-Redirect.prototype.onRequest = function (options) {
- var self = this
-
- if (options.maxRedirects !== undefined) {
- self.maxRedirects = options.maxRedirects
- }
- if (typeof options.followRedirect === 'function') {
- self.allowRedirect = options.followRedirect
- }
- if (options.followRedirect !== undefined) {
- self.followRedirects = !!options.followRedirect
- }
- if (options.followAllRedirects !== undefined) {
- self.followAllRedirects = options.followAllRedirects
- }
- if (self.followRedirects || self.followAllRedirects) {
- self.redirects = self.redirects || []
- }
- if (options.removeRefererHeader !== undefined) {
- self.removeRefererHeader = options.removeRefererHeader
- }
- if (options.followOriginalHttpMethod !== undefined) {
- self.followOriginalHttpMethod = options.followOriginalHttpMethod
- }
-}
-
-Redirect.prototype.redirectTo = function (response) {
- var self = this
- var request = self.request
-
- var redirectTo = null
- if (response.statusCode >= 300 && response.statusCode < 400 && response.caseless.has('location')) {
- var location = response.caseless.get('location')
- request.debug('redirect', location)
-
- if (self.followAllRedirects) {
- redirectTo = location
- } else if (self.followRedirects) {
- switch (request.method) {
- case 'PATCH':
- case 'PUT':
- case 'POST':
- case 'DELETE':
- // Do not follow redirects
- break
- default:
- redirectTo = location
- break
- }
- }
- } else if (response.statusCode === 401) {
- var authHeader = request._auth.onResponse(response)
- if (authHeader) {
- request.setHeader('authorization', authHeader)
- redirectTo = request.uri
- }
- }
- return redirectTo
-}
-
-Redirect.prototype.onResponse = function (response) {
- var self = this
- var request = self.request
-
- var redirectTo = self.redirectTo(response)
- if (!redirectTo || !self.allowRedirect.call(request, response)) {
- return false
- }
-
- request.debug('redirect to', redirectTo)
-
- // ignore any potential response body. it cannot possibly be useful
- // to us at this point.
- // response.resume should be defined, but check anyway before calling. Workaround for browserify.
- if (response.resume) {
- response.resume()
- }
-
- if (self.redirectsFollowed >= self.maxRedirects) {
- request.emit('error', new Error('Exceeded maxRedirects. Probably stuck in a redirect loop ' + request.uri.href))
- return false
- }
- self.redirectsFollowed += 1
-
- if (!isUrl.test(redirectTo)) {
- redirectTo = url.resolve(request.uri.href, redirectTo)
- }
-
- var uriPrev = request.uri
- request.uri = url.parse(redirectTo)
-
- // handle the case where we change protocol from https to http or vice versa
- if (request.uri.protocol !== uriPrev.protocol) {
- delete request.agent
- }
-
- self.redirects.push({ statusCode: response.statusCode, redirectUri: redirectTo })
-
- if (self.followAllRedirects && request.method !== 'HEAD' &&
- response.statusCode !== 401 && response.statusCode !== 307) {
- request.method = self.followOriginalHttpMethod ? request.method : 'GET'
- }
- // request.method = 'GET' // Force all redirects to use GET || commented out fixes #215
- delete request.src
- delete request.req
- delete request._started
- if (response.statusCode !== 401 && response.statusCode !== 307) {
- // Remove parameters from the previous response, unless this is the second request
- // for a server that requires digest authentication.
- delete request.body
- delete request._form
- if (request.headers) {
- request.removeHeader('host')
- request.removeHeader('content-type')
- request.removeHeader('content-length')
- if (request.uri.hostname !== request.originalHost.split(':')[0]) {
- // Remove authorization if changing hostnames (but not if just
- // changing ports or protocols). This matches the behavior of curl:
- // https://github.com/bagder/curl/blob/6beb0eee/lib/http.c#L710
- request.removeHeader('authorization')
- }
- }
- }
-
- if (!self.removeRefererHeader) {
- request.setHeader('referer', uriPrev.href)
- }
-
- request.emit('redirect')
-
- request.init()
-
- return true
-}
-
-exports.Redirect = Redirect
diff --git a/deps/npm/node_modules/request/lib/tunnel.js b/deps/npm/node_modules/request/lib/tunnel.js
deleted file mode 100644
index 4479003f694..00000000000
--- a/deps/npm/node_modules/request/lib/tunnel.js
+++ /dev/null
@@ -1,175 +0,0 @@
-'use strict'
-
-var url = require('url')
-var tunnel = require('tunnel-agent')
-
-var defaultProxyHeaderWhiteList = [
- 'accept',
- 'accept-charset',
- 'accept-encoding',
- 'accept-language',
- 'accept-ranges',
- 'cache-control',
- 'content-encoding',
- 'content-language',
- 'content-location',
- 'content-md5',
- 'content-range',
- 'content-type',
- 'connection',
- 'date',
- 'expect',
- 'max-forwards',
- 'pragma',
- 'referer',
- 'te',
- 'user-agent',
- 'via'
-]
-
-var defaultProxyHeaderExclusiveList = [
- 'proxy-authorization'
-]
-
-function constructProxyHost (uriObject) {
- var port = uriObject.port
- var protocol = uriObject.protocol
- var proxyHost = uriObject.hostname + ':'
-
- if (port) {
- proxyHost += port
- } else if (protocol === 'https:') {
- proxyHost += '443'
- } else {
- proxyHost += '80'
- }
-
- return proxyHost
-}
-
-function constructProxyHeaderWhiteList (headers, proxyHeaderWhiteList) {
- var whiteList = proxyHeaderWhiteList
- .reduce(function (set, header) {
- set[header.toLowerCase()] = true
- return set
- }, {})
-
- return Object.keys(headers)
- .filter(function (header) {
- return whiteList[header.toLowerCase()]
- })
- .reduce(function (set, header) {
- set[header] = headers[header]
- return set
- }, {})
-}
-
-function constructTunnelOptions (request, proxyHeaders) {
- var proxy = request.proxy
-
- var tunnelOptions = {
- proxy: {
- host: proxy.hostname,
- port: +proxy.port,
- proxyAuth: proxy.auth,
- headers: proxyHeaders
- },
- headers: request.headers,
- ca: request.ca,
- cert: request.cert,
- key: request.key,
- passphrase: request.passphrase,
- pfx: request.pfx,
- ciphers: request.ciphers,
- rejectUnauthorized: request.rejectUnauthorized,
- secureOptions: request.secureOptions,
- secureProtocol: request.secureProtocol
- }
-
- return tunnelOptions
-}
-
-function constructTunnelFnName (uri, proxy) {
- var uriProtocol = (uri.protocol === 'https:' ? 'https' : 'http')
- var proxyProtocol = (proxy.protocol === 'https:' ? 'Https' : 'Http')
- return [uriProtocol, proxyProtocol].join('Over')
-}
-
-function getTunnelFn (request) {
- var uri = request.uri
- var proxy = request.proxy
- var tunnelFnName = constructTunnelFnName(uri, proxy)
- return tunnel[tunnelFnName]
-}
-
-function Tunnel (request) {
- this.request = request
- this.proxyHeaderWhiteList = defaultProxyHeaderWhiteList
- this.proxyHeaderExclusiveList = []
- if (typeof request.tunnel !== 'undefined') {
- this.tunnelOverride = request.tunnel
- }
-}
-
-Tunnel.prototype.isEnabled = function () {
- var self = this
- var request = self.request
- // Tunnel HTTPS by default. Allow the user to override this setting.
-
- // If self.tunnelOverride is set (the user specified a value), use it.
- if (typeof self.tunnelOverride !== 'undefined') {
- return self.tunnelOverride
- }
-
- // If the destination is HTTPS, tunnel.
- if (request.uri.protocol === 'https:') {
- return true
- }
-
- // Otherwise, do not use tunnel.
- return false
-}
-
-Tunnel.prototype.setup = function (options) {
- var self = this
- var request = self.request
-
- options = options || {}
-
- if (typeof request.proxy === 'string') {
- request.proxy = url.parse(request.proxy)
- }
-
- if (!request.proxy || !request.tunnel) {
- return false
- }
-
- // Setup Proxy Header Exclusive List and White List
- if (options.proxyHeaderWhiteList) {
- self.proxyHeaderWhiteList = options.proxyHeaderWhiteList
- }
- if (options.proxyHeaderExclusiveList) {
- self.proxyHeaderExclusiveList = options.proxyHeaderExclusiveList
- }
-
- var proxyHeaderExclusiveList = self.proxyHeaderExclusiveList.concat(defaultProxyHeaderExclusiveList)
- var proxyHeaderWhiteList = self.proxyHeaderWhiteList.concat(proxyHeaderExclusiveList)
-
- // Setup Proxy Headers and Proxy Headers Host
- // Only send the Proxy White Listed Header names
- var proxyHeaders = constructProxyHeaderWhiteList(request.headers, proxyHeaderWhiteList)
- proxyHeaders.host = constructProxyHost(request.uri)
-
- proxyHeaderExclusiveList.forEach(request.removeHeader, request)
-
- // Set Agent from Tunnel Data
- var tunnelFn = getTunnelFn(request)
- var tunnelOptions = constructTunnelOptions(request, proxyHeaders)
- request.agent = tunnelFn(tunnelOptions)
-
- return true
-}
-
-Tunnel.defaultProxyHeaderWhiteList = defaultProxyHeaderWhiteList
-Tunnel.defaultProxyHeaderExclusiveList = defaultProxyHeaderExclusiveList
-exports.Tunnel = Tunnel
diff --git a/deps/npm/node_modules/request/node_modules/form-data/License b/deps/npm/node_modules/request/node_modules/form-data/License
deleted file mode 100644
index c7ff12a2f8a..00000000000
--- a/deps/npm/node_modules/request/node_modules/form-data/License
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2012 Felix Geisendörfer (felix@debuggable.com) and 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.
diff --git a/deps/npm/node_modules/request/node_modules/form-data/lib/browser.js b/deps/npm/node_modules/request/node_modules/form-data/lib/browser.js
deleted file mode 100644
index 09e7c70e6e9..00000000000
--- a/deps/npm/node_modules/request/node_modules/form-data/lib/browser.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/* eslint-env browser */
-module.exports = typeof self == 'object' ? self.FormData : window.FormData;
diff --git a/deps/npm/node_modules/request/node_modules/form-data/lib/form_data.js b/deps/npm/node_modules/request/node_modules/form-data/lib/form_data.js
deleted file mode 100644
index 3a1bb82b114..00000000000
--- a/deps/npm/node_modules/request/node_modules/form-data/lib/form_data.js
+++ /dev/null
@@ -1,457 +0,0 @@
-var CombinedStream = require('combined-stream');
-var util = require('util');
-var path = require('path');
-var http = require('http');
-var https = require('https');
-var parseUrl = require('url').parse;
-var fs = require('fs');
-var mime = require('mime-types');
-var asynckit = require('asynckit');
-var populate = require('./populate.js');
-
-// Public API
-module.exports = FormData;
-
-// make it a Stream
-util.inherits(FormData, CombinedStream);
-
-/**
- * Create readable "multipart/form-data" streams.
- * Can be used to submit forms
- * and file uploads to other web applications.
- *
- * @constructor
- * @param {Object} options - Properties to be added/overriden for FormData and CombinedStream
- */
-function FormData(options) {
- if (!(this instanceof FormData)) {
- return new FormData();
- }
-
- this._overheadLength = 0;
- this._valueLength = 0;
- this._valuesToMeasure = [];
-
- CombinedStream.call(this);
-
- options = options || {};
- for (var option in options) {
- this[option] = options[option];
- }
-}
-
-FormData.LINE_BREAK = '\r\n';
-FormData.DEFAULT_CONTENT_TYPE = 'application/octet-stream';
-
-FormData.prototype.append = function(field, value, options) {
-
- options = options || {};
-
- // allow filename as single option
- if (typeof options == 'string') {
- options = {filename: options};
- }
-
- var append = CombinedStream.prototype.append.bind(this);
-
- // all that streamy business can't handle numbers
- if (typeof value == 'number') {
- value = '' + value;
- }
-
- // https://github.com/felixge/node-form-data/issues/38
- if (util.isArray(value)) {
- // Please convert your array into string
- // the way web server expects it
- this._error(new Error('Arrays are not supported.'));
- return;
- }
-
- var header = this._multiPartHeader(field, value, options);
- var footer = this._multiPartFooter();
-
- append(header);
- append(value);
- append(footer);
-
- // pass along options.knownLength
- this._trackLength(header, value, options);
-};
-
-FormData.prototype._trackLength = function(header, value, options) {
- var valueLength = 0;
-
- // used w/ getLengthSync(), when length is known.
- // e.g. for streaming directly from a remote server,
- // w/ a known file a size, and not wanting to wait for
- // incoming file to finish to get its size.
- if (options.knownLength != null) {
- valueLength += +options.knownLength;
- } else if (Buffer.isBuffer(value)) {
- valueLength = value.length;
- } else if (typeof value === 'string') {
- valueLength = Buffer.byteLength(value);
- }
-
- this._valueLength += valueLength;
-
- // @check why add CRLF? does this account for custom/multiple CRLFs?
- this._overheadLength +=
- Buffer.byteLength(header) +
- FormData.LINE_BREAK.length;
-
- // empty or either doesn't have path or not an http response
- if (!value || ( !value.path && !(value.readable && value.hasOwnProperty('httpVersion')) )) {
- return;
- }
-
- // no need to bother with the length
- if (!options.knownLength) {
- this._valuesToMeasure.push(value);
- }
-};
-
-FormData.prototype._lengthRetriever = function(value, callback) {
-
- if (value.hasOwnProperty('fd')) {
-
- // take read range into a account
- // `end` = Infinity –> read file till the end
- //
- // TODO: Looks like there is bug in Node fs.createReadStream
- // it doesn't respect `end` options without `start` options
- // Fix it when node fixes it.
- // https://github.com/joyent/node/issues/7819
- if (value.end != undefined && value.end != Infinity && value.start != undefined) {
-
- // when end specified
- // no need to calculate range
- // inclusive, starts with 0
- callback(null, value.end + 1 - (value.start ? value.start : 0));
-
- // not that fast snoopy
- } else {
- // still need to fetch file size from fs
- fs.stat(value.path, function(err, stat) {
-
- var fileSize;
-
- if (err) {
- callback(err);
- return;
- }
-
- // update final size based on the range options
- fileSize = stat.size - (value.start ? value.start : 0);
- callback(null, fileSize);
- });
- }
-
- // or http response
- } else if (value.hasOwnProperty('httpVersion')) {
- callback(null, +value.headers['content-length']);
-
- // or request stream http://github.com/mikeal/request
- } else if (value.hasOwnProperty('httpModule')) {
- // wait till response come back
- value.on('response', function(response) {
- value.pause();
- callback(null, +response.headers['content-length']);
- });
- value.resume();
-
- // something else
- } else {
- callback('Unknown stream');
- }
-};
-
-FormData.prototype._multiPartHeader = function(field, value, options) {
- // custom header specified (as string)?
- // it becomes responsible for boundary
- // (e.g. to handle extra CRLFs on .NET servers)
- if (typeof options.header == 'string') {
- return options.header;
- }
-
- var contentDisposition = this._getContentDisposition(value, options);
- var contentType = this._getContentType(value, options);
-
- var contents = '';
- var headers = {
- // add custom disposition as third element or keep it two elements if not
- 'Content-Disposition': ['form-data', 'name="' + field + '"'].concat(contentDisposition || []),
- // if no content type. allow it to be empty array
- 'Content-Type': [].concat(contentType || [])
- };
-
- // allow custom headers.
- if (typeof options.header == 'object') {
- populate(headers, options.header);
- }
-
- var header;
- for (var prop in headers) {
- if (!headers.hasOwnProperty(prop)) continue;
- header = headers[prop];
-
- // skip nullish headers.
- if (header == null) {
- continue;
- }
-
- // convert all headers to arrays.
- if (!Array.isArray(header)) {
- header = [header];
- }
-
- // add non-empty headers.
- if (header.length) {
- contents += prop + ': ' + header.join('; ') + FormData.LINE_BREAK;
- }
- }
-
- return '--' + this.getBoundary() + FormData.LINE_BREAK + contents + FormData.LINE_BREAK;
-};
-
-FormData.prototype._getContentDisposition = function(value, options) {
-
- var filename
- , contentDisposition
- ;
-
- if (typeof options.filepath === 'string') {
- // custom filepath for relative paths
- filename = path.normalize(options.filepath).replace(/\\/g, '/');
- } else if (options.filename || value.name || value.path) {
- // custom filename take precedence
- // formidable and the browser add a name property
- // fs- and request- streams have path property
- filename = path.basename(options.filename || value.name || value.path);
- } else if (value.readable && value.hasOwnProperty('httpVersion')) {
- // or try http response
- filename = path.basename(value.client._httpMessage.path);
- }
-
- if (filename) {
- contentDisposition = 'filename="' + filename + '"';
- }
-
- return contentDisposition;
-};
-
-FormData.prototype._getContentType = function(value, options) {
-
- // use custom content-type above all
- var contentType = options.contentType;
-
- // or try `name` from formidable, browser
- if (!contentType && value.name) {
- contentType = mime.lookup(value.name);
- }
-
- // or try `path` from fs-, request- streams
- if (!contentType && value.path) {
- contentType = mime.lookup(value.path);
- }
-
- // or if it's http-reponse
- if (!contentType && value.readable && value.hasOwnProperty('httpVersion')) {
- contentType = value.headers['content-type'];
- }
-
- // or guess it from the filepath or filename
- if (!contentType && (options.filepath || options.filename)) {
- contentType = mime.lookup(options.filepath || options.filename);
- }
-
- // fallback to the default content type if `value` is not simple value
- if (!contentType && typeof value == 'object') {
- contentType = FormData.DEFAULT_CONTENT_TYPE;
- }
-
- return contentType;
-};
-
-FormData.prototype._multiPartFooter = function() {
- return function(next) {
- var footer = FormData.LINE_BREAK;
-
- var lastPart = (this._streams.length === 0);
- if (lastPart) {
- footer += this._lastBoundary();
- }
-
- next(footer);
- }.bind(this);
-};
-
-FormData.prototype._lastBoundary = function() {
- return '--' + this.getBoundary() + '--' + FormData.LINE_BREAK;
-};
-
-FormData.prototype.getHeaders = function(userHeaders) {
- var header;
- var formHeaders = {
- 'content-type': 'multipart/form-data; boundary=' + this.getBoundary()
- };
-
- for (header in userHeaders) {
- if (userHeaders.hasOwnProperty(header)) {
- formHeaders[header.toLowerCase()] = userHeaders[header];
- }
- }
-
- return formHeaders;
-};
-
-FormData.prototype.getBoundary = function() {
- if (!this._boundary) {
- this._generateBoundary();
- }
-
- return this._boundary;
-};
-
-FormData.prototype._generateBoundary = function() {
- // This generates a 50 character boundary similar to those used by Firefox.
- // They are optimized for boyer-moore parsing.
- var boundary = '--------------------------';
- for (var i = 0; i < 24; i++) {
- boundary += Math.floor(Math.random() * 10).toString(16);
- }
-
- this._boundary = boundary;
-};
-
-// Note: getLengthSync DOESN'T calculate streams length
-// As workaround one can calculate file size manually
-// and add it as knownLength option
-FormData.prototype.getLengthSync = function() {
- var knownLength = this._overheadLength + this._valueLength;
-
- // Don't get confused, there are 3 "internal" streams for each keyval pair
- // so it basically checks if there is any value added to the form
- if (this._streams.length) {
- knownLength += this._lastBoundary().length;
- }
-
- // https://github.com/form-data/form-data/issues/40
- if (!this.hasKnownLength()) {
- // Some async length retrievers are present
- // therefore synchronous length calculation is false.
- // Please use getLength(callback) to get proper length
- this._error(new Error('Cannot calculate proper length in synchronous way.'));
- }
-
- return knownLength;
-};
-
-// Public API to check if length of added values is known
-// https://github.com/form-data/form-data/issues/196
-// https://github.com/form-data/form-data/issues/262
-FormData.prototype.hasKnownLength = function() {
- var hasKnownLength = true;
-
- if (this._valuesToMeasure.length) {
- hasKnownLength = false;
- }
-
- return hasKnownLength;
-};
-
-FormData.prototype.getLength = function(cb) {
- var knownLength = this._overheadLength + this._valueLength;
-
- if (this._streams.length) {
- knownLength += this._lastBoundary().length;
- }
-
- if (!this._valuesToMeasure.length) {
- process.nextTick(cb.bind(this, null, knownLength));
- return;
- }
-
- asynckit.parallel(this._valuesToMeasure, this._lengthRetriever, function(err, values) {
- if (err) {
- cb(err);
- return;
- }
-
- values.forEach(function(length) {
- knownLength += length;
- });
-
- cb(null, knownLength);
- });
-};
-
-FormData.prototype.submit = function(params, cb) {
- var request
- , options
- , defaults = {method: 'post'}
- ;
-
- // parse provided url if it's string
- // or treat it as options object
- if (typeof params == 'string') {
-
- params = parseUrl(params);
- options = populate({
- port: params.port,
- path: params.pathname,
- host: params.hostname,
- protocol: params.protocol
- }, defaults);
-
- // use custom params
- } else {
-
- options = populate(params, defaults);
- // if no port provided use default one
- if (!options.port) {
- options.port = options.protocol == 'https:' ? 443 : 80;
- }
- }
-
- // put that good code in getHeaders to some use
- options.headers = this.getHeaders(params.headers);
-
- // https if specified, fallback to http in any other case
- if (options.protocol == 'https:') {
- request = https.request(options);
- } else {
- request = http.request(options);
- }
-
- // get content length and fire away
- this.getLength(function(err, length) {
- if (err) {
- this._error(err);
- return;
- }
-
- // add content length
- request.setHeader('Content-Length', length);
-
- this.pipe(request);
- if (cb) {
- request.on('error', cb);
- request.on('response', cb.bind(this, null));
- }
- }.bind(this));
-
- return request;
-};
-
-FormData.prototype._error = function(err) {
- if (!this.error) {
- this.error = err;
- this.pause();
- this.emit('error', err);
- }
-};
-
-FormData.prototype.toString = function () {
- return '[object FormData]';
-};
diff --git a/deps/npm/node_modules/request/node_modules/form-data/lib/populate.js b/deps/npm/node_modules/request/node_modules/form-data/lib/populate.js
deleted file mode 100644
index 4d35738dd50..00000000000
--- a/deps/npm/node_modules/request/node_modules/form-data/lib/populate.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// populates missing values
-module.exports = function(dst, src) {
-
- Object.keys(src).forEach(function(prop)
- {
- dst[prop] = dst[prop] || src[prop];
- });
-
- return dst;
-};
diff --git a/deps/npm/node_modules/request/node_modules/form-data/package.json b/deps/npm/node_modules/request/node_modules/form-data/package.json
deleted file mode 100644
index adacbae78f2..00000000000
--- a/deps/npm/node_modules/request/node_modules/form-data/package.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "author": "Felix Geisendörfer <felix@debuggable.com> (http://debuggable.com/)",
- "name": "form-data",
- "description": "A library to create readable \"multipart/form-data\" streams. Can be used to submit forms and file uploads to other web applications.",
- "version": "2.3.3",
- "repository": {
- "type": "git",
- "url": "git://github.com/form-data/form-data.git"
- },
- "main": "./lib/form_data",
- "browser": "./lib/browser",
- "scripts": {
- "pretest": "rimraf coverage test/tmp",
- "test": "istanbul cover test/run.js",
- "posttest": "istanbul report lcov text",
- "lint": "eslint lib/*.js test/*.js test/integration/*.js",
- "report": "istanbul report lcov text",
- "ci-lint": "is-node-modern 6 && npm run lint || is-node-not-modern 6",
- "ci-test": "npm run test && npm run browser && npm run report",
- "predebug": "rimraf coverage test/tmp",
- "debug": "verbose=1 ./test/run.js",
- "browser": "browserify -t browserify-istanbul test/run-browser.js | obake --coverage",
- "check": "istanbul check-coverage coverage/coverage*.json",
- "files": "pkgfiles --sort=name",
- "get-version": "node -e \"console.log(require('./package.json').version)\"",
- "update-readme": "sed -i.bak 's/\\/master\\.svg/\\/v'$(npm --silent run get-version)'.svg/g' README.md",
- "restore-readme": "mv README.md.bak README.md",
- "prepublish": "in-publish && npm run update-readme || not-in-publish",
- "postpublish": "npm run restore-readme"
- },
- "pre-commit": [
- "lint",
- "ci-test",
- "check"
- ],
- "engines": {
- "node": ">= 0.12"
- },
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.6",
- "mime-types": "^2.1.12"
- },
- "devDependencies": {
- "browserify": "^13.1.1",
- "browserify-istanbul": "^2.0.0",
- "coveralls": "^2.11.14",
- "cross-spawn": "^4.0.2",
- "eslint": "^3.9.1",
- "fake": "^0.2.2",
- "far": "^0.0.7",
- "formidable": "^1.0.17",
- "in-publish": "^2.0.0",
- "is-node-modern": "^1.0.0",
- "istanbul": "^0.4.5",
- "obake": "^0.1.2",
- "phantomjs-prebuilt": "^2.1.13",
- "pkgfiles": "^2.3.0",
- "pre-commit": "^1.1.3",
- "request": "2.76.0",
- "rimraf": "^2.5.4",
- "tape": "^4.6.2"
- },
- "license": "MIT"
-}
diff --git a/deps/npm/node_modules/request/node_modules/form-data/yarn.lock b/deps/npm/node_modules/request/node_modules/form-data/yarn.lock
deleted file mode 100644
index ab55059c10e..00000000000
--- a/deps/npm/node_modules/request/node_modules/form-data/yarn.lock
+++ /dev/null
@@ -1,2662 +0,0 @@
-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
-# yarn lockfile v1
-
-
-JSONStream@^1.0.3:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.2.tgz#c102371b6ec3a7cf3b847ca00c20bb0fce4c6dea"
- dependencies:
- jsonparse "^1.2.0"
- through ">=2.2.7 <3"
-
-abbrev@1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
-
-abbrev@1.0.x:
- version "1.0.9"
- resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135"
-
-acorn-jsx@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b"
- dependencies:
- acorn "^3.0.4"
-
-acorn-node@^1.2.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.3.0.tgz#5f86d73346743810ef1269b901dbcbded020861b"
- dependencies:
- acorn "^5.4.1"
- xtend "^4.0.1"
-
-acorn@^3.0.4:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
-
-acorn@^4.0.3:
- version "4.0.13"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787"
-
-acorn@^5.2.1, acorn@^5.4.0, acorn@^5.4.1:
- version "5.4.1"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.4.1.tgz#fdc58d9d17f4a4e98d102ded826a9b9759125102"
-
-ajv-keywords@^1.0.0:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
-
-ajv@^4.7.0:
- version "4.11.8"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
- dependencies:
- co "^4.6.0"
- json-stable-stringify "^1.0.1"
-
-ajv@^5.1.0:
- version "5.5.2"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
- dependencies:
- co "^4.6.0"
- fast-deep-equal "^1.0.0"
- fast-json-stable-stringify "^2.0.0"
- json-schema-traverse "^0.3.0"
-
-align-text@^0.1.1, align-text@^0.1.3:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
- dependencies:
- kind-of "^3.0.2"
- longest "^1.0.1"
- repeat-string "^1.5.2"
-
-amdefine@>=0.0.4:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
-
-ansi-escapes@^1.1.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
-
-ansi-regex@^2.0.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
-
-ansi-regex@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
-
-ansi-styles@^2.2.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
-
-argparse@^1.0.7:
- version "1.0.9"
- resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86"
- dependencies:
- sprintf-js "~1.0.2"
-
-array-filter@~0.0.0:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec"
-
-array-map@~0.0.0:
- version "0.0.0"
- resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662"
-
-array-reduce@~0.0.0:
- version "0.0.0"
- resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b"
-
-array-union@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
- dependencies:
- array-uniq "^1.0.1"
-
-array-uniq@^1.0.1:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
-
-arrify@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
-
-asn1.js@^4.0.0:
- version "4.9.2"
- resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.2.tgz#8117ef4f7ed87cd8f89044b5bff97ac243a16c9a"
- dependencies:
- bn.js "^4.0.0"
- inherits "^2.0.1"
- minimalistic-assert "^1.0.0"
-
-asn1@~0.2.3:
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
-
-assert-plus@1.0.0, assert-plus@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
-
-assert-plus@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234"
-
-assert@^1.4.0:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91"
- dependencies:
- util "0.10.3"
-
-astw@^2.0.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/astw/-/astw-2.2.0.tgz#7bd41784d32493987aeb239b6b4e1c57a873b917"
- dependencies:
- acorn "^4.0.3"
-
-async@1.x, async@^1.4.0:
- version "1.5.2"
- resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
-
-async@~0.1.22:
- version "0.1.22"
- resolved "https://registry.yarnpkg.com/async/-/async-0.1.22.tgz#0fc1aaa088a0e3ef0ebe2d8831bab0dcf8845061"
-
-asynckit@^0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
-
-aws-sign2@~0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
-
-aws-sign2@~0.7.0:
- version "0.7.0"
- resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
-
-aws4@^1.2.1, aws4@^1.6.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
-
-babel-code-frame@^6.16.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
- dependencies:
- chalk "^1.1.3"
- esutils "^2.0.2"
- js-tokens "^3.0.2"
-
-balanced-match@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
-
-base64-js@^1.0.2:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886"
-
-bcrypt-pbkdf@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
- dependencies:
- tweetnacl "^0.14.3"
-
-bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
- version "4.11.8"
- resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
-
-boom@2.x.x:
- version "2.10.1"
- resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f"
- dependencies:
- hoek "2.x.x"
-
-boom@4.x.x:
- version "4.3.1"
- resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31"
- dependencies:
- hoek "4.x.x"
-
-boom@5.x.x:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02"
- dependencies:
- hoek "4.x.x"
-
-brace-expansion@^1.1.7:
- version "1.1.11"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
- dependencies:
- balanced-match "^1.0.0"
- concat-map "0.0.1"
-
-brorand@^1.0.1:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
-
-browser-pack@^6.0.1:
- version "6.0.4"
- resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.0.4.tgz#9a73beb3b48f9e36868be007b64400102c04a99f"
- dependencies:
- JSONStream "^1.0.3"
- combine-source-map "~0.8.0"
- defined "^1.0.0"
- safe-buffer "^5.1.1"
- through2 "^2.0.0"
- umd "^3.0.0"
-
-browser-resolve@^1.11.0, browser-resolve@^1.7.0:
- version "1.11.2"
- resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce"
- dependencies:
- resolve "1.1.7"
-
-browserify-aes@^1.0.0, browserify-aes@^1.0.4:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.1.1.tgz#38b7ab55edb806ff2dcda1a7f1620773a477c49f"
- dependencies:
- buffer-xor "^1.0.3"
- cipher-base "^1.0.0"
- create-hash "^1.1.0"
- evp_bytestokey "^1.0.3"
- inherits "^2.0.1"
- safe-buffer "^5.0.1"
-
-browserify-cipher@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a"
- dependencies:
- browserify-aes "^1.0.4"
- browserify-des "^1.0.0"
- evp_bytestokey "^1.0.0"
-
-browserify-des@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd"
- dependencies:
- cipher-base "^1.0.1"
- des.js "^1.0.0"
- inherits "^2.0.1"
-
-browserify-istanbul@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/browserify-istanbul/-/browserify-istanbul-2.0.0.tgz#85a4b425da1f7c09e02ba32a3b44f6535d38c257"
- dependencies:
- minimatch "^3.0.0"
- through "^2.3.8"
-
-browserify-rsa@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524"
- dependencies:
- bn.js "^4.1.0"
- randombytes "^2.0.1"
-
-browserify-sign@^4.0.0:
- version "4.0.4"
- resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298"
- dependencies:
- bn.js "^4.1.1"
- browserify-rsa "^4.0.0"
- create-hash "^1.1.0"
- create-hmac "^1.1.2"
- elliptic "^6.0.0"
- inherits "^2.0.1"
- parse-asn1 "^5.0.0"
-
-browserify-zlib@~0.1.2:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d"
- dependencies:
- pako "~0.2.0"
-
-browserify@^13.1.1:
- version "13.3.0"
- resolved "https://registry.yarnpkg.com/browserify/-/browserify-13.3.0.tgz#b5a9c9020243f0c70e4675bec8223bc627e415ce"
- dependencies:
- JSONStream "^1.0.3"
- assert "^1.4.0"
- browser-pack "^6.0.1"
- browser-resolve "^1.11.0"
- browserify-zlib "~0.1.2"
- buffer "^4.1.0"
- cached-path-relative "^1.0.0"
- concat-stream "~1.5.1"
- console-browserify "^1.1.0"
- constants-browserify "~1.0.0"
- crypto-browserify "^3.0.0"
- defined "^1.0.0"
- deps-sort "^2.0.0"
- domain-browser "~1.1.0"
- duplexer2 "~0.1.2"
- events "~1.1.0"
- glob "^7.1.0"
- has "^1.0.0"
- htmlescape "^1.1.0"
- https-browserify "~0.0.0"
- inherits "~2.0.1"
- insert-module-globals "^7.0.0"
- labeled-stream-splicer "^2.0.0"
- module-deps "^4.0.8"
- os-browserify "~0.1.1"
- parents "^1.0.1"
- path-browserify "~0.0.0"
- process "~0.11.0"
- punycode "^1.3.2"
- querystring-es3 "~0.2.0"
- read-only-stream "^2.0.0"
- readable-stream "^2.0.2"
- resolve "^1.1.4"
- shasum "^1.0.0"
- shell-quote "^1.6.1"
- stream-browserify "^2.0.0"
- stream-http "^2.0.0"
- string_decoder "~0.10.0"
- subarg "^1.0.0"
- syntax-error "^1.1.1"
- through2 "^2.0.0"
- timers-browserify "^1.0.1"
- tty-browserify "~0.0.0"
- url "~0.11.0"
- util "~0.10.1"
- vm-browserify "~0.0.1"
- xtend "^4.0.0"
-
-buffer-xor@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
-
-buffer@^4.1.0:
- version "4.9.1"
- resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298"
- dependencies:
- base64-js "^1.0.2"
- ieee754 "^1.1.4"
- isarray "^1.0.0"
-
-builtin-status-codes@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
-
-cached-path-relative@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.1.tgz#d09c4b52800aa4c078e2dd81a869aac90d2e54e7"
-
-caller-path@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
- dependencies:
- callsites "^0.2.0"
-
-callsites@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
-
-camelcase@^1.0.2:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
-
-caseless@~0.11.0:
- version "0.11.0"
- resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7"
-
-caseless@~0.12.0:
- version "0.12.0"
- resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
-
-center-align@^0.1.1:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
- dependencies:
- align-text "^0.1.3"
- lazy-cache "^1.0.3"
-
-chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
- dependencies:
- ansi-styles "^2.2.1"
- escape-string-regexp "^1.0.2"
- has-ansi "^2.0.0"
- strip-ansi "^3.0.0"
- supports-color "^2.0.0"
-
-cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"
- dependencies:
- inherits "^2.0.1"
- safe-buffer "^5.0.1"
-
-circular-json@^0.3.1:
- version "0.3.3"
- resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66"
-
-cli-cursor@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987"
- dependencies:
- restore-cursor "^1.0.1"
-
-cli-width@^2.0.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
-
-cliui@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
- dependencies:
- center-align "^0.1.1"
- right-align "^0.1.1"
- wordwrap "0.0.2"
-
-clone@^1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.3.tgz#298d7e2231660f40c003c2ed3140decf3f53085f"
-
-co@^4.6.0:
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
-
-code-point-at@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
-
-columnify@^1.5.4:
- version "1.5.4"
- resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb"
- dependencies:
- strip-ansi "^3.0.0"
- wcwidth "^1.0.0"
-
-combine-source-map@~0.7.1:
- version "0.7.2"
- resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.7.2.tgz#0870312856b307a87cc4ac486f3a9a62aeccc09e"
- dependencies:
- convert-source-map "~1.1.0"
- inline-source-map "~0.6.0"
- lodash.memoize "~3.0.3"
- source-map "~0.5.3"
-
-combine-source-map@~0.8.0:
- version "0.8.0"
- resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.8.0.tgz#a58d0df042c186fcf822a8e8015f5450d2d79a8b"
- dependencies:
- convert-source-map "~1.1.0"
- inline-source-map "~0.6.0"
- lodash.memoize "~3.0.3"
- source-map "~0.5.3"
-
-combined-stream@1.0.6:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818"
- dependencies:
- delayed-stream "~1.0.0"
-
-combined-stream@^1.0.5, combined-stream@~1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
- dependencies:
- delayed-stream "~1.0.0"
-
-commander@^2.9.0:
- version "2.14.1"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa"
-
-concat-map@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
-
-concat-stream@1.6.0, concat-stream@^1.4.7, concat-stream@^1.4.8, concat-stream@^1.5.2:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7"
- dependencies:
- inherits "^2.0.3"
- readable-stream "^2.2.2"
- typedarray "^0.0.6"
-
-concat-stream@~1.5.0, concat-stream@~1.5.1:
- version "1.5.2"
- resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.2.tgz#708978624d856af41a5a741defdd261da752c266"
- dependencies:
- inherits "~2.0.1"
- readable-stream "~2.0.0"
- typedarray "~0.0.5"
-
-console-browserify@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10"
- dependencies:
- date-now "^0.1.4"
-
-constants-browserify@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
-
-convert-source-map@^1.0.0:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5"
-
-convert-source-map@~1.1.0:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860"
-
-core-util-is@1.0.2, core-util-is@~1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
-
-coveralls@^2.11.14:
- version "2.13.3"
- resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-2.13.3.tgz#9ad7c2ae527417f361e8b626483f48ee92dd2bc7"
- dependencies:
- js-yaml "3.6.1"
- lcov-parse "0.0.10"
- log-driver "1.2.5"
- minimist "1.2.0"
- request "2.79.0"
-
-create-ecdh@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d"
- dependencies:
- bn.js "^4.1.0"
- elliptic "^6.0.0"
-
-create-hash@^1.1.0, create-hash@^1.1.2:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd"
- dependencies:
- cipher-base "^1.0.1"
- inherits "^2.0.1"
- ripemd160 "^2.0.0"
- sha.js "^2.4.0"
-
-create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.6.tgz#acb9e221a4e17bdb076e90657c42b93e3726cf06"
- dependencies:
- cipher-base "^1.0.3"
- create-hash "^1.1.0"
- inherits "^2.0.1"
- ripemd160 "^2.0.0"
- safe-buffer "^5.0.1"
- sha.js "^2.4.8"
-
-cross-spawn@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41"
- dependencies:
- lru-cache "^4.0.1"
- which "^1.2.9"
-
-cross-spawn@^5.0.1:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
- dependencies:
- lru-cache "^4.0.1"
- shebang-command "^1.2.0"
- which "^1.2.9"
-
-cryptiles@2.x.x:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8"
- dependencies:
- boom "2.x.x"
-
-cryptiles@3.x.x:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe"
- dependencies:
- boom "5.x.x"
-
-crypto-browserify@^3.0.0:
- version "3.12.0"
- resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
- dependencies:
- browserify-cipher "^1.0.0"
- browserify-sign "^4.0.0"
- create-ecdh "^4.0.0"
- create-hash "^1.1.0"
- create-hmac "^1.1.0"
- diffie-hellman "^5.0.0"
- inherits "^2.0.1"
- pbkdf2 "^3.0.3"
- public-encrypt "^4.0.0"
- randombytes "^2.0.0"
- randomfill "^1.0.3"
-
-d@1:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f"
- dependencies:
- es5-ext "^0.10.9"
-
-dashdash@^1.12.0:
- version "1.14.1"
- resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
- dependencies:
- assert-plus "^1.0.0"
-
-date-now@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
-
-debug@2.6.9, debug@^2.1.1:
- version "2.6.9"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
- dependencies:
- ms "2.0.0"
-
-decamelize@^1.0.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
-
-deep-equal@~1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
-
-deep-is@~0.1.3:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
-
-deeply@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/deeply/-/deeply-1.0.0.tgz#ed573160b5c91ff5138917bf701e5453b19f574b"
-
-defaults@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d"
- dependencies:
- clone "^1.0.2"
-
-define-properties@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94"
- dependencies:
- foreach "^2.0.5"
- object-keys "^1.0.8"
-
-defined@^1.0.0, defined@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
-
-del@^2.0.2:
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8"
- dependencies:
- globby "^5.0.0"
- is-path-cwd "^1.0.0"
- is-path-in-cwd "^1.0.0"
- object-assign "^4.0.1"
- pify "^2.0.0"
- pinkie-promise "^2.0.0"
- rimraf "^2.2.8"
-
-delayed-stream@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
-
-deps-sort@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.0.tgz#091724902e84658260eb910748cccd1af6e21fb5"
- dependencies:
- JSONStream "^1.0.3"
- shasum "^1.0.0"
- subarg "^1.0.0"
- through2 "^2.0.0"
-
-des.js@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc"
- dependencies:
- inherits "^2.0.1"
- minimalistic-assert "^1.0.0"
-
-detective@^4.0.0:
- version "4.7.1"
- resolved "https://registry.yarnpkg.com/detective/-/detective-4.7.1.tgz#0eca7314338442febb6d65da54c10bb1c82b246e"
- dependencies:
- acorn "^5.2.1"
- defined "^1.0.0"
-
-diffie-hellman@^5.0.0:
- version "5.0.2"
- resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e"
- dependencies:
- bn.js "^4.1.0"
- miller-rabin "^4.0.0"
- randombytes "^2.0.0"
-
-doctrine@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
- dependencies:
- esutils "^2.0.2"
-
-domain-browser@~1.1.0:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc"
-
-du@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/du/-/du-0.1.0.tgz#f26e340a09c7bc5b6fd69af6dbadea60fa8c6f4d"
- dependencies:
- async "~0.1.22"
-
-duplexer2@^0.1.2, duplexer2@~0.1.0, duplexer2@~0.1.2:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1"
- dependencies:
- readable-stream "^2.0.2"
-
-ecc-jsbn@~0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
- dependencies:
- jsbn "~0.1.0"
-
-elliptic@^6.0.0:
- version "6.4.0"
- resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df"
- dependencies:
- bn.js "^4.4.0"
- brorand "^1.0.1"
- hash.js "^1.0.0"
- hmac-drbg "^1.0.0"
- inherits "^2.0.1"
- minimalistic-assert "^1.0.0"
- minimalistic-crypto-utils "^1.0.0"
-
-envar@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/envar/-/envar-2.0.0.tgz#44f7cdafbf976b732b73ad1acb2e8808ecf8876e"
- dependencies:
- deeply "^1.0.0"
- minimist "^1.2.0"
-
-es-abstract@^1.5.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.10.0.tgz#1ecb36c197842a00d8ee4c2dfd8646bb97d60864"
- dependencies:
- es-to-primitive "^1.1.1"
- function-bind "^1.1.1"
- has "^1.0.1"
- is-callable "^1.1.3"
- is-regex "^1.0.4"
-
-es-to-primitive@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d"
- dependencies:
- is-callable "^1.1.1"
- is-date-object "^1.0.1"
- is-symbol "^1.0.1"
-
-es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14:
- version "0.10.38"
- resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.38.tgz#fa7d40d65bbc9bb8a67e1d3f9cc656a00530eed3"
- dependencies:
- es6-iterator "~2.0.3"
- es6-symbol "~3.1.1"
-
-es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7"
- dependencies:
- d "1"
- es5-ext "^0.10.35"
- es6-symbol "^3.1.1"
-
-es6-map@^0.1.3:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0"
- dependencies:
- d "1"
- es5-ext "~0.10.14"
- es6-iterator "~2.0.1"
- es6-set "~0.1.5"
- es6-symbol "~3.1.1"
- event-emitter "~0.3.5"
-
-es6-promise@^4.0.3:
- version "4.2.4"
- resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.4.tgz#dc4221c2b16518760bd8c39a52d8f356fc00ed29"
-
-es6-set@~0.1.5:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1"
- dependencies:
- d "1"
- es5-ext "~0.10.14"
- es6-iterator "~2.0.1"
- es6-symbol "3.1.1"
- event-emitter "~0.3.5"
-
-es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77"
- dependencies:
- d "1"
- es5-ext "~0.10.14"
-
-es6-weak-map@^2.0.1:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f"
- dependencies:
- d "1"
- es5-ext "^0.10.14"
- es6-iterator "^2.0.1"
- es6-symbol "^3.1.1"
-
-escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
-
-escodegen@1.8.x:
- version "1.8.1"
- resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018"
- dependencies:
- esprima "^2.7.1"
- estraverse "^1.9.1"
- esutils "^2.0.2"
- optionator "^0.8.1"
- optionalDependencies:
- source-map "~0.2.0"
-
-escope@^3.6.0:
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3"
- dependencies:
- es6-map "^0.1.3"
- es6-weak-map "^2.0.1"
- esrecurse "^4.1.0"
- estraverse "^4.1.1"
-
-eslint@^3.9.1:
- version "3.19.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.19.0.tgz#c8fc6201c7f40dd08941b87c085767386a679acc"
- dependencies:
- babel-code-frame "^6.16.0"
- chalk "^1.1.3"
- concat-stream "^1.5.2"
- debug "^2.1.1"
- doctrine "^2.0.0"
- escope "^3.6.0"
- espree "^3.4.0"
- esquery "^1.0.0"
- estraverse "^4.2.0"
- esutils "^2.0.2"
- file-entry-cache "^2.0.0"
- glob "^7.0.3"
- globals "^9.14.0"
- ignore "^3.2.0"
- imurmurhash "^0.1.4"
- inquirer "^0.12.0"
- is-my-json-valid "^2.10.0"
- is-resolvable "^1.0.0"
- js-yaml "^3.5.1"
- json-stable-stringify "^1.0.0"
- levn "^0.3.0"
- lodash "^4.0.0"
- mkdirp "^0.5.0"
- natural-compare "^1.4.0"
- optionator "^0.8.2"
- path-is-inside "^1.0.1"
- pluralize "^1.2.1"
- progress "^1.1.8"
- require-uncached "^1.0.2"
- shelljs "^0.7.5"
- strip-bom "^3.0.0"
- strip-json-comments "~2.0.1"
- table "^3.7.8"
- text-table "~0.2.0"
- user-home "^2.0.0"
-
-espree@^3.4.0:
- version "3.5.3"
- resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.3.tgz#931e0af64e7fbbed26b050a29daad1fc64799fa6"
- dependencies:
- acorn "^5.4.0"
- acorn-jsx "^3.0.0"
-
-esprima@2.7.x, esprima@^2.6.0, esprima@^2.7.1:
- version "2.7.3"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
-
-esprima@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804"
-
-esquery@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa"
- dependencies:
- estraverse "^4.0.0"
-
-esrecurse@^4.1.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163"
- dependencies:
- estraverse "^4.1.0"
- object-assign "^4.0.1"
-
-estraverse@^1.9.1:
- version "1.9.3"
- resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44"
-
-estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
-
-esutils@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
-
-event-emitter@~0.3.5:
- version "0.3.5"
- resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39"
- dependencies:
- d "1"
- es5-ext "~0.10.14"
-
-events@~1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924"
-
-evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
- dependencies:
- md5.js "^1.3.4"
- safe-buffer "^5.1.1"
-
-exit-hook@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8"
-
-extend@~3.0.0, extend@~3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
-
-extract-zip@^1.6.5:
- version "1.6.6"
- resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.6.tgz#1290ede8d20d0872b429fd3f351ca128ec5ef85c"
- dependencies:
- concat-stream "1.6.0"
- debug "2.6.9"
- mkdirp "0.5.0"
- yauzl "2.4.1"
-
-extsprintf@1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
-
-extsprintf@^1.2.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
-
-fake@^0.2.2:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/fake/-/fake-0.2.2.tgz#68fe672725ff0f5c89ba92c539b31111f122d1f3"
-
-far@^0.0.7:
- version "0.0.7"
- resolved "https://registry.yarnpkg.com/far/-/far-0.0.7.tgz#01c1fd362bcd26ce9cf161af3938aa34619f79a7"
- dependencies:
- oop "0.0.3"
-
-fast-deep-equal@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff"
-
-fast-json-stable-stringify@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
-
-fast-levenshtein@~2.0.4:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
-
-fd-slicer@~1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65"
- dependencies:
- pend "~1.2.0"
-
-figures@^1.3.5:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
- dependencies:
- escape-string-regexp "^1.0.5"
- object-assign "^4.1.0"
-
-file-entry-cache@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361"
- dependencies:
- flat-cache "^1.2.1"
- object-assign "^4.0.1"
-
-flat-cache@^1.2.1:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481"
- dependencies:
- circular-json "^0.3.1"
- del "^2.0.2"
- graceful-fs "^4.1.2"
- write "^0.2.1"
-
-for-each@~0.3.2:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.2.tgz#2c40450b9348e97f281322593ba96704b9abd4d4"
- dependencies:
- is-function "~1.0.0"
-
-foreach@^2.0.5:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
-
-forever-agent@~0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
-
-form-data@~2.1.1:
- version "2.1.4"
- resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1"
- dependencies:
- asynckit "^0.4.0"
- combined-stream "^1.0.5"
- mime-types "^2.1.12"
-
-form-data@~2.3.1:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf"
- dependencies:
- asynckit "^0.4.0"
- combined-stream "^1.0.5"
- mime-types "^2.1.12"
-
-formidable@^1.0.17:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.1.1.tgz#96b8886f7c3c3508b932d6bd70c4d3a88f35f1a9"
-
-fs-extra@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950"
- dependencies:
- graceful-fs "^4.1.2"
- jsonfile "^2.1.0"
- klaw "^1.0.0"
-
-fs.realpath@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
-
-fstream-ignore@^1.0.0:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105"
- dependencies:
- fstream "^1.0.0"
- inherits "2"
- minimatch "^3.0.0"
-
-fstream-npm@^1.2.0:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/fstream-npm/-/fstream-npm-1.2.1.tgz#08c4a452f789dcbac4c89a4563c902b2c862fd5b"
- dependencies:
- fstream-ignore "^1.0.0"
- inherits "2"
-
-fstream@^1.0.0:
- version "1.0.11"
- resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171"
- dependencies:
- graceful-fs "^4.1.2"
- inherits "~2.0.0"
- mkdirp ">=0.5 0"
- rimraf "2"
-
-function-bind@^1.0.2, function-bind@^1.1.1, function-bind@~1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
-
-generate-function@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74"
-
-generate-object-property@^1.1.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0"
- dependencies:
- is-property "^1.0.0"
-
-getpass@^0.1.1:
- version "0.1.7"
- resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
- dependencies:
- assert-plus "^1.0.0"
-
-ghostface@^1.5.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/ghostface/-/ghostface-1.5.0.tgz#b93e7ab6560ec93b4509032fdd43a4bec93044fd"
- dependencies:
- chalk "^1.0.0"
- concat-stream "^1.4.8"
- convert-source-map "^1.0.0"
- minimist "^1.1.1"
- semver "^4.3.3"
- source-map "^0.4.2"
- which "^1.0.9"
-
-glob@^5.0.15:
- version "5.0.15"
- resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1"
- dependencies:
- inflight "^1.0.4"
- inherits "2"
- minimatch "2 || 3"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
-glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.0, glob@~7.1.2:
- version "7.1.2"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
- dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^3.0.4"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
-globals@^9.14.0:
- version "9.18.0"
- resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
-
-globby@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d"
- dependencies:
- array-union "^1.0.1"
- arrify "^1.0.0"
- glob "^7.0.3"
- object-assign "^4.0.1"
- pify "^2.0.0"
- pinkie-promise "^2.0.0"
-
-graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
- version "4.1.11"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
-
-handlebars@^4.0.1:
- version "4.0.11"
- resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc"
- dependencies:
- async "^1.4.0"
- optimist "^0.6.1"
- source-map "^0.4.4"
- optionalDependencies:
- uglify-js "^2.6"
-
-har-schema@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
-
-har-validator@~2.0.6:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d"
- dependencies:
- chalk "^1.1.1"
- commander "^2.9.0"
- is-my-json-valid "^2.12.4"
- pinkie-promise "^2.0.0"
-
-har-validator@~5.0.3:
- version "5.0.3"
- resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd"
- dependencies:
- ajv "^5.1.0"
- har-schema "^2.0.0"
-
-has-ansi@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
- dependencies:
- ansi-regex "^2.0.0"
-
-has-flag@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
-
-has@^1.0.0, has@^1.0.1, has@~1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28"
- dependencies:
- function-bind "^1.0.2"
-
-hash-base@^2.0.0:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1"
- dependencies:
- inherits "^2.0.1"
-
-hash-base@^3.0.0:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918"
- dependencies:
- inherits "^2.0.1"
- safe-buffer "^5.0.1"
-
-hash.js@^1.0.0, hash.js@^1.0.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846"
- dependencies:
- inherits "^2.0.3"
- minimalistic-assert "^1.0.0"
-
-hasha@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/hasha/-/hasha-2.2.0.tgz#78d7cbfc1e6d66303fe79837365984517b2f6ee1"
- dependencies:
- is-stream "^1.0.1"
- pinkie-promise "^2.0.0"
-
-hawk@~3.1.3:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4"
- dependencies:
- boom "2.x.x"
- cryptiles "2.x.x"
- hoek "2.x.x"
- sntp "1.x.x"
-
-hawk@~6.0.2:
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038"
- dependencies:
- boom "4.x.x"
- cryptiles "3.x.x"
- hoek "4.x.x"
- sntp "2.x.x"
-
-hmac-drbg@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
- dependencies:
- hash.js "^1.0.3"
- minimalistic-assert "^1.0.0"
- minimalistic-crypto-utils "^1.0.1"
-
-hoek@2.x.x:
- version "2.16.3"
- resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
-
-hoek@4.x.x:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d"
-
-htmlescape@^1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351"
-
-http-signature@~1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
- dependencies:
- assert-plus "^0.2.0"
- jsprim "^1.2.2"
- sshpk "^1.7.0"
-
-http-signature@~1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
- dependencies:
- assert-plus "^1.0.0"
- jsprim "^1.2.2"
- sshpk "^1.7.0"
-
-https-browserify@~0.0.0:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82"
-
-ieee754@^1.1.4:
- version "1.1.8"
- resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4"
-
-ignore@^3.2.0:
- version "3.3.7"
- resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021"
-
-imurmurhash@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
-
-in-publish@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51"
-
-indexof@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
-
-inflight@^1.0.4:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
- dependencies:
- once "^1.3.0"
- wrappy "1"
-
-inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
-
-inherits@2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
-
-inline-source-map@~0.6.0:
- version "0.6.2"
- resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz#f9393471c18a79d1724f863fa38b586370ade2a5"
- dependencies:
- source-map "~0.5.3"
-
-inquirer@^0.12.0:
- version "0.12.0"
- resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e"
- dependencies:
- ansi-escapes "^1.1.0"
- ansi-regex "^2.0.0"
- chalk "^1.0.0"
- cli-cursor "^1.0.1"
- cli-width "^2.0.0"
- figures "^1.3.5"
- lodash "^4.3.0"
- readline2 "^1.0.1"
- run-async "^0.1.0"
- rx-lite "^3.1.2"
- string-width "^1.0.1"
- strip-ansi "^3.0.0"
- through "^2.3.6"
-
-insert-module-globals@^7.0.0:
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.0.1.tgz#c03bf4e01cb086d5b5e5ace8ad0afe7889d638c3"
- dependencies:
- JSONStream "^1.0.3"
- combine-source-map "~0.7.1"
- concat-stream "~1.5.1"
- is-buffer "^1.1.0"
- lexical-scope "^1.2.0"
- process "~0.11.0"
- through2 "^2.0.0"
- xtend "^4.0.0"
-
-interpret@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614"
-
-is-buffer@^1.1.0, is-buffer@^1.1.5:
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
-
-is-callable@^1.1.1, is-callable@^1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2"
-
-is-date-object@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
-
-is-fullwidth-code-point@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
- dependencies:
- number-is-nan "^1.0.0"
-
-is-fullwidth-code-point@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
-
-is-function@~1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5"
-
-is-my-json-valid@^2.10.0, is-my-json-valid@^2.12.4:
- version "2.17.1"
- resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.17.1.tgz#3da98914a70a22f0a8563ef1511a246c6fc55471"
- dependencies:
- generate-function "^2.0.0"
- generate-object-property "^1.1.0"
- jsonpointer "^4.0.0"
- xtend "^4.0.0"
-
-is-node-modern@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-node-modern/-/is-node-modern-1.0.0.tgz#cfe2607be7403b05b28a566f66cbf8a583d4fc63"
-
-is-path-cwd@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d"
-
-is-path-in-cwd@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc"
- dependencies:
- is-path-inside "^1.0.0"
-
-is-path-inside@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036"
- dependencies:
- path-is-inside "^1.0.1"
-
-is-property@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
-
-is-regex@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
- dependencies:
- has "^1.0.1"
-
-is-resolvable@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
-
-is-stream@^1.0.1:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
-
-is-symbol@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572"
-
-is-typedarray@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
-
-isarray@^1.0.0, isarray@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
-
-isarray@~0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
-
-isexe@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
-
-isstream@~0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
-
-istanbul@^0.4.5:
- version "0.4.5"
- resolved "https://registry.yarnpkg.com/istanbul/-/istanbul-0.4.5.tgz#65c7d73d4c4da84d4f3ac310b918fb0b8033733b"
- dependencies:
- abbrev "1.0.x"
- async "1.x"
- escodegen "1.8.x"
- esprima "2.7.x"
- glob "^5.0.15"
- handlebars "^4.0.1"
- js-yaml "3.x"
- mkdirp "0.5.x"
- nopt "3.x"
- once "1.x"
- resolve "1.1.x"
- supports-color "^3.1.0"
- which "^1.1.1"
- wordwrap "^1.0.0"
-
-js-tokens@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
-
-js-yaml@3.6.1:
- version "3.6.1"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.6.1.tgz#6e5fe67d8b205ce4d22fad05b7781e8dadcc4b30"
- dependencies:
- argparse "^1.0.7"
- esprima "^2.6.0"
-
-js-yaml@3.x, js-yaml@^3.5.1:
- version "3.10.0"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc"
- dependencies:
- argparse "^1.0.7"
- esprima "^4.0.0"
-
-jsbn@~0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
-
-json-schema-traverse@^0.3.0:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
-
-json-schema@0.2.3:
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
-
-json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
- dependencies:
- jsonify "~0.0.0"
-
-json-stable-stringify@~0.0.0:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz#611c23e814db375527df851193db59dd2af27f45"
- dependencies:
- jsonify "~0.0.0"
-
-json-stringify-safe@~5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
-
-jsonfile@^2.1.0:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
- optionalDependencies:
- graceful-fs "^4.1.6"
-
-jsonify@~0.0.0:
- version "0.0.0"
- resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
-
-jsonparse@^1.2.0:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280"
-
-jsonpointer@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9"
-
-jsprim@^1.2.2:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
- dependencies:
- assert-plus "1.0.0"
- extsprintf "1.3.0"
- json-schema "0.2.3"
- verror "1.10.0"
-
-kew@^0.7.0:
- version "0.7.0"
- resolved "https://registry.yarnpkg.com/kew/-/kew-0.7.0.tgz#79d93d2d33363d6fdd2970b335d9141ad591d79b"
-
-kind-of@^3.0.2:
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
- dependencies:
- is-buffer "^1.1.5"
-
-klaw@^1.0.0:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439"
- optionalDependencies:
- graceful-fs "^4.1.9"
-
-labeled-stream-splicer@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.0.tgz#a52e1d138024c00b86b1c0c91f677918b8ae0a59"
- dependencies:
- inherits "^2.0.1"
- isarray "~0.0.1"
- stream-splicer "^2.0.0"
-
-lazy-cache@^1.0.3:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
-
-lcov-parse@0.0.10:
- version "0.0.10"
- resolved "https://registry.yarnpkg.com/lcov-parse/-/lcov-parse-0.0.10.tgz#1b0b8ff9ac9c7889250582b70b71315d9da6d9a3"
-
-levn@^0.3.0, levn@~0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
- dependencies:
- prelude-ls "~1.1.2"
- type-check "~0.3.2"
-
-lexical-scope@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/lexical-scope/-/lexical-scope-1.2.0.tgz#fcea5edc704a4b3a8796cdca419c3a0afaf22df4"
- dependencies:
- astw "^2.0.0"
-
-lodash.memoize@~3.0.3:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f"
-
-lodash@^4.0.0, lodash@^4.3.0:
- version "4.17.5"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511"
-
-log-driver@1.2.5:
- version "1.2.5"
- resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.5.tgz#7ae4ec257302fd790d557cb10c97100d857b0056"
-
-longest@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
-
-lru-cache@^4.0.1:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55"
- dependencies:
- pseudomap "^1.0.2"
- yallist "^2.1.2"
-
-map-limit@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/map-limit/-/map-limit-0.0.1.tgz#eb7961031c0f0e8d001bf2d56fab685d58822f38"
- dependencies:
- once "~1.3.0"
-
-md5.js@^1.3.4:
- version "1.3.4"
- resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d"
- dependencies:
- hash-base "^3.0.0"
- inherits "^2.0.1"
-
-miller-rabin@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
- dependencies:
- bn.js "^4.0.0"
- brorand "^1.0.1"
-
-mime-db@~1.30.0:
- version "1.30.0"
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01"
-
-mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.7:
- version "2.1.17"
- resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a"
- dependencies:
- mime-db "~1.30.0"
-
-minimalistic-assert@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3"
-
-minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
-
-"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.4:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
- dependencies:
- brace-expansion "^1.1.7"
-
-minimist@0.0.8:
- version "0.0.8"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
-
-minimist@1.2.0, minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0, minimist@~1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
-
-minimist@~0.0.1:
- version "0.0.10"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
-
-mkdirp@0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12"
- dependencies:
- minimist "0.0.8"
-
-mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1:
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
- dependencies:
- minimist "0.0.8"
-
-module-deps@^4.0.8:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-4.1.1.tgz#23215833f1da13fd606ccb8087b44852dcb821fd"
- dependencies:
- JSONStream "^1.0.3"
- browser-resolve "^1.7.0"
- cached-path-relative "^1.0.0"
- concat-stream "~1.5.0"
- defined "^1.0.0"
- detective "^4.0.0"
- duplexer2 "^0.1.2"
- inherits "^2.0.1"
- parents "^1.0.0"
- readable-stream "^2.0.2"
- resolve "^1.1.3"
- stream-combiner2 "^1.1.1"
- subarg "^1.0.0"
- through2 "^2.0.0"
- xtend "^4.0.0"
-
-ms@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
-
-mute-stream@0.0.5:
- version "0.0.5"
- resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0"
-
-natural-compare@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
-
-node-uuid@~1.4.7:
- version "1.4.8"
- resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907"
-
-nopt@3.x:
- version "3.0.6"
- resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
- dependencies:
- abbrev "1"
-
-number-is-nan@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
-
-oauth-sign@~0.8.1, oauth-sign@~0.8.2:
- version "0.8.2"
- resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
-
-obake@^0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/obake/-/obake-0.1.2.tgz#64a477c9ddfbbccc18cff3a750924974d22c29d3"
- dependencies:
- envar "^2.0.0"
- ghostface "^1.5.0"
-
-object-assign@^4.0.1, object-assign@^4.1.0:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
-
-object-inspect@~1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.3.0.tgz#5b1eb8e6742e2ee83342a637034d844928ba2f6d"
-
-object-keys@^1.0.8:
- version "1.0.11"
- resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d"
-
-once@1.x, once@^1.3.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
- dependencies:
- wrappy "1"
-
-once@~1.3.0:
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20"
- dependencies:
- wrappy "1"
-
-onetime@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789"
-
-oop@0.0.3:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/oop/-/oop-0.0.3.tgz#70fa405a5650891a194fdc82ca68dad6dabf4401"
-
-optimist@^0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
- dependencies:
- minimist "~0.0.1"
- wordwrap "~0.0.2"
-
-optionator@^0.8.1, optionator@^0.8.2:
- version "0.8.2"
- resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
- dependencies:
- deep-is "~0.1.3"
- fast-levenshtein "~2.0.4"
- levn "~0.3.0"
- prelude-ls "~1.1.2"
- type-check "~0.3.2"
- wordwrap "~1.0.0"
-
-os-browserify@~0.1.1:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.1.2.tgz#49ca0293e0b19590a5f5de10c7f265a617d8fe54"
-
-os-homedir@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
-
-os-shim@^0.1.2:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917"
-
-pako@~0.2.0:
- version "0.2.9"
- resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75"
-
-parents@^1.0.0, parents@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz#fedd4d2bf193a77745fe71e371d73c3307d9c751"
- dependencies:
- path-platform "~0.11.15"
-
-parse-asn1@^5.0.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712"
- dependencies:
- asn1.js "^4.0.0"
- browserify-aes "^1.0.0"
- create-hash "^1.1.0"
- evp_bytestokey "^1.0.0"
- pbkdf2 "^3.0.3"
-
-path-browserify@~0.0.0:
- version "0.0.0"
- resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a"
-
-path-is-absolute@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
-
-path-is-inside@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
-
-path-parse@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
-
-path-platform@~0.11.15:
- version "0.11.15"
- resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2"
-
-pbkdf2@^3.0.3:
- version "3.0.14"
- resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz#a35e13c64799b06ce15320f459c230e68e73bade"
- dependencies:
- create-hash "^1.1.2"
- create-hmac "^1.1.4"
- ripemd160 "^2.0.1"
- safe-buffer "^5.0.1"
- sha.js "^2.4.8"
-
-pend@~1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
-
-performance-now@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
-
-phantomjs-prebuilt@^2.1.13:
- version "2.1.16"
- resolved "https://registry.yarnpkg.com/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz#efd212a4a3966d3647684ea8ba788549be2aefef"
- dependencies:
- es6-promise "^4.0.3"
- extract-zip "^1.6.5"
- fs-extra "^1.0.0"
- hasha "^2.2.0"
- kew "^0.7.0"
- progress "^1.1.8"
- request "^2.81.0"
- request-progress "^2.0.1"
- which "^1.2.10"
-
-pify@^2.0.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
-
-pinkie-promise@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
- dependencies:
- pinkie "^2.0.0"
-
-pinkie@^2.0.0:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
-
-pkgfiles@^2.3.0:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/pkgfiles/-/pkgfiles-2.3.2.tgz#1b54a7a8dbe32caa84b0955f44917e1500d33d05"
- dependencies:
- columnify "^1.5.4"
- du "^0.1.0"
- fstream-npm "^1.2.0"
- map-limit "0.0.1"
- minimist "^1.2.0"
- pkgresolve "^1.1.4"
- pretty-bytes "^4.0.2"
-
-pkgresolve@^1.1.4:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/pkgresolve/-/pkgresolve-1.1.4.tgz#0fa499ca366888c31e97357446c6053025ae47b6"
- dependencies:
- minimist "~1.2.0"
-
-pluralize@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45"
-
-pre-commit@^1.1.3:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/pre-commit/-/pre-commit-1.2.2.tgz#dbcee0ee9de7235e57f79c56d7ce94641a69eec6"
- dependencies:
- cross-spawn "^5.0.1"
- spawn-sync "^1.0.15"
- which "1.2.x"
-
-prelude-ls@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
-
-pretty-bytes@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9"
-
-process-nextick-args@~1.0.6:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
-
-process-nextick-args@~2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
-
-process@~0.11.0:
- version "0.11.10"
- resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
-
-progress@^1.1.8:
- version "1.1.8"
- resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be"
-
-pseudomap@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
-
-public-encrypt@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6"
- dependencies:
- bn.js "^4.1.0"
- browserify-rsa "^4.0.0"
- create-hash "^1.1.0"
- parse-asn1 "^5.0.0"
- randombytes "^2.0.1"
-
-punycode@1.3.2:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
-
-punycode@^1.3.2, punycode@^1.4.1:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
-
-qs@~6.3.0:
- version "6.3.2"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c"
-
-qs@~6.5.1:
- version "6.5.1"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
-
-querystring-es3@~0.2.0:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
-
-querystring@0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
-
-randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80"
- dependencies:
- safe-buffer "^5.1.0"
-
-randomfill@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.3.tgz#b96b7df587f01dd91726c418f30553b1418e3d62"
- dependencies:
- randombytes "^2.0.5"
- safe-buffer "^5.1.0"
-
-read-only-stream@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0"
- dependencies:
- readable-stream "^2.0.2"
-
-readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3:
- version "2.3.4"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.4.tgz#c946c3f47fa7d8eabc0b6150f4a12f69a4574071"
- dependencies:
- core-util-is "~1.0.0"
- inherits "~2.0.3"
- isarray "~1.0.0"
- process-nextick-args "~2.0.0"
- safe-buffer "~5.1.1"
- string_decoder "~1.0.3"
- util-deprecate "~1.0.1"
-
-readable-stream@~2.0.0:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e"
- dependencies:
- core-util-is "~1.0.0"
- inherits "~2.0.1"
- isarray "~1.0.0"
- process-nextick-args "~1.0.6"
- string_decoder "~0.10.x"
- util-deprecate "~1.0.1"
-
-readline2@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35"
- dependencies:
- code-point-at "^1.0.0"
- is-fullwidth-code-point "^1.0.0"
- mute-stream "0.0.5"
-
-rechoir@^0.6.2:
- version "0.6.2"
- resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
- dependencies:
- resolve "^1.1.6"
-
-repeat-string@^1.5.2:
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
-
-request-progress@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-2.0.1.tgz#5d36bb57961c673aa5b788dbc8141fdf23b44e08"
- dependencies:
- throttleit "^1.0.0"
-
-request@2.76.0:
- version "2.76.0"
- resolved "https://registry.yarnpkg.com/request/-/request-2.76.0.tgz#be44505afef70360a0436955106be3945d95560e"
- dependencies:
- aws-sign2 "~0.6.0"
- aws4 "^1.2.1"
- caseless "~0.11.0"
- combined-stream "~1.0.5"
- extend "~3.0.0"
- forever-agent "~0.6.1"
- form-data "~2.1.1"
- har-validator "~2.0.6"
- hawk "~3.1.3"
- http-signature "~1.1.0"
- is-typedarray "~1.0.0"
- isstream "~0.1.2"
- json-stringify-safe "~5.0.1"
- mime-types "~2.1.7"
- node-uuid "~1.4.7"
- oauth-sign "~0.8.1"
- qs "~6.3.0"
- stringstream "~0.0.4"
- tough-cookie "~2.3.0"
- tunnel-agent "~0.4.1"
-
-request@2.79.0:
- version "2.79.0"
- resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de"
- dependencies:
- aws-sign2 "~0.6.0"
- aws4 "^1.2.1"
- caseless "~0.11.0"
- combined-stream "~1.0.5"
- extend "~3.0.0"
- forever-agent "~0.6.1"
- form-data "~2.1.1"
- har-validator "~2.0.6"
- hawk "~3.1.3"
- http-signature "~1.1.0"
- is-typedarray "~1.0.0"
- isstream "~0.1.2"
- json-stringify-safe "~5.0.1"
- mime-types "~2.1.7"
- oauth-sign "~0.8.1"
- qs "~6.3.0"
- stringstream "~0.0.4"
- tough-cookie "~2.3.0"
- tunnel-agent "~0.4.1"
- uuid "^3.0.0"
-
-request@^2.81.0:
- version "2.83.0"
- resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356"
- dependencies:
- aws-sign2 "~0.7.0"
- aws4 "^1.6.0"
- caseless "~0.12.0"
- combined-stream "~1.0.5"
- extend "~3.0.1"
- forever-agent "~0.6.1"
- form-data "~2.3.1"
- har-validator "~5.0.3"
- hawk "~6.0.2"
- http-signature "~1.2.0"
- is-typedarray "~1.0.0"
- isstream "~0.1.2"
- json-stringify-safe "~5.0.1"
- mime-types "~2.1.17"
- oauth-sign "~0.8.2"
- performance-now "^2.1.0"
- qs "~6.5.1"
- safe-buffer "^5.1.1"
- stringstream "~0.0.5"
- tough-cookie "~2.3.3"
- tunnel-agent "^0.6.0"
- uuid "^3.1.0"
-
-require-uncached@^1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3"
- dependencies:
- caller-path "^0.1.0"
- resolve-from "^1.0.0"
-
-resolve-from@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"
-
-resolve@1.1.7, resolve@1.1.x:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
-
-resolve@^1.1.3, resolve@^1.1.4, resolve@^1.1.6:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36"
- dependencies:
- path-parse "^1.0.5"
-
-resolve@~1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86"
- dependencies:
- path-parse "^1.0.5"
-
-restore-cursor@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541"
- dependencies:
- exit-hook "^1.0.0"
- onetime "^1.0.0"
-
-resumer@~0.0.0:
- version "0.0.0"
- resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759"
- dependencies:
- through "~2.3.4"
-
-right-align@^0.1.1:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
- dependencies:
- align-text "^0.1.1"
-
-rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4:
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
- dependencies:
- glob "^7.0.5"
-
-ripemd160@^2.0.0, ripemd160@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7"
- dependencies:
- hash-base "^2.0.0"
- inherits "^2.0.1"
-
-run-async@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389"
- dependencies:
- once "^1.3.0"
-
-rx-lite@^3.1.2:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102"
-
-safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
-
-semver@^4.3.3:
- version "4.3.6"
- resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da"
-
-sha.js@^2.4.0, sha.js@^2.4.8, sha.js@~2.4.4:
- version "2.4.10"
- resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.10.tgz#b1fde5cd7d11a5626638a07c604ab909cfa31f9b"
- dependencies:
- inherits "^2.0.1"
- safe-buffer "^5.0.1"
-
-shasum@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/shasum/-/shasum-1.0.2.tgz#e7012310d8f417f4deb5712150e5678b87ae565f"
- dependencies:
- json-stable-stringify "~0.0.0"
- sha.js "~2.4.4"
-
-shebang-command@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
- dependencies:
- shebang-regex "^1.0.0"
-
-shebang-regex@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
-
-shell-quote@^1.6.1:
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767"
- dependencies:
- array-filter "~0.0.0"
- array-map "~0.0.0"
- array-reduce "~0.0.0"
- jsonify "~0.0.0"
-
-shelljs@^0.7.5:
- version "0.7.8"
- resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3"
- dependencies:
- glob "^7.0.0"
- interpret "^1.0.0"
- rechoir "^0.6.2"
-
-slice-ansi@0.0.4:
- version "0.0.4"
- resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
-
-sntp@1.x.x:
- version "1.0.9"
- resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
- dependencies:
- hoek "2.x.x"
-
-sntp@2.x.x:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8"
- dependencies:
- hoek "4.x.x"
-
-source-map@^0.4.2, source-map@^0.4.4:
- version "0.4.4"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
- dependencies:
- amdefine ">=0.0.4"
-
-source-map@~0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d"
- dependencies:
- amdefine ">=0.0.4"
-
-source-map@~0.5.1, source-map@~0.5.3:
- version "0.5.7"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
-
-spawn-sync@^1.0.15:
- version "1.0.15"
- resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476"
- dependencies:
- concat-stream "^1.4.7"
- os-shim "^0.1.2"
-
-sprintf-js@~1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
-
-sshpk@^1.7.0:
- version "1.13.1"
- resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3"
- dependencies:
- asn1 "~0.2.3"
- assert-plus "^1.0.0"
- dashdash "^1.12.0"
- getpass "^0.1.1"
- optionalDependencies:
- bcrypt-pbkdf "^1.0.0"
- ecc-jsbn "~0.1.1"
- jsbn "~0.1.0"
- tweetnacl "~0.14.0"
-
-stream-browserify@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db"
- dependencies:
- inherits "~2.0.1"
- readable-stream "^2.0.2"
-
-stream-combiner2@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe"
- dependencies:
- duplexer2 "~0.1.0"
- readable-stream "^2.0.2"
-
-stream-http@^2.0.0:
- version "2.8.0"
- resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.0.tgz#fd86546dac9b1c91aff8fc5d287b98fafb41bc10"
- dependencies:
- builtin-status-codes "^3.0.0"
- inherits "^2.0.1"
- readable-stream "^2.3.3"
- to-arraybuffer "^1.0.0"
- xtend "^4.0.0"
-
-stream-splicer@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.0.tgz#1b63be438a133e4b671cc1935197600175910d83"
- dependencies:
- inherits "^2.0.1"
- readable-stream "^2.0.2"
-
-string-width@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
- dependencies:
- code-point-at "^1.0.0"
- is-fullwidth-code-point "^1.0.0"
- strip-ansi "^3.0.0"
-
-string-width@^2.0.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
- dependencies:
- is-fullwidth-code-point "^2.0.0"
- strip-ansi "^4.0.0"
-
-string.prototype.trim@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz#d04de2c89e137f4d7d206f086b5ed2fae6be8cea"
- dependencies:
- define-properties "^1.1.2"
- es-abstract "^1.5.0"
- function-bind "^1.0.2"
-
-string_decoder@~0.10.0, string_decoder@~0.10.x:
- version "0.10.31"
- resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
-
-string_decoder@~1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
- dependencies:
- safe-buffer "~5.1.0"
-
-stringstream@~0.0.4, stringstream@~0.0.5:
- version "0.0.5"
- resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
-
-strip-ansi@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
- dependencies:
- ansi-regex "^2.0.0"
-
-strip-ansi@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
- dependencies:
- ansi-regex "^3.0.0"
-
-strip-bom@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
-
-strip-json-comments@~2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
-
-subarg@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2"
- dependencies:
- minimist "^1.1.0"
-
-supports-color@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
-
-supports-color@^3.1.0:
- version "3.2.3"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"
- dependencies:
- has-flag "^1.0.0"
-
-syntax-error@^1.1.1:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.4.0.tgz#2d9d4ff5c064acb711594a3e3b95054ad51d907c"
- dependencies:
- acorn-node "^1.2.0"
-
-table@^3.7.8:
- version "3.8.3"
- resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f"
- dependencies:
- ajv "^4.7.0"
- ajv-keywords "^1.0.0"
- chalk "^1.1.1"
- lodash "^4.0.0"
- slice-ansi "0.0.4"
- string-width "^2.0.0"
-
-tape@^4.6.2:
- version "4.8.0"
- resolved "https://registry.yarnpkg.com/tape/-/tape-4.8.0.tgz#f6a9fec41cc50a1de50fa33603ab580991f6068e"
- dependencies:
- deep-equal "~1.0.1"
- defined "~1.0.0"
- for-each "~0.3.2"
- function-bind "~1.1.0"
- glob "~7.1.2"
- has "~1.0.1"
- inherits "~2.0.3"
- minimist "~1.2.0"
- object-inspect "~1.3.0"
- resolve "~1.4.0"
- resumer "~0.0.0"
- string.prototype.trim "~1.1.2"
- through "~2.3.8"
-
-text-table@~0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
-
-throttleit@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c"
-
-through2@^2.0.0:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be"
- dependencies:
- readable-stream "^2.1.5"
- xtend "~4.0.1"
-
-"through@>=2.2.7 <3", through@^2.3.6, through@^2.3.8, through@~2.3.4, through@~2.3.8:
- version "2.3.8"
- resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
-
-timers-browserify@^1.0.1:
- version "1.4.2"
- resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d"
- dependencies:
- process "~0.11.0"
-
-to-arraybuffer@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
-
-tough-cookie@~2.3.0, tough-cookie@~2.3.3:
- version "2.3.3"
- resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561"
- dependencies:
- punycode "^1.4.1"
-
-tty-browserify@~0.0.0:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811"
-
-tunnel-agent@^0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
- dependencies:
- safe-buffer "^5.0.1"
-
-tunnel-agent@~0.4.1:
- version "0.4.3"
- resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb"
-
-tweetnacl@^0.14.3, tweetnacl@~0.14.0:
- version "0.14.5"
- resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
-
-type-check@~0.3.2:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
- dependencies:
- prelude-ls "~1.1.2"
-
-typedarray@^0.0.6, typedarray@~0.0.5:
- version "0.0.6"
- resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
-
-uglify-js@^2.6:
- version "2.8.29"
- resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd"
- dependencies:
- source-map "~0.5.1"
- yargs "~3.10.0"
- optionalDependencies:
- uglify-to-browserify "~1.0.0"
-
-uglify-to-browserify@~1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
-
-umd@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.1.tgz#8ae556e11011f63c2596708a8837259f01b3d60e"
-
-url@~0.11.0:
- version "0.11.0"
- resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
- dependencies:
- punycode "1.3.2"
- querystring "0.2.0"
-
-user-home@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f"
- dependencies:
- os-homedir "^1.0.0"
-
-util-deprecate@~1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
-
-util@0.10.3, util@~0.10.1:
- version "0.10.3"
- resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
- dependencies:
- inherits "2.0.1"
-
-uuid@^3.0.0, uuid@^3.1.0:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14"
-
-verror@1.10.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
- dependencies:
- assert-plus "^1.0.0"
- core-util-is "1.0.2"
- extsprintf "^1.2.0"
-
-vm-browserify@~0.0.1:
- version "0.0.4"
- resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73"
- dependencies:
- indexof "0.0.1"
-
-wcwidth@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"
- dependencies:
- defaults "^1.0.3"
-
-which@1.2.x:
- version "1.2.14"
- resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5"
- dependencies:
- isexe "^2.0.0"
-
-which@^1.0.9, which@^1.1.1, which@^1.2.10, which@^1.2.9:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
- dependencies:
- isexe "^2.0.0"
-
-window-size@0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
-
-wordwrap@0.0.2:
- version "0.0.2"
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
-
-wordwrap@^1.0.0, wordwrap@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
-
-wordwrap@~0.0.2:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
-
-wrappy@1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
-
-write@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757"
- dependencies:
- mkdirp "^0.5.1"
-
-xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
-
-yallist@^2.1.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
-
-yargs@~3.10.0:
- version "3.10.0"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
- dependencies:
- camelcase "^1.0.2"
- cliui "^2.1.0"
- decamelize "^1.0.0"
- window-size "0.1.0"
-
-yauzl@2.4.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005"
- dependencies:
- fd-slicer "~1.0.1"
diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/LICENSE b/deps/npm/node_modules/request/node_modules/tough-cookie/LICENSE
deleted file mode 100644
index 22204e87583..00000000000
--- a/deps/npm/node_modules/request/node_modules/tough-cookie/LICENSE
+++ /dev/null
@@ -1,12 +0,0 @@
-Copyright (c) 2015, Salesforce.com, Inc.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
-3. Neither the name of Salesforce.com nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/lib/cookie.js b/deps/npm/node_modules/request/node_modules/tough-cookie/lib/cookie.js
deleted file mode 100644
index 32dc0f8dc7e..00000000000
--- a/deps/npm/node_modules/request/node_modules/tough-cookie/lib/cookie.js
+++ /dev/null
@@ -1,1482 +0,0 @@
-/*!
- * Copyright (c) 2015, Salesforce.com, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. Neither the name of Salesforce.com nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-'use strict';
-var net = require('net');
-var urlParse = require('url').parse;
-var util = require('util');
-var pubsuffix = require('./pubsuffix-psl');
-var Store = require('./store').Store;
-var MemoryCookieStore = require('./memstore').MemoryCookieStore;
-var pathMatch = require('./pathMatch').pathMatch;
-var VERSION = require('./version');
-
-var punycode;
-try {
- punycode = require('punycode');
-} catch(e) {
- console.warn("tough-cookie: can't load punycode; won't use punycode for domain normalization");
-}
-
-// From RFC6265 S4.1.1
-// note that it excludes \x3B ";"
-var COOKIE_OCTETS = /^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/;
-
-var CONTROL_CHARS = /[\x00-\x1F]/;
-
-// From Chromium // '\r', '\n' and '\0' should be treated as a terminator in
-// the "relaxed" mode, see:
-// https://github.com/ChromiumWebApps/chromium/blob/b3d3b4da8bb94c1b2e061600df106d590fda3620/net/cookies/parsed_cookie.cc#L60
-var TERMINATORS = ['\n', '\r', '\0'];
-
-// RFC6265 S4.1.1 defines path value as 'any CHAR except CTLs or ";"'
-// Note ';' is \x3B
-var PATH_VALUE = /[\x20-\x3A\x3C-\x7E]+/;
-
-// date-time parsing constants (RFC6265 S5.1.1)
-
-var DATE_DELIM = /[\x09\x20-\x2F\x3B-\x40\x5B-\x60\x7B-\x7E]/;
-
-var MONTH_TO_NUM = {
- jan:0, feb:1, mar:2, apr:3, may:4, jun:5,
- jul:6, aug:7, sep:8, oct:9, nov:10, dec:11
-};
-var NUM_TO_MONTH = [
- 'Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'
-];
-var NUM_TO_DAY = [
- 'Sun','Mon','Tue','Wed','Thu','Fri','Sat'
-];
-
-var MAX_TIME = 2147483647000; // 31-bit max
-var MIN_TIME = 0; // 31-bit min
-
-/*
- * Parses a Natural number (i.e., non-negative integer) with either the
- * <min>*<max>DIGIT ( non-digit *OCTET )
- * or
- * <min>*<max>DIGIT
- * grammar (RFC6265 S5.1.1).
- *
- * The "trailingOK" boolean controls if the grammar accepts a
- * "( non-digit *OCTET )" trailer.
- */
-function parseDigits(token, minDigits, maxDigits, trailingOK) {
- var count = 0;
- while (count < token.length) {
- var c = token.charCodeAt(count);
- // "non-digit = %x00-2F / %x3A-FF"
- if (c <= 0x2F || c >= 0x3A) {
- break;
- }
- count++;
- }
-
- // constrain to a minimum and maximum number of digits.
- if (count < minDigits || count > maxDigits) {
- return null;
- }
-
- if (!trailingOK && count != token.length) {
- return null;
- }
-
- return parseInt(token.substr(0,count), 10);
-}
-
-function parseTime(token) {
- var parts = token.split(':');
- var result = [0,0,0];
-
- /* RF6256 S5.1.1:
- * time = hms-time ( non-digit *OCTET )
- * hms-time = time-field ":" time-field ":" time-field
- * time-field = 1*2DIGIT
- */
-
- if (parts.length !== 3) {
- return null;
- }
-
- for (var i = 0; i < 3; i++) {
- // "time-field" must be strictly "1*2DIGIT", HOWEVER, "hms-time" can be
- // followed by "( non-digit *OCTET )" so therefore the last time-field can
- // have a trailer
- var trailingOK = (i == 2);
- var num = parseDigits(parts[i], 1, 2, trailingOK);
- if (num === null) {
- return null;
- }
- result[i] = num;
- }
-
- return result;
-}
-
-function parseMonth(token) {
- token = String(token).substr(0,3).toLowerCase();
- var num = MONTH_TO_NUM[token];
- return num >= 0 ? num : null;
-}
-
-/*
- * RFC6265 S5.1.1 date parser (see RFC for full grammar)
- */
-function parseDate(str) {
- if (!str) {
- return;
- }
-
- /* RFC6265 S5.1.1:
- * 2. Process each date-token sequentially in the order the date-tokens
- * appear in the cookie-date
- */
- var tokens = str.split(DATE_DELIM);
- if (!tokens) {
- return;
- }
-
- var hour = null;
- var minute = null;
- var second = null;
- var dayOfMonth = null;
- var month = null;
- var year = null;
-
- for (var i=0; i<tokens.length; i++) {
- var token = tokens[i].trim();
- if (!token.length) {
- continue;
- }
-
- var result;
-
- /* 2.1. If the found-time flag is not set and the token matches the time
- * production, set the found-time flag and set the hour- value,
- * minute-value, and second-value to the numbers denoted by the digits in
- * the date-token, respectively. Skip the remaining sub-steps and continue
- * to the next date-token.
- */
- if (second === null) {
- result = parseTime(token);
- if (result) {
- hour = result[0];
- minute = result[1];
- second = result[2];
- continue;
- }
- }
-
- /* 2.2. If the found-day-of-month flag is not set and the date-token matches
- * the day-of-month production, set the found-day-of- month flag and set
- * the day-of-month-value to the number denoted by the date-token. Skip
- * the remaining sub-steps and continue to the next date-token.
- */
- if (dayOfMonth === null) {
- // "day-of-month = 1*2DIGIT ( non-digit *OCTET )"
- result = parseDigits(token, 1, 2, true);
- if (result !== null) {
- dayOfMonth = result;
- continue;
- }
- }
-
- /* 2.3. If the found-month flag is not set and the date-token matches the
- * month production, set the found-month flag and set the month-value to
- * the month denoted by the date-token. Skip the remaining sub-steps and
- * continue to the next date-token.
- */
- if (month === null) {
- result = parseMonth(token);
- if (result !== null) {
- month = result;
- continue;
- }
- }
-
- /* 2.4. If the found-year flag is not set and the date-token matches the
- * year production, set the found-year flag and set the year-value to the
- * number denoted by the date-token. Skip the remaining sub-steps and
- * continue to the next date-token.
- */
- if (year === null) {
- // "year = 2*4DIGIT ( non-digit *OCTET )"
- result = parseDigits(token, 2, 4, true);
- if (result !== null) {
- year = result;
- /* From S5.1.1:
- * 3. If the year-value is greater than or equal to 70 and less
- * than or equal to 99, increment the year-value by 1900.
- * 4. If the year-value is greater than or equal to 0 and less
- * than or equal to 69, increment the year-value by 2000.
- */
- if (year >= 70 && year <= 99) {
- year += 1900;
- } else if (year >= 0 && year <= 69) {
- year += 2000;
- }
- }
- }
- }
-
- /* RFC 6265 S5.1.1
- * "5. Abort these steps and fail to parse the cookie-date if:
- * * at least one of the found-day-of-month, found-month, found-
- * year, or found-time flags is not set,
- * * the day-of-month-value is less than 1 or greater than 31,
- * * the year-value is less than 1601,
- * * the hour-value is greater than 23,
- * * the minute-value is greater than 59, or
- * * the second-value is greater than 59.
- * (Note that leap seconds cannot be represented in this syntax.)"
- *
- * So, in order as above:
- */
- if (
- dayOfMonth === null || month === null || year === null || second === null ||
- dayOfMonth < 1 || dayOfMonth > 31 ||
- year < 1601 ||
- hour > 23 ||
- minute > 59 ||
- second > 59
- ) {
- return;
- }
-
- return new Date(Date.UTC(year, month, dayOfMonth, hour, minute, second));
-}
-
-function formatDate(date) {
- var d = date.getUTCDate(); d = d >= 10 ? d : '0'+d;
- var h = date.getUTCHours(); h = h >= 10 ? h : '0'+h;
- var m = date.getUTCMinutes(); m = m >= 10 ? m : '0'+m;
- var s = date.getUTCSeconds(); s = s >= 10 ? s : '0'+s;
- return NUM_TO_DAY[date.getUTCDay()] + ', ' +
- d+' '+ NUM_TO_MONTH[date.getUTCMonth()] +' '+ date.getUTCFullYear() +' '+
- h+':'+m+':'+s+' GMT';
-}
-
-// S5.1.2 Canonicalized Host Names
-function canonicalDomain(str) {
- if (str == null) {
- return null;
- }
- str = str.trim().replace(/^\./,''); // S4.1.2.3 & S5.2.3: ignore leading .
-
- // convert to IDN if any non-ASCII characters
- if (punycode && /[^\u0001-\u007f]/.test(str)) {
- str = punycode.toASCII(str);
- }
-
- return str.toLowerCase();
-}
-
-// S5.1.3 Domain Matching
-function domainMatch(str, domStr, canonicalize) {
- if (str == null || domStr == null) {
- return null;
- }
- if (canonicalize !== false) {
- str = canonicalDomain(str);
- domStr = canonicalDomain(domStr);
- }
-
- /*
- * "The domain string and the string are identical. (Note that both the
- * domain string and the string will have been canonicalized to lower case at
- * this point)"
- */
- if (str == domStr) {
- return true;
- }
-
- /* "All of the following [three] conditions hold:" (order adjusted from the RFC) */
-
- /* "* The string is a host name (i.e., not an IP address)." */
- if (net.isIP(str)) {
- return false;
- }
-
- /* "* The domain string is a suffix of the string" */
- var idx = str.indexOf(domStr);
- if (idx <= 0) {
- return false; // it's a non-match (-1) or prefix (0)
- }
-
- // e.g "a.b.c".indexOf("b.c") === 2
- // 5 === 3+2
- if (str.length !== domStr.length + idx) { // it's not a suffix
- return false;
- }
-
- /* "* The last character of the string that is not included in the domain
- * string is a %x2E (".") character." */
- if (str.substr(idx-1,1) !== '.') {
- return false;
- }
-
- return true;
-}
-
-
-// RFC6265 S5.1.4 Paths and Path-Match
-
-/*
- * "The user agent MUST use an algorithm equivalent to the following algorithm
- * to compute the default-path of a cookie:"
- *
- * Assumption: the path (and not query part or absolute uri) is passed in.
- */
-function defaultPath(path) {
- // "2. If the uri-path is empty or if the first character of the uri-path is not
- // a %x2F ("/") character, output %x2F ("/") and skip the remaining steps.
- if (!path || path.substr(0,1) !== "/") {
- return "/";
- }
-
- // "3. If the uri-path contains no more than one %x2F ("/") character, output
- // %x2F ("/") and skip the remaining step."
- if (path === "/") {
- return path;
- }
-
- var rightSlash = path.lastIndexOf("/");
- if (rightSlash === 0) {
- return "/";
- }
-
- // "4. Output the characters of the uri-path from the first character up to,
- // but not including, the right-most %x2F ("/")."
- return path.slice(0, rightSlash);
-}
-
-function trimTerminator(str) {
- for (var t = 0; t < TERMINATORS.length; t++) {
- var terminatorIdx = str.indexOf(TERMINATORS[t]);
- if (terminatorIdx !== -1) {
- str = str.substr(0,terminatorIdx);
- }
- }
-
- return str;
-}
-
-function parseCookiePair(cookiePair, looseMode) {
- cookiePair = trimTerminator(cookiePair);
-
- var firstEq = cookiePair.indexOf('=');
- if (looseMode) {
- if (firstEq === 0) { // '=' is immediately at start
- cookiePair = cookiePair.substr(1);
- firstEq = cookiePair.indexOf('='); // might still need to split on '='
- }
- } else { // non-loose mode
- if (firstEq <= 0) { // no '=' or is at start
- return; // needs to have non-empty "cookie-name"
- }
- }
-
- var cookieName, cookieValue;
- if (firstEq <= 0) {
- cookieName = "";
- cookieValue = cookiePair.trim();
- } else {
- cookieName = cookiePair.substr(0, firstEq).trim();
- cookieValue = cookiePair.substr(firstEq+1).trim();
- }
-
- if (CONTROL_CHARS.test(cookieName) || CONTROL_CHARS.test(cookieValue)) {
- return;
- }
-
- var c = new Cookie();
- c.key = cookieName;
- c.value = cookieValue;
- return c;
-}
-
-function parse(str, options) {
- if (!options || typeof options !== 'object') {
- options = {};
- }
- str = str.trim();
-
- // We use a regex to parse the "name-value-pair" part of S5.2
- var firstSemi = str.indexOf(';'); // S5.2 step 1
- var cookiePair = (firstSemi === -1) ? str : str.substr(0, firstSemi);
- var c = parseCookiePair(cookiePair, !!options.loose);
- if (!c) {
- return;
- }
-
- if (firstSemi === -1) {
- return c;
- }
-
- // S5.2.3 "unparsed-attributes consist of the remainder of the set-cookie-string
- // (including the %x3B (";") in question)." plus later on in the same section
- // "discard the first ";" and trim".
- var unparsed = str.slice(firstSemi + 1).trim();
-
- // "If the unparsed-attributes string is empty, skip the rest of these
- // steps."
- if (unparsed.length === 0) {
- return c;
- }
-
- /*
- * S5.2 says that when looping over the items "[p]rocess the attribute-name
- * and attribute-value according to the requirements in the following
- * subsections" for every item. Plus, for many of the individual attributes
- * in S5.3 it says to use the "attribute-value of the last attribute in the
- * cookie-attribute-list". Therefore, in this implementation, we overwrite
- * the previous value.
- */
- var cookie_avs = unparsed.split(';');
- while (cookie_avs.length) {
- var av = cookie_avs.shift().trim();
- if (av.length === 0) { // happens if ";;" appears
- continue;
- }
- var av_sep = av.indexOf('=');
- var av_key, av_value;
-
- if (av_sep === -1) {
- av_key = av;
- av_value = null;
- } else {
- av_key = av.substr(0,av_sep);
- av_value = av.substr(av_sep+1);
- }
-
- av_key = av_key.trim().toLowerCase();
-
- if (av_value) {
- av_value = av_value.trim();
- }
-
- switch(av_key) {
- case 'expires': // S5.2.1
- if (av_value) {
- var exp = parseDate(av_value);
- // "If the attribute-value failed to parse as a cookie date, ignore the
- // cookie-av."
- if (exp) {
- // over and underflow not realistically a concern: V8's getTime() seems to
- // store something larger than a 32-bit time_t (even with 32-bit node)
- c.expires = exp;
- }
- }
- break;
-
- case 'max-age': // S5.2.2
- if (av_value) {
- // "If the first character of the attribute-value is not a DIGIT or a "-"
- // character ...[or]... If the remainder of attribute-value contains a
- // non-DIGIT character, ignore the cookie-av."
- if (/^-?[0-9]+$/.test(av_value)) {
- var delta = parseInt(av_value, 10);
- // "If delta-seconds is less than or equal to zero (0), let expiry-time
- // be the earliest representable date and time."
- c.setMaxAge(delta);
- }
- }
- break;
-
- case 'domain': // S5.2.3
- // "If the attribute-value is empty, the behavior is undefined. However,
- // the user agent SHOULD ignore the cookie-av entirely."
- if (av_value) {
- // S5.2.3 "Let cookie-domain be the attribute-value without the leading %x2E
- // (".") character."
- var domain = av_value.trim().replace(/^\./, '');
- if (domain) {
- // "Convert the cookie-domain to lower case."
- c.domain = domain.toLowerCase();
- }
- }
- break;
-
- case 'path': // S5.2.4
- /*
- * "If the attribute-value is empty or if the first character of the
- * attribute-value is not %x2F ("/"):
- * Let cookie-path be the default-path.
- * Otherwise:
- * Let cookie-path be the attribute-value."
- *
- * We'll represent the default-path as null since it depends on the
- * context of the parsing.
- */
- c.path = av_value && av_value[0] === "/" ? av_value : null;
- break;
-
- case 'secure': // S5.2.5
- /*
- * "If the attribute-name case-insensitively matches the string "Secure",
- * the user agent MUST append an attribute to the cookie-attribute-list
- * with an attribute-name of Secure and an empty attribute-value."
- */
- c.secure = true;
- break;
-
- case 'httponly': // S5.2.6 -- effectively the same as 'secure'
- c.httpOnly = true;
- break;
-
- default:
- c.extensions = c.extensions || [];
- c.extensions.push(av);
- break;
- }
- }
-
- return c;
-}
-
-// avoid the V8 deoptimization monster!
-function jsonParse(str) {
- var obj;
- try {
- obj = JSON.parse(str);
- } catch (e) {
- return e;
- }
- return obj;
-}
-
-function fromJSON(str) {
- if (!str) {
- return null;
- }
-
- var obj;
- if (typeof str === 'string') {
- obj = jsonParse(str);
- if (obj instanceof Error) {
- return null;
- }
- } else {
- // assume it's an Object
- obj = str;
- }
-
- var c = new Cookie();
- for (var i=0; i<Cookie.serializableProperties.length; i++) {
- var prop = Cookie.serializableProperties[i];
- if (obj[prop] === undefined ||
- obj[prop] === Cookie.prototype[prop])
- {
- continue; // leave as prototype default
- }
-
- if (prop === 'expires' ||
- prop === 'creation' ||
- prop === 'lastAccessed')
- {
- if (obj[prop] === null) {
- c[prop] = null;
- } else {
- c[prop] = obj[prop] == "Infinity" ?
- "Infinity" : new Date(obj[prop]);
- }
- } else {
- c[prop] = obj[prop];
- }
- }
-
- return c;
-}
-
-/* Section 5.4 part 2:
- * "* Cookies with longer paths are listed before cookies with
- * shorter paths.
- *
- * * Among cookies that have equal-length path fields, cookies with
- * earlier creation-times are listed before cookies with later
- * creation-times."
- */
-
-function cookieCompare(a,b) {
- var cmp = 0;
-
- // descending for length: b CMP a
- var aPathLen = a.path ? a.path.length : 0;
- var bPathLen = b.path ? b.path.length : 0;
- cmp = bPathLen - aPathLen;
- if (cmp !== 0) {
- return cmp;
- }
-
- // ascending for time: a CMP b
- var aTime = a.creation ? a.creation.getTime() : MAX_TIME;
- var bTime = b.creation ? b.creation.getTime() : MAX_TIME;
- cmp = aTime - bTime;
- if (cmp !== 0) {
- return cmp;
- }
-
- // break ties for the same millisecond (precision of JavaScript's clock)
- cmp = a.creationIndex - b.creationIndex;
-
- return cmp;
-}
-
-// Gives the permutation of all possible pathMatch()es of a given path. The
-// array is in longest-to-shortest order. Handy for indexing.
-function permutePath(path) {
- if (path === '/') {
- return ['/'];
- }
- if (path.lastIndexOf('/') === path.length-1) {
- path = path.substr(0,path.length-1);
- }
- var permutations = [path];
- while (path.length > 1) {
- var lindex = path.lastIndexOf('/');
- if (lindex === 0) {
- break;
- }
- path = path.substr(0,lindex);
- permutations.push(path);
- }
- permutations.push('/');
- return permutations;
-}
-
-function getCookieContext(url) {
- if (url instanceof Object) {
- return url;
- }
- // NOTE: decodeURI will throw on malformed URIs (see GH-32).
- // Therefore, we will just skip decoding for such URIs.
- try {
- url = decodeURI(url);
- }
- catch(err) {
- // Silently swallow error
- }
-
- return urlParse(url);
-}
-
-function Cookie(options) {
- options = options || {};
-
- Object.keys(options).forEach(function(prop) {
- if (Cookie.prototype.hasOwnProperty(prop) &&
- Cookie.prototype[prop] !== options[prop] &&
- prop.substr(0,1) !== '_')
- {
- this[prop] = options[prop];
- }
- }, this);
-
- this.creation = this.creation || new Date();
-
- // used to break creation ties in cookieCompare():
- Object.defineProperty(this, 'creationIndex', {
- configurable: false,
- enumerable: false, // important for assert.deepEqual checks
- writable: true,
- value: ++Cookie.cookiesCreated
- });
-}
-
-Cookie.cookiesCreated = 0; // incremented each time a cookie is created
-
-Cookie.parse = parse;
-Cookie.fromJSON = fromJSON;
-
-Cookie.prototype.key = "";
-Cookie.prototype.value = "";
-
-// the order in which the RFC has them:
-Cookie.prototype.expires = "Infinity"; // coerces to literal Infinity
-Cookie.prototype.maxAge = null; // takes precedence over expires for TTL
-Cookie.prototype.domain = null;
-Cookie.prototype.path = null;
-Cookie.prototype.secure = false;
-Cookie.prototype.httpOnly = false;
-Cookie.prototype.extensions = null;
-
-// set by the CookieJar:
-Cookie.prototype.hostOnly = null; // boolean when set
-Cookie.prototype.pathIsDefault = null; // boolean when set
-Cookie.prototype.creation = null; // Date when set; defaulted by Cookie.parse
-Cookie.prototype.lastAccessed = null; // Date when set
-Object.defineProperty(Cookie.prototype, 'creationIndex', {
- configurable: true,
- enumerable: false,
- writable: true,
- value: 0
-});
-
-Cookie.serializableProperties = Object.keys(Cookie.prototype)
- .filter(function(prop) {
- return !(
- Cookie.prototype[prop] instanceof Function ||
- prop === 'creationIndex' ||
- prop.substr(0,1) === '_'
- );
- });
-
-Cookie.prototype.inspect = function inspect() {
- var now = Date.now();
- return 'Cookie="'+this.toString() +
- '; hostOnly='+(this.hostOnly != null ? this.hostOnly : '?') +
- '; aAge='+(this.lastAccessed ? (now-this.lastAccessed.getTime())+'ms' : '?') +
- '; cAge='+(this.creation ? (now-this.creation.getTime())+'ms' : '?') +
- '"';
-};
-
-// Use the new custom inspection symbol to add the custom inspect function if
-// available.
-if (util.inspect.custom) {
- Cookie.prototype[util.inspect.custom] = Cookie.prototype.inspect;
-}
-
-Cookie.prototype.toJSON = function() {
- var obj = {};
-
- var props = Cookie.serializableProperties;
- for (var i=0; i<props.length; i++) {
- var prop = props[i];
- if (this[prop] === Cookie.prototype[prop]) {
- continue; // leave as prototype default
- }
-
- if (prop === 'expires' ||
- prop === 'creation' ||
- prop === 'lastAccessed')
- {
- if (this[prop] === null) {
- obj[prop] = null;
- } else {
- obj[prop] = this[prop] == "Infinity" ? // intentionally not ===
- "Infinity" : this[prop].toISOString();
- }
- } else if (prop === 'maxAge') {
- if (this[prop] !== null) {
- // again, intentionally not ===
- obj[prop] = (this[prop] == Infinity || this[prop] == -Infinity) ?
- this[prop].toString() : this[prop];
- }
- } else {
- if (this[prop] !== Cookie.prototype[prop]) {
- obj[prop] = this[prop];
- }
- }
- }
-
- return obj;
-};
-
-Cookie.prototype.clone = function() {
- return fromJSON(this.toJSON());
-};
-
-Cookie.prototype.validate = function validate() {
- if (!COOKIE_OCTETS.test(this.value)) {
- return false;
- }
- if (this.expires != Infinity && !(this.expires instanceof Date) && !parseDate(this.expires)) {
- return false;
- }
- if (this.maxAge != null && this.maxAge <= 0) {
- return false; // "Max-Age=" non-zero-digit *DIGIT
- }
- if (this.path != null && !PATH_VALUE.test(this.path)) {
- return false;
- }
-
- var cdomain = this.cdomain();
- if (cdomain) {
- if (cdomain.match(/\.$/)) {
- return false; // S4.1.2.3 suggests that this is bad. domainMatch() tests confirm this
- }
- var suffix = pubsuffix.getPublicSuffix(cdomain);
- if (suffix == null) { // it's a public suffix
- return false;
- }
- }
- return true;
-};
-
-Cookie.prototype.setExpires = function setExpires(exp) {
- if (exp instanceof Date) {
- this.expires = exp;
- } else {
- this.expires = parseDate(exp) || "Infinity";
- }
-};
-
-Cookie.prototype.setMaxAge = function setMaxAge(age) {
- if (age === Infinity || age === -Infinity) {
- this.maxAge = age.toString(); // so JSON.stringify() works
- } else {
- this.maxAge = age;
- }
-};
-
-// gives Cookie header format
-Cookie.prototype.cookieString = function cookieString() {
- var val = this.value;
- if (val == null) {
- val = '';
- }
- if (this.key === '') {
- return val;
- }
- return this.key+'='+val;
-};
-
-// gives Set-Cookie header format
-Cookie.prototype.toString = function toString() {
- var str = this.cookieString();
-
- if (this.expires != Infinity) {
- if (this.expires instanceof Date) {
- str += '; Expires='+formatDate(this.expires);
- } else {
- str += '; Expires='+this.expires;
- }
- }
-
- if (this.maxAge != null && this.maxAge != Infinity) {
- str += '; Max-Age='+this.maxAge;
- }
-
- if (this.domain && !this.hostOnly) {
- str += '; Domain='+this.domain;
- }
- if (this.path) {
- str += '; Path='+this.path;
- }
-
- if (this.secure) {
- str += '; Secure';
- }
- if (this.httpOnly) {
- str += '; HttpOnly';
- }
- if (this.extensions) {
- this.extensions.forEach(function(ext) {
- str += '; '+ext;
- });
- }
-
- return str;
-};
-
-// TTL() partially replaces the "expiry-time" parts of S5.3 step 3 (setCookie()
-// elsewhere)
-// S5.3 says to give the "latest representable date" for which we use Infinity
-// For "expired" we use 0
-Cookie.prototype.TTL = function TTL(now) {
- /* RFC6265 S4.1.2.2 If a cookie has both the Max-Age and the Expires
- * attribute, the Max-Age attribute has precedence and controls the
- * expiration date of the cookie.
- * (Concurs with S5.3 step 3)
- */
- if (this.maxAge != null) {
- return this.maxAge<=0 ? 0 : this.maxAge*1000;
- }
-
- var expires = this.expires;
- if (expires != Infinity) {
- if (!(expires instanceof Date)) {
- expires = parseDate(expires) || Infinity;
- }
-
- if (expires == Infinity) {
- return Infinity;
- }
-
- return expires.getTime() - (now || Date.now());
- }
-
- return Infinity;
-};
-
-// expiryTime() replaces the "expiry-time" parts of S5.3 step 3 (setCookie()
-// elsewhere)
-Cookie.prototype.expiryTime = function expiryTime(now) {
- if (this.maxAge != null) {
- var relativeTo = now || this.creation || new Date();
- var age = (this.maxAge <= 0) ? -Infinity : this.maxAge*1000;
- return relativeTo.getTime() + age;
- }
-
- if (this.expires == Infinity) {
- return Infinity;
- }
- return this.expires.getTime();
-};
-
-// expiryDate() replaces the "expiry-time" parts of S5.3 step 3 (setCookie()
-// elsewhere), except it returns a Date
-Cookie.prototype.expiryDate = function expiryDate(now) {
- var millisec = this.expiryTime(now);
- if (millisec == Infinity) {
- return new Date(MAX_TIME);
- } else if (millisec == -Infinity) {
- return new Date(MIN_TIME);
- } else {
- return new Date(millisec);
- }
-};
-
-// This replaces the "persistent-flag" parts of S5.3 step 3
-Cookie.prototype.isPersistent = function isPersistent() {
- return (this.maxAge != null || this.expires != Infinity);
-};
-
-// Mostly S5.1.2 and S5.2.3:
-Cookie.prototype.cdomain =
-Cookie.prototype.canonicalizedDomain = function canonicalizedDomain() {
- if (this.domain == null) {
- return null;
- }
- return canonicalDomain(this.domain);
-};
-
-function CookieJar(store, options) {
- if (typeof options === "boolean") {
- options = {rejectPublicSuffixes: options};
- } else if (options == null) {
- options = {};
- }
- if (options.rejectPublicSuffixes != null) {
- this.rejectPublicSuffixes = options.rejectPublicSuffixes;
- }
- if (options.looseMode != null) {
- this.enableLooseMode = options.looseMode;
- }
-
- if (!store) {
- store = new MemoryCookieStore();
- }
- this.store = store;
-}
-CookieJar.prototype.store = null;
-CookieJar.prototype.rejectPublicSuffixes = true;
-CookieJar.prototype.enableLooseMode = false;
-var CAN_BE_SYNC = [];
-
-CAN_BE_SYNC.push('setCookie');
-CookieJar.prototype.setCookie = function(cookie, url, options, cb) {
- var err;
- var context = getCookieContext(url);
- if (options instanceof Function) {
- cb = options;
- options = {};
- }
-
- var host = canonicalDomain(context.hostname);
- var loose = this.enableLooseMode;
- if (options.loose != null) {
- loose = options.loose;
- }
-
- // S5.3 step 1
- if (!(cookie instanceof Cookie)) {
- cookie = Cookie.parse(cookie, { loose: loose });
- }
- if (!cookie) {
- err = new Error("Cookie failed to parse");
- return cb(options.ignoreError ? null : err);
- }
-
- // S5.3 step 2
- var now = options.now || new Date(); // will assign later to save effort in the face of errors
-
- // S5.3 step 3: NOOP; persistent-flag and expiry-time is handled by getCookie()
-
- // S5.3 step 4: NOOP; domain is null by default
-
- // S5.3 step 5: public suffixes
- if (this.rejectPublicSuffixes && cookie.domain) {
- var suffix = pubsuffix.getPublicSuffix(cookie.cdomain());
- if (suffix == null) { // e.g. "com"
- err = new Error("Cookie has domain set to a public suffix");
- return cb(options.ignoreError ? null : err);
- }
- }
-
- // S5.3 step 6:
- if (cookie.domain) {
- if (!domainMatch(host, cookie.cdomain(), false)) {
- err = new Error("Cookie not in this host's domain. Cookie:"+cookie.cdomain()+" Request:"+host);
- return cb(options.ignoreError ? null : err);
- }
-
- if (cookie.hostOnly == null) { // don't reset if already set
- cookie.hostOnly = false;
- }
-
- } else {
- cookie.hostOnly = true;
- cookie.domain = host;
- }
-
- //S5.2.4 If the attribute-value is empty or if the first character of the
- //attribute-value is not %x2F ("/"):
- //Let cookie-path be the default-path.
- if (!cookie.path || cookie.path[0] !== '/') {
- cookie.path = defaultPath(context.pathname);
- cookie.pathIsDefault = true;
- }
-
- // S5.3 step 8: NOOP; secure attribute
- // S5.3 step 9: NOOP; httpOnly attribute
-
- // S5.3 step 10
- if (options.http === false && cookie.httpOnly) {
- err = new Error("Cookie is HttpOnly and this isn't an HTTP API");
- return cb(options.ignoreError ? null : err);
- }
-
- var store = this.store;
-
- if (!store.updateCookie) {
- store.updateCookie = function(oldCookie, newCookie, cb) {
- this.putCookie(newCookie, cb);
- };
- }
-
- function withCookie(err, oldCookie) {
- if (err) {
- return cb(err);
- }
-
- var next = function(err) {
- if (err) {
- return cb(err);
- } else {
- cb(null, cookie);
- }
- };
-
- if (oldCookie) {
- // S5.3 step 11 - "If the cookie store contains a cookie with the same name,
- // domain, and path as the newly created cookie:"
- if (options.http === false && oldCookie.httpOnly) { // step 11.2
- err = new Error("old Cookie is HttpOnly and this isn't an HTTP API");
- return cb(options.ignoreError ? null : err);
- }
- cookie.creation = oldCookie.creation; // step 11.3
- cookie.creationIndex = oldCookie.creationIndex; // preserve tie-breaker
- cookie.lastAccessed = now;
- // Step 11.4 (delete cookie) is implied by just setting the new one:
- store.updateCookie(oldCookie, cookie, next); // step 12
-
- } else {
- cookie.creation = cookie.lastAccessed = now;
- store.putCookie(cookie, next); // step 12
- }
- }
-
- store.findCookie(cookie.domain, cookie.path, cookie.key, withCookie);
-};
-
-// RFC6365 S5.4
-CAN_BE_SYNC.push('getCookies');
-CookieJar.prototype.getCookies = function(url, options, cb) {
- var context = getCookieContext(url);
- if (options instanceof Function) {
- cb = options;
- options = {};
- }
-
- var host = canonicalDomain(context.hostname);
- var path = context.pathname || '/';
-
- var secure = options.secure;
- if (secure == null && context.protocol &&
- (context.protocol == 'https:' || context.protocol == 'wss:'))
- {
- secure = true;
- }
-
- var http = options.http;
- if (http == null) {
- http = true;
- }
-
- var now = options.now || Date.now();
- var expireCheck = options.expire !== false;
- var allPaths = !!options.allPaths;
- var store = this.store;
-
- function matchingCookie(c) {
- // "Either:
- // The cookie's host-only-flag is true and the canonicalized
- // request-host is identical to the cookie's domain.
- // Or:
- // The cookie's host-only-flag is false and the canonicalized
- // request-host domain-matches the cookie's domain."
- if (c.hostOnly) {
- if (c.domain != host) {
- return false;
- }
- } else {
- if (!domainMatch(host, c.domain, false)) {
- return false;
- }
- }
-
- // "The request-uri's path path-matches the cookie's path."
- if (!allPaths && !pathMatch(path, c.path)) {
- return false;
- }
-
- // "If the cookie's secure-only-flag is true, then the request-uri's
- // scheme must denote a "secure" protocol"
- if (c.secure && !secure) {
- return false;
- }
-
- // "If the cookie's http-only-flag is true, then exclude the cookie if the
- // cookie-string is being generated for a "non-HTTP" API"
- if (c.httpOnly && !http) {
- return false;
- }
-
- // deferred from S5.3
- // non-RFC: allow retention of expired cookies by choice
- if (expireCheck && c.expiryTime() <= now) {
- store.removeCookie(c.domain, c.path, c.key, function(){}); // result ignored
- return false;
- }
-
- return true;
- }
-
- store.findCookies(host, allPaths ? null : path, function(err,cookies) {
- if (err) {
- return cb(err);
- }
-
- cookies = cookies.filter(matchingCookie);
-
- // sorting of S5.4 part 2
- if (options.sort !== false) {
- cookies = cookies.sort(cookieCompare);
- }
-
- // S5.4 part 3
- var now = new Date();
- cookies.forEach(function(c) {
- c.lastAccessed = now;
- });
- // TODO persist lastAccessed
-
- cb(null,cookies);
- });
-};
-
-CAN_BE_SYNC.push('getCookieString');
-CookieJar.prototype.getCookieString = function(/*..., cb*/) {
- var args = Array.prototype.slice.call(arguments,0);
- var cb = args.pop();
- var next = function(err,cookies) {
- if (err) {
- cb(err);
- } else {
- cb(null, cookies
- .sort(cookieCompare)
- .map(function(c){
- return c.cookieString();
- })
- .join('; '));
- }
- };
- args.push(next);
- this.getCookies.apply(this,args);
-};
-
-CAN_BE_SYNC.push('getSetCookieStrings');
-CookieJar.prototype.getSetCookieStrings = function(/*..., cb*/) {
- var args = Array.prototype.slice.call(arguments,0);
- var cb = args.pop();
- var next = function(err,cookies) {
- if (err) {
- cb(err);
- } else {
- cb(null, cookies.map(function(c){
- return c.toString();
- }));
- }
- };
- args.push(next);
- this.getCookies.apply(this,args);
-};
-
-CAN_BE_SYNC.push('serialize');
-CookieJar.prototype.serialize = function(cb) {
- var type = this.store.constructor.name;
- if (type === 'Object') {
- type = null;
- }
-
- // update README.md "Serialization Format" if you change this, please!
- var serialized = {
- // The version of tough-cookie that serialized this jar. Generally a good
- // practice since future versions can make data import decisions based on
- // known past behavior. When/if this matters, use `semver`.
- version: 'tough-cookie@'+VERSION,
-
- // add the store type, to make humans happy:
- storeType: type,
-
- // CookieJar configuration:
- rejectPublicSuffixes: !!this.rejectPublicSuffixes,
-
- // this gets filled from getAllCookies:
- cookies: []
- };
-
- if (!(this.store.getAllCookies &&
- typeof this.store.getAllCookies === 'function'))
- {
- return cb(new Error('store does not support getAllCookies and cannot be serialized'));
- }
-
- this.store.getAllCookies(function(err,cookies) {
- if (err) {
- return cb(err);
- }
-
- serialized.cookies = cookies.map(function(cookie) {
- // convert to serialized 'raw' cookies
- cookie = (cookie instanceof Cookie) ? cookie.toJSON() : cookie;
-
- // Remove the index so new ones get assigned during deserialization
- delete cookie.creationIndex;
-
- return cookie;
- });
-
- return cb(null, serialized);
- });
-};
-
-// well-known name that JSON.stringify calls
-CookieJar.prototype.toJSON = function() {
- return this.serializeSync();
-};
-
-// use the class method CookieJar.deserialize instead of calling this directly
-CAN_BE_SYNC.push('_importCookies');
-CookieJar.prototype._importCookies = function(serialized, cb) {
- var jar = this;
- var cookies = serialized.cookies;
- if (!cookies || !Array.isArray(cookies)) {
- return cb(new Error('serialized jar has no cookies array'));
- }
- cookies = cookies.slice(); // do not modify the original
-
- function putNext(err) {
- if (err) {
- return cb(err);
- }
-
- if (!cookies.length) {
- return cb(err, jar);
- }
-
- var cookie;
- try {
- cookie = fromJSON(cookies.shift());
- } catch (e) {
- return cb(e);
- }
-
- if (cookie === null) {
- return putNext(null); // skip this cookie
- }
-
- jar.store.putCookie(cookie, putNext);
- }
-
- putNext();
-};
-
-CookieJar.deserialize = function(strOrObj, store, cb) {
- if (arguments.length !== 3) {
- // store is optional
- cb = store;
- store = null;
- }
-
- var serialized;
- if (typeof strOrObj === 'string') {
- serialized = jsonParse(strOrObj);
- if (serialized instanceof Error) {
- return cb(serialized);
- }
- } else {
- serialized = strOrObj;
- }
-
- var jar = new CookieJar(store, serialized.rejectPublicSuffixes);
- jar._importCookies(serialized, function(err) {
- if (err) {
- return cb(err);
- }
- cb(null, jar);
- });
-};
-
-CookieJar.deserializeSync = function(strOrObj, store) {
- var serialized = typeof strOrObj === 'string' ?
- JSON.parse(strOrObj) : strOrObj;
- var jar = new CookieJar(store, serialized.rejectPublicSuffixes);
-
- // catch this mistake early:
- if (!jar.store.synchronous) {
- throw new Error('CookieJar store is not synchronous; use async API instead.');
- }
-
- jar._importCookiesSync(serialized);
- return jar;
-};
-CookieJar.fromJSON = CookieJar.deserializeSync;
-
-CookieJar.prototype.clone = function(newStore, cb) {
- if (arguments.length === 1) {
- cb = newStore;
- newStore = null;
- }
-
- this.serialize(function(err,serialized) {
- if (err) {
- return cb(err);
- }
- CookieJar.deserialize(serialized, newStore, cb);
- });
-};
-
-CAN_BE_SYNC.push('removeAllCookies');
-CookieJar.prototype.removeAllCookies = function(cb) {
- var store = this.store;
-
- // Check that the store implements its own removeAllCookies(). The default
- // implementation in Store will immediately call the callback with a "not
- // implemented" Error.
- if (store.removeAllCookies instanceof Function &&
- store.removeAllCookies !== Store.prototype.removeAllCookies)
- {
- return store.removeAllCookies(cb);
- }
-
- store.getAllCookies(function(err, cookies) {
- if (err) {
- return cb(err);
- }
-
- if (cookies.length === 0) {
- return cb(null);
- }
-
- var completedCount = 0;
- var removeErrors = [];
-
- function removeCookieCb(removeErr) {
- if (removeErr) {
- removeErrors.push(removeErr);
- }
-
- completedCount++;
-
- if (completedCount === cookies.length) {
- return cb(removeErrors.length ? removeErrors[0] : null);
- }
- }
-
- cookies.forEach(function(cookie) {
- store.removeCookie(cookie.domain, cookie.path, cookie.key, removeCookieCb);
- });
- });
-};
-
-CookieJar.prototype._cloneSync = syncWrap('clone');
-CookieJar.prototype.cloneSync = function(newStore) {
- if (!newStore.synchronous) {
- throw new Error('CookieJar clone destination store is not synchronous; use async API instead.');
- }
- return this._cloneSync(newStore);
-};
-
-// Use a closure to provide a true imperative API for synchronous stores.
-function syncWrap(method) {
- return function() {
- if (!this.store.synchronous) {
- throw new Error('CookieJar store is not synchronous; use async API instead.');
- }
-
- var args = Array.prototype.slice.call(arguments);
- var syncErr, syncResult;
- args.push(function syncCb(err, result) {
- syncErr = err;
- syncResult = result;
- });
- this[method].apply(this, args);
-
- if (syncErr) {
- throw syncErr;
- }
- return syncResult;
- };
-}
-
-// wrap all declared CAN_BE_SYNC methods in the sync wrapper
-CAN_BE_SYNC.forEach(function(method) {
- CookieJar.prototype[method+'Sync'] = syncWrap(method);
-});
-
-exports.version = VERSION;
-exports.CookieJar = CookieJar;
-exports.Cookie = Cookie;
-exports.Store = Store;
-exports.MemoryCookieStore = MemoryCookieStore;
-exports.parseDate = parseDate;
-exports.formatDate = formatDate;
-exports.parse = parse;
-exports.fromJSON = fromJSON;
-exports.domainMatch = domainMatch;
-exports.defaultPath = defaultPath;
-exports.pathMatch = pathMatch;
-exports.getPublicSuffix = pubsuffix.getPublicSuffix;
-exports.cookieCompare = cookieCompare;
-exports.permuteDomain = require('./permuteDomain').permuteDomain;
-exports.permutePath = permutePath;
-exports.canonicalDomain = canonicalDomain;
diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/lib/memstore.js b/deps/npm/node_modules/request/node_modules/tough-cookie/lib/memstore.js
deleted file mode 100644
index d2b915c9359..00000000000
--- a/deps/npm/node_modules/request/node_modules/tough-cookie/lib/memstore.js
+++ /dev/null
@@ -1,181 +0,0 @@
-/*!
- * Copyright (c) 2015, Salesforce.com, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. Neither the name of Salesforce.com nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-'use strict';
-var Store = require('./store').Store;
-var permuteDomain = require('./permuteDomain').permuteDomain;
-var pathMatch = require('./pathMatch').pathMatch;
-var util = require('util');
-
-function MemoryCookieStore() {
- Store.call(this);
- this.idx = {};
-}
-util.inherits(MemoryCookieStore, Store);
-exports.MemoryCookieStore = MemoryCookieStore;
-MemoryCookieStore.prototype.idx = null;
-
-// Since it's just a struct in RAM, this Store is synchronous
-MemoryCookieStore.prototype.synchronous = true;
-
-// force a default depth:
-MemoryCookieStore.prototype.inspect = function() {
- return "{ idx: "+util.inspect(this.idx, false, 2)+' }';
-};
-
-// Use the new custom inspection symbol to add the custom inspect function if
-// available.
-if (util.inspect.custom) {
- MemoryCookieStore.prototype[util.inspect.custom] = MemoryCookieStore.prototype.inspect;
-}
-
-MemoryCookieStore.prototype.findCookie = function(domain, path, key, cb) {
- if (!this.idx[domain]) {
- return cb(null,undefined);
- }
- if (!this.idx[domain][path]) {
- return cb(null,undefined);
- }
- return cb(null,this.idx[domain][path][key]||null);
-};
-
-MemoryCookieStore.prototype.findCookies = function(domain, path, cb) {
- var results = [];
- if (!domain) {
- return cb(null,[]);
- }
-
- var pathMatcher;
- if (!path) {
- // null means "all paths"
- pathMatcher = function matchAll(domainIndex) {
- for (var curPath in domainIndex) {
- var pathIndex = domainIndex[curPath];
- for (var key in pathIndex) {
- results.push(pathIndex[key]);
- }
- }
- };
-
- } else {
- pathMatcher = function matchRFC(domainIndex) {
- //NOTE: we should use path-match algorithm from S5.1.4 here
- //(see : https://github.com/ChromiumWebApps/chromium/blob/b3d3b4da8bb94c1b2e061600df106d590fda3620/net/cookies/canonical_cookie.cc#L299)
- Object.keys(domainIndex).forEach(function (cookiePath) {
- if (pathMatch(path, cookiePath)) {
- var pathIndex = domainIndex[cookiePath];
-
- for (var key in pathIndex) {
- results.push(pathIndex[key]);
- }
- }
- });
- };
- }
-
- var domains = permuteDomain(domain) || [domain];
- var idx = this.idx;
- domains.forEach(function(curDomain) {
- var domainIndex = idx[curDomain];
- if (!domainIndex) {
- return;
- }
- pathMatcher(domainIndex);
- });
-
- cb(null,results);
-};
-
-MemoryCookieStore.prototype.putCookie = function(cookie, cb) {
- if (!this.idx[cookie.domain]) {
- this.idx[cookie.domain] = {};
- }
- if (!this.idx[cookie.domain][cookie.path]) {
- this.idx[cookie.domain][cookie.path] = {};
- }
- this.idx[cookie.domain][cookie.path][cookie.key] = cookie;
- cb(null);
-};
-
-MemoryCookieStore.prototype.updateCookie = function(oldCookie, newCookie, cb) {
- // updateCookie() may avoid updating cookies that are identical. For example,
- // lastAccessed may not be important to some stores and an equality
- // comparison could exclude that field.
- this.putCookie(newCookie,cb);
-};
-
-MemoryCookieStore.prototype.removeCookie = function(domain, path, key, cb) {
- if (this.idx[domain] && this.idx[domain][path] && this.idx[domain][path][key]) {
- delete this.idx[domain][path][key];
- }
- cb(null);
-};
-
-MemoryCookieStore.prototype.removeCookies = function(domain, path, cb) {
- if (this.idx[domain]) {
- if (path) {
- delete this.idx[domain][path];
- } else {
- delete this.idx[domain];
- }
- }
- return cb(null);
-};
-
-MemoryCookieStore.prototype.removeAllCookies = function(cb) {
- this.idx = {};
- return cb(null);
-}
-
-MemoryCookieStore.prototype.getAllCookies = function(cb) {
- var cookies = [];
- var idx = this.idx;
-
- var domains = Object.keys(idx);
- domains.forEach(function(domain) {
- var paths = Object.keys(idx[domain]);
- paths.forEach(function(path) {
- var keys = Object.keys(idx[domain][path]);
- keys.forEach(function(key) {
- if (key !== null) {
- cookies.push(idx[domain][path][key]);
- }
- });
- });
- });
-
- // Sort by creationIndex so deserializing retains the creation order.
- // When implementing your own store, this SHOULD retain the order too
- cookies.sort(function(a,b) {
- return (a.creationIndex||0) - (b.creationIndex||0);
- });
-
- cb(null, cookies);
-};
diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/lib/pathMatch.js b/deps/npm/node_modules/request/node_modules/tough-cookie/lib/pathMatch.js
deleted file mode 100644
index 7c7a79f1f09..00000000000
--- a/deps/npm/node_modules/request/node_modules/tough-cookie/lib/pathMatch.js
+++ /dev/null
@@ -1,61 +0,0 @@
-/*!
- * Copyright (c) 2015, Salesforce.com, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. Neither the name of Salesforce.com nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-"use strict";
-/*
- * "A request-path path-matches a given cookie-path if at least one of the
- * following conditions holds:"
- */
-function pathMatch (reqPath, cookiePath) {
- // "o The cookie-path and the request-path are identical."
- if (cookiePath === reqPath) {
- return true;
- }
-
- var idx = reqPath.indexOf(cookiePath);
- if (idx === 0) {
- // "o The cookie-path is a prefix of the request-path, and the last
- // character of the cookie-path is %x2F ("/")."
- if (cookiePath.substr(-1) === "/") {
- return true;
- }
-
- // " o The cookie-path is a prefix of the request-path, and the first
- // character of the request-path that is not included in the cookie- path
- // is a %x2F ("/") character."
- if (reqPath.substr(cookiePath.length, 1) === "/") {
- return true;
- }
- }
-
- return false;
-}
-
-exports.pathMatch = pathMatch;
diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/lib/permuteDomain.js b/deps/npm/node_modules/request/node_modules/tough-cookie/lib/permuteDomain.js
deleted file mode 100644
index 91bf446277b..00000000000
--- a/deps/npm/node_modules/request/node_modules/tough-cookie/lib/permuteDomain.js
+++ /dev/null
@@ -1,56 +0,0 @@
-/*!
- * Copyright (c) 2015, Salesforce.com, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. Neither the name of Salesforce.com nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-"use strict";
-var pubsuffix = require('./pubsuffix-psl');
-
-// Gives the permutation of all possible domainMatch()es of a given domain. The
-// array is in shortest-to-longest order. Handy for indexing.
-function permuteDomain (domain) {
- var pubSuf = pubsuffix.getPublicSuffix(domain);
- if (!pubSuf) {
- return null;
- }
- if (pubSuf == domain) {
- return [domain];
- }
-
- var prefix = domain.slice(0, -(pubSuf.length + 1)); // ".example.com"
- var parts = prefix.split('.').reverse();
- var cur = pubSuf;
- var permutations = [cur];
- while (parts.length) {
- cur = parts.shift() + '.' + cur;
- permutations.push(cur);
- }
- return permutations;
-}
-
-exports.permuteDomain = permuteDomain;
diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/lib/pubsuffix-psl.js b/deps/npm/node_modules/request/node_modules/tough-cookie/lib/pubsuffix-psl.js
deleted file mode 100644
index c88329f8816..00000000000
--- a/deps/npm/node_modules/request/node_modules/tough-cookie/lib/pubsuffix-psl.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/*!
- * Copyright (c) 2018, Salesforce.com, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. Neither the name of Salesforce.com nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-'use strict';
-var psl = require('psl');
-
-function getPublicSuffix(domain) {
- return psl.get(domain);
-}
-
-exports.getPublicSuffix = getPublicSuffix;
diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/lib/store.js b/deps/npm/node_modules/request/node_modules/tough-cookie/lib/store.js
deleted file mode 100644
index 859208fc952..00000000000
--- a/deps/npm/node_modules/request/node_modules/tough-cookie/lib/store.js
+++ /dev/null
@@ -1,75 +0,0 @@
-/*!
- * Copyright (c) 2015, Salesforce.com, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. Neither the name of Salesforce.com nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-'use strict';
-/*jshint unused:false */
-
-function Store() {
-}
-exports.Store = Store;
-
-// Stores may be synchronous, but are still required to use a
-// Continuation-Passing Style API. The CookieJar itself will expose a "*Sync"
-// API that converts from synchronous-callbacks to imperative style.
-Store.prototype.synchronous = false;
-
-Store.prototype.findCookie = function(domain, path, key, cb) {
- throw new Error('findCookie is not implemented');
-};
-
-Store.prototype.findCookies = function(domain, path, cb) {
- throw new Error('findCookies is not implemented');
-};
-
-Store.prototype.putCookie = function(cookie, cb) {
- throw new Error('putCookie is not implemented');
-};
-
-Store.prototype.updateCookie = function(oldCookie, newCookie, cb) {
- // recommended default implementation:
- // return this.putCookie(newCookie, cb);
- throw new Error('updateCookie is not implemented');
-};
-
-Store.prototype.removeCookie = function(domain, path, key, cb) {
- throw new Error('removeCookie is not implemented');
-};
-
-Store.prototype.removeCookies = function(domain, path, cb) {
- throw new Error('removeCookies is not implemented');
-};
-
-Store.prototype.removeAllCookies = function(cb) {
- throw new Error('removeAllCookies is not implemented');
-}
-
-Store.prototype.getAllCookies = function(cb) {
- throw new Error('getAllCookies is not implemented (therefore jar cannot be serialized)');
-};
diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/lib/version.js b/deps/npm/node_modules/request/node_modules/tough-cookie/lib/version.js
deleted file mode 100644
index b34c6ae5037..00000000000
--- a/deps/npm/node_modules/request/node_modules/tough-cookie/lib/version.js
+++ /dev/null
@@ -1,2 +0,0 @@
-// generated by genversion
-module.exports = '2.5.0'
diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/package.json b/deps/npm/node_modules/request/node_modules/tough-cookie/package.json
deleted file mode 100644
index 8af9909ed51..00000000000
--- a/deps/npm/node_modules/request/node_modules/tough-cookie/package.json
+++ /dev/null
@@ -1,78 +0,0 @@
-{
- "author": {
- "name": "Jeremy Stashewsky",
- "email": "jstash@gmail.com",
- "website": "https://github.com/stash"
- },
- "contributors": [
- {
- "name": "Alexander Savin",
- "website": "https://github.com/apsavin"
- },
- {
- "name": "Ian Livingstone",
- "website": "https://github.com/ianlivingstone"
- },
- {
- "name": "Ivan Nikulin",
- "website": "https://github.com/inikulin"
- },
- {
- "name": "Lalit Kapoor",
- "website": "https://github.com/lalitkapoor"
- },
- {
- "name": "Sam Thompson",
- "website": "https://github.com/sambthompson"
- },
- {
- "name": "Sebastian Mayr",
- "website": "https://github.com/Sebmaster"
- }
- ],
- "license": "BSD-3-Clause",
- "name": "tough-cookie",
- "description": "RFC6265 Cookies and Cookie Jar for node.js",
- "keywords": [
- "HTTP",
- "cookie",
- "cookies",
- "set-cookie",
- "cookiejar",
- "jar",
- "RFC6265",
- "RFC2965"
- ],
- "version": "2.5.0",
- "homepage": "https://github.com/salesforce/tough-cookie",
- "repository": {
- "type": "git",
- "url": "git://github.com/salesforce/tough-cookie.git"
- },
- "bugs": {
- "url": "https://github.com/salesforce/tough-cookie/issues"
- },
- "main": "./lib/cookie",
- "files": [
- "lib"
- ],
- "scripts": {
- "version": "genversion lib/version.js && git add lib/version.js",
- "test": "vows test/*_test.js",
- "cover": "nyc --reporter=lcov --reporter=html vows test/*_test.js"
- },
- "engines": {
- "node": ">=0.8"
- },
- "devDependencies": {
- "async": "^1.4.2",
- "genversion": "^2.1.0",
- "nyc": "^11.6.0",
- "string.prototype.repeat": "^0.2.0",
- "vows": "^0.8.2"
- },
- "dependencies": {
- "psl": "^1.1.28",
- "punycode": "^2.1.1"
- }
-}
diff --git a/deps/npm/node_modules/request/package.json b/deps/npm/node_modules/request/package.json
deleted file mode 100644
index cbb2f2ede0f..00000000000
--- a/deps/npm/node_modules/request/package.json
+++ /dev/null
@@ -1,86 +0,0 @@
-{
- "name": "request",
- "description": "Simplified HTTP request client.",
- "keywords": [
- "http",
- "simple",
- "util",
- "utility"
- ],
- "version": "2.88.2",
- "author": "Mikeal Rogers <mikeal.rogers@gmail.com>",
- "repository": {
- "type": "git",
- "url": "https://github.com/request/request.git"
- },
- "bugs": {
- "url": "http://github.com/request/request/issues"
- },
- "license": "Apache-2.0",
- "engines": {
- "node": ">= 6"
- },
- "main": "index.js",
- "files": [
- "lib/",
- "index.js",
- "request.js"
- ],
- "dependencies": {
- "aws-sign2": "~0.7.0",
- "aws4": "^1.8.0",
- "caseless": "~0.12.0",
- "combined-stream": "~1.0.6",
- "extend": "~3.0.2",
- "forever-agent": "~0.6.1",
- "form-data": "~2.3.2",
- "har-validator": "~5.1.3",
- "http-signature": "~1.2.0",
- "is-typedarray": "~1.0.0",
- "isstream": "~0.1.2",
- "json-stringify-safe": "~5.0.1",
- "mime-types": "~2.1.19",
- "oauth-sign": "~0.9.0",
- "performance-now": "^2.1.0",
- "qs": "~6.5.2",
- "safe-buffer": "^5.1.2",
- "tough-cookie": "~2.5.0",
- "tunnel-agent": "^0.6.0",
- "uuid": "^3.3.2"
- },
- "scripts": {
- "test": "npm run lint && npm run test-ci && npm run test-browser",
- "test-ci": "taper tests/test-*.js",
- "test-cov": "nyc --reporter=lcov tape tests/test-*.js",
- "test-browser": "node tests/browser/start.js",
- "lint": "standard"
- },
- "devDependencies": {
- "bluebird": "^3.2.1",
- "browserify": "^13.0.1",
- "browserify-istanbul": "^2.0.0",
- "buffer-equal": "^1.0.0",
- "codecov": "^3.0.4",
- "coveralls": "^3.0.2",
- "function-bind": "^1.0.2",
- "karma": "^3.0.0",
- "karma-browserify": "^5.0.1",
- "karma-cli": "^1.0.0",
- "karma-coverage": "^1.0.0",
- "karma-phantomjs-launcher": "^1.0.0",
- "karma-tap": "^3.0.1",
- "nyc": "^14.1.1",
- "phantomjs-prebuilt": "^2.1.3",
- "rimraf": "^2.2.8",
- "server-destroy": "^1.0.1",
- "standard": "^9.0.0",
- "tape": "^4.6.0",
- "taper": "^0.5.0"
- },
- "greenkeeper": {
- "ignore": [
- "hawk",
- "har-validator"
- ]
- }
-}
diff --git a/deps/npm/node_modules/request/request.js b/deps/npm/node_modules/request/request.js
deleted file mode 100644
index 198b76093c7..00000000000
--- a/deps/npm/node_modules/request/request.js
+++ /dev/null
@@ -1,1553 +0,0 @@
-'use strict'
-
-var http = require('http')
-var https = require('https')
-var url = require('url')
-var util = require('util')
-var stream = require('stream')
-var zlib = require('zlib')
-var aws2 = require('aws-sign2')
-var aws4 = require('aws4')
-var httpSignature = require('http-signature')
-var mime = require('mime-types')
-var caseless = require('caseless')
-var ForeverAgent = require('forever-agent')
-var FormData = require('form-data')
-var extend = require('extend')
-var isstream = require('isstream')
-var isTypedArray = require('is-typedarray').strict
-var helpers = require('./lib/helpers')
-var cookies = require('./lib/cookies')
-var getProxyFromURI = require('./lib/getProxyFromURI')
-var Querystring = require('./lib/querystring').Querystring
-var Har = require('./lib/har').Har
-var Auth = require('./lib/auth').Auth
-var OAuth = require('./lib/oauth').OAuth
-var hawk = require('./lib/hawk')
-var Multipart = require('./lib/multipart').Multipart
-var Redirect = require('./lib/redirect').Redirect
-var Tunnel = require('./lib/tunnel').Tunnel
-var now = require('performance-now')
-var Buffer = require('safe-buffer').Buffer
-
-var safeStringify = helpers.safeStringify
-var isReadStream = helpers.isReadStream
-var toBase64 = helpers.toBase64
-var defer = helpers.defer
-var copy = helpers.copy
-var version = helpers.version
-var globalCookieJar = cookies.jar()
-
-var globalPool = {}
-
-function filterForNonReserved (reserved, options) {
- // Filter out properties that are not reserved.
- // Reserved values are passed in at call site.
-
- var object = {}
- for (var i in options) {
- var notReserved = (reserved.indexOf(i) === -1)
- if (notReserved) {
- object[i] = options[i]
- }
- }
- return object
-}
-
-function filterOutReservedFunctions (reserved, options) {
- // Filter out properties that are functions and are reserved.
- // Reserved values are passed in at call site.
-
- var object = {}
- for (var i in options) {
- var isReserved = !(reserved.indexOf(i) === -1)
- var isFunction = (typeof options[i] === 'function')
- if (!(isReserved && isFunction)) {
- object[i] = options[i]
- }
- }
- return object
-}
-
-// Return a simpler request object to allow serialization
-function requestToJSON () {
- var self = this
- return {
- uri: self.uri,
- method: self.method,
- headers: self.headers
- }
-}
-
-// Return a simpler response object to allow serialization
-function responseToJSON () {
- var self = this
- return {
- statusCode: self.statusCode,
- body: self.body,
- headers: self.headers,
- request: requestToJSON.call(self.request)
- }
-}
-
-function Request (options) {
- // if given the method property in options, set property explicitMethod to true
-
- // extend the Request instance with any non-reserved properties
- // remove any reserved functions from the options object
- // set Request instance to be readable and writable
- // call init
-
- var self = this
-
- // start with HAR, then override with additional options
- if (options.har) {
- self._har = new Har(self)
- options = self._har.options(options)
- }
-
- stream.Stream.call(self)
- var reserved = Object.keys(Request.prototype)
- var nonReserved = filterForNonReserved(reserved, options)
-
- extend(self, nonReserved)
- options = filterOutReservedFunctions(reserved, options)
-
- self.readable = true
- self.writable = true
- if (options.method) {
- self.explicitMethod = true
- }
- self._qs = new Querystring(self)
- self._auth = new Auth(self)
- self._oauth = new OAuth(self)
- self._multipart = new Multipart(self)
- self._redirect = new Redirect(self)
- self._tunnel = new Tunnel(self)
- self.init(options)
-}
-
-util.inherits(Request, stream.Stream)
-
-// Debugging
-Request.debug = process.env.NODE_DEBUG && /\brequest\b/.test(process.env.NODE_DEBUG)
-function debug () {
- if (Request.debug) {
- console.error('REQUEST %s', util.format.apply(util, arguments))
- }
-}
-Request.prototype.debug = debug
-
-Request.prototype.init = function (options) {
- // init() contains all the code to setup the request object.
- // the actual outgoing request is not started until start() is called
- // this function is called from both the constructor and on redirect.
- var self = this
- if (!options) {
- options = {}
- }
- self.headers = self.headers ? copy(self.headers) : {}
-
- // Delete headers with value undefined since they break
- // ClientRequest.OutgoingMessage.setHeader in node 0.12
- for (var headerName in self.headers) {
- if (typeof self.headers[headerName] === 'undefined') {
- delete self.headers[headerName]
- }
- }
-
- caseless.httpify(self, self.headers)
-
- if (!self.method) {
- self.method = options.method || 'GET'
- }
- if (!self.localAddress) {
- self.localAddress = options.localAddress
- }
-
- self._qs.init(options)
-
- debug(options)
- if (!self.pool && self.pool !== false) {
- self.pool = globalPool
- }
- self.dests = self.dests || []
- self.__isRequestRequest = true
-
- // Protect against double callback
- if (!self._callback && self.callback) {
- self._callback = self.callback
- self.callback = function () {
- if (self._callbackCalled) {
- return // Print a warning maybe?
- }
- self._callbackCalled = true
- self._callback.apply(self, arguments)
- }
- self.on('error', self.callback.bind())
- self.on('complete', self.callback.bind(self, null))
- }
-
- // People use this property instead all the time, so support it
- if (!self.uri && self.url) {
- self.uri = self.url
- delete self.url
- }
-
- // If there's a baseUrl, then use it as the base URL (i.e. uri must be
- // specified as a relative path and is appended to baseUrl).
- if (self.baseUrl) {
- if (typeof self.baseUrl !== 'string') {
- return self.emit('error', new Error('options.baseUrl must be a string'))
- }
-
- if (typeof self.uri !== 'string') {
- return self.emit('error', new Error('options.uri must be a string when using options.baseUrl'))
- }
-
- if (self.uri.indexOf('//') === 0 || self.uri.indexOf('://') !== -1) {
- return self.emit('error', new Error('options.uri must be a path when using options.baseUrl'))
- }
-
- // Handle all cases to make sure that there's only one slash between
- // baseUrl and uri.
- var baseUrlEndsWithSlash = self.baseUrl.lastIndexOf('/') === self.baseUrl.length - 1
- var uriStartsWithSlash = self.uri.indexOf('/') === 0
-
- if (baseUrlEndsWithSlash && uriStartsWithSlash) {
- self.uri = self.baseUrl + self.uri.slice(1)
- } else if (baseUrlEndsWithSlash || uriStartsWithSlash) {
- self.uri = self.baseUrl + self.uri
- } else if (self.uri === '') {
- self.uri = self.baseUrl
- } else {
- self.uri = self.baseUrl + '/' + self.uri
- }
- delete self.baseUrl
- }
-
- // A URI is needed by this point, emit error if we haven't been able to get one
- if (!self.uri) {
- return self.emit('error', new Error('options.uri is a required argument'))
- }
-
- // If a string URI/URL was given, parse it into a URL object
- if (typeof self.uri === 'string') {
- self.uri = url.parse(self.uri)
- }
-
- // Some URL objects are not from a URL parsed string and need href added
- if (!self.uri.href) {
- self.uri.href = url.format(self.uri)
- }
-
- // DEPRECATED: Warning for users of the old Unix Sockets URL Scheme
- if (self.uri.protocol === 'unix:') {
- return self.emit('error', new Error('`unix://` URL scheme is no longer supported. Please use the format `http://unix:SOCKET:PATH`'))
- }
-
- // Support Unix Sockets
- if (self.uri.host === 'unix') {
- self.enableUnixSocket()
- }
-
- if (self.strictSSL === false) {
- self.rejectUnauthorized = false
- }
-
- if (!self.uri.pathname) { self.uri.pathname = '/' }
-
- if (!(self.uri.host || (self.uri.hostname && self.uri.port)) && !self.uri.isUnix) {
- // Invalid URI: it may generate lot of bad errors, like 'TypeError: Cannot call method `indexOf` of undefined' in CookieJar
- // Detect and reject it as soon as possible
- var faultyUri = url.format(self.uri)
- var message = 'Invalid URI "' + faultyUri + '"'
- if (Object.keys(options).length === 0) {
- // No option ? This can be the sign of a redirect
- // As this is a case where the user cannot do anything (they didn't call request directly with this URL)
- // they should be warned that it can be caused by a redirection (can save some hair)
- message += '. This can be caused by a crappy redirection.'
- }
- // This error was fatal
- self.abort()
- return self.emit('error', new Error(message))
- }
-
- if (!self.hasOwnProperty('proxy')) {
- self.proxy = getProxyFromURI(self.uri)
- }
-
- self.tunnel = self._tunnel.isEnabled()
- if (self.proxy) {
- self._tunnel.setup(options)
- }
-
- self._redirect.onRequest(options)
-
- self.setHost = false
- if (!self.hasHeader('host')) {
- var hostHeaderName = self.originalHostHeaderName || 'host'
- self.setHeader(hostHeaderName, self.uri.host)
- // Drop :port suffix from Host header if known protocol.
- if (self.uri.port) {
- if ((self.uri.port === '80' && self.uri.protocol === 'http:') ||
- (self.uri.port === '443' && self.uri.protocol === 'https:')) {
- self.setHeader(hostHeaderName, self.uri.hostname)
- }
- }
- self.setHost = true
- }
-
- self.jar(self._jar || options.jar)
-
- if (!self.uri.port) {
- if (self.uri.protocol === 'http:') { self.uri.port = 80 } else if (self.uri.protocol === 'https:') { self.uri.port = 443 }
- }
-
- if (self.proxy && !self.tunnel) {
- self.port = self.proxy.port
- self.host = self.proxy.hostname
- } else {
- self.port = self.uri.port
- self.host = self.uri.hostname
- }
-
- if (options.form) {
- self.form(options.form)
- }
-
- if (options.formData) {
- var formData = options.formData
- var requestForm = self.form()
- var appendFormValue = function (key, value) {
- if (value && value.hasOwnProperty('value') && value.hasOwnProperty('options')) {
- requestForm.append(key, value.value, value.options)
- } else {
- requestForm.append(key, value)
- }
- }
- for (var formKey in formData) {
- if (formData.hasOwnProperty(formKey)) {
- var formValue = formData[formKey]
- if (formValue instanceof Array) {
- for (var j = 0; j < formValue.length; j++) {
- appendFormValue(formKey, formValue[j])
- }
- } else {
- appendFormValue(formKey, formValue)
- }
- }
- }
- }
-
- if (options.qs) {
- self.qs(options.qs)
- }
-
- if (self.uri.path) {
- self.path = self.uri.path
- } else {
- self.path = self.uri.pathname + (self.uri.search || '')
- }
-
- if (self.path.length === 0) {
- self.path = '/'
- }
-
- // Auth must happen last in case signing is dependent on other headers
- if (options.aws) {
- self.aws(options.aws)
- }
-
- if (options.hawk) {
- self.hawk(options.hawk)
- }
-
- if (options.httpSignature) {
- self.httpSignature(options.httpSignature)
- }
-
- if (options.auth) {
- if (Object.prototype.hasOwnProperty.call(options.auth, 'username')) {
- options.auth.user = options.auth.username
- }
- if (Object.prototype.hasOwnProperty.call(options.auth, 'password')) {
- options.auth.pass = options.auth.password
- }
-
- self.auth(
- options.auth.user,
- options.auth.pass,
- options.auth.sendImmediately,
- options.auth.bearer
- )
- }
-
- if (self.gzip && !self.hasHeader('accept-encoding')) {
- self.setHeader('accept-encoding', 'gzip, deflate')
- }
-
- if (self.uri.auth && !self.hasHeader('authorization')) {
- var uriAuthPieces = self.uri.auth.split(':').map(function (item) { return self._qs.unescape(item) })
- self.auth(uriAuthPieces[0], uriAuthPieces.slice(1).join(':'), true)
- }
-
- if (!self.tunnel && self.proxy && self.proxy.auth && !self.hasHeader('proxy-authorization')) {
- var proxyAuthPieces = self.proxy.auth.split(':').map(function (item) { return self._qs.unescape(item) })
- var authHeader = 'Basic ' + toBase64(proxyAuthPieces.join(':'))
- self.setHeader('proxy-authorization', authHeader)
- }
-
- if (self.proxy && !self.tunnel) {
- self.path = (self.uri.protocol + '//' + self.uri.host + self.path)
- }
-
- if (options.json) {
- self.json(options.json)
- }
- if (options.multipart) {
- self.multipart(options.multipart)
- }
-
- if (options.time) {
- self.timing = true
-
- // NOTE: elapsedTime is deprecated in favor of .timings
- self.elapsedTime = self.elapsedTime || 0
- }
-
- function setContentLength () {
- if (isTypedArray(self.body)) {
- self.body = Buffer.from(self.body)
- }
-
- if (!self.hasHeader('content-length')) {
- var length
- if (typeof self.body === 'string') {
- length = Buffer.byteLength(self.body)
- } else if (Array.isArray(self.body)) {
- length = self.body.reduce(function (a, b) { return a + b.length }, 0)
- } else {
- length = self.body.length
- }
-
- if (length) {
- self.setHeader('content-length', length)
- } else {
- self.emit('error', new Error('Argument error, options.body.'))
- }
- }
- }
- if (self.body && !isstream(self.body)) {
- setContentLength()
- }
-
- if (options.oauth) {
- self.oauth(options.oauth)
- } else if (self._oauth.params && self.hasHeader('authorization')) {
- self.oauth(self._oauth.params)
- }
-
- var protocol = self.proxy && !self.tunnel ? self.proxy.protocol : self.uri.protocol
- var defaultModules = {'http:': http, 'https:': https}
- var httpModules = self.httpModules || {}
-
- self.httpModule = httpModules[protocol] || defaultModules[protocol]
-
- if (!self.httpModule) {
- return self.emit('error', new Error('Invalid protocol: ' + protocol))
- }
-
- if (options.ca) {
- self.ca = options.ca
- }
-
- if (!self.agent) {
- if (options.agentOptions) {
- self.agentOptions = options.agentOptions
- }
-
- if (options.agentClass) {
- self.agentClass = options.agentClass
- } else if (options.forever) {
- var v = version()
- // use ForeverAgent in node 0.10- only
- if (v.major === 0 && v.minor <= 10) {
- self.agentClass = protocol === 'http:' ? ForeverAgent : ForeverAgent.SSL
- } else {
- self.agentClass = self.httpModule.Agent
- self.agentOptions = self.agentOptions || {}
- self.agentOptions.keepAlive = true
- }
- } else {
- self.agentClass = self.httpModule.Agent
- }
- }
-
- if (self.pool === false) {
- self.agent = false
- } else {
- self.agent = self.agent || self.getNewAgent()
- }
-
- self.on('pipe', function (src) {
- if (self.ntick && self._started) {
- self.emit('error', new Error('You cannot pipe to this stream after the outbound request has started.'))
- }
- self.src = src
- if (isReadStream(src)) {
- if (!self.hasHeader('content-type')) {
- self.setHeader('content-type', mime.lookup(src.path))
- }
- } else {
- if (src.headers) {
- for (var i in src.headers) {
- if (!self.hasHeader(i)) {
- self.setHeader(i, src.headers[i])
- }
- }
- }
- if (self._json && !self.hasHeader('content-type')) {
- self.setHeader('content-type', 'application/json')
- }
- if (src.method && !self.explicitMethod) {
- self.method = src.method
- }
- }
-
- // self.on('pipe', function () {
- // console.error('You have already piped to this stream. Pipeing twice is likely to break the request.')
- // })
- })
-
- defer(function () {
- if (self._aborted) {
- return
- }
-
- var end = function () {
- if (self._form) {
- if (!self._auth.hasAuth) {
- self._form.pipe(self)
- } else if (self._auth.hasAuth && self._auth.sentAuth) {
- self._form.pipe(self)
- }
- }
- if (self._multipart && self._multipart.chunked) {
- self._multipart.body.pipe(self)
- }
- if (self.body) {
- if (isstream(self.body)) {
- self.body.pipe(self)
- } else {
- setContentLength()
- if (Array.isArray(self.body)) {
- self.body.forEach(function (part) {
- self.write(part)
- })
- } else {
- self.write(self.body)
- }
- self.end()
- }
- } else if (self.requestBodyStream) {
- console.warn('options.requestBodyStream is deprecated, please pass the request object to stream.pipe.')
- self.requestBodyStream.pipe(self)
- } else if (!self.src) {
- if (self._auth.hasAuth && !self._auth.sentAuth) {
- self.end()
- return
- }
- if (self.method !== 'GET' && typeof self.method !== 'undefined') {
- self.setHeader('content-length', 0)
- }
- self.end()
- }
- }
-
- if (self._form && !self.hasHeader('content-length')) {
- // Before ending the request, we had to compute the length of the whole form, asyncly
- self.setHeader(self._form.getHeaders(), true)
- self._form.getLength(function (err, length) {
- if (!err && !isNaN(length)) {
- self.setHeader('content-length', length)
- }
- end()
- })
- } else {
- end()
- }
-
- self.ntick = true
- })
-}
-
-Request.prototype.getNewAgent = function () {
- var self = this
- var Agent = self.agentClass
- var options = {}
- if (self.agentOptions) {
- for (var i in self.agentOptions) {
- options[i] = self.agentOptions[i]
- }
- }
- if (self.ca) {
- options.ca = self.ca
- }
- if (self.ciphers) {
- options.ciphers = self.ciphers
- }
- if (self.secureProtocol) {
- options.secureProtocol = self.secureProtocol
- }
- if (self.secureOptions) {
- options.secureOptions = self.secureOptions
- }
- if (typeof self.rejectUnauthorized !== 'undefined') {
- options.rejectUnauthorized = self.rejectUnauthorized
- }
-
- if (self.cert && self.key) {
- options.key = self.key
- options.cert = self.cert
- }
-
- if (self.pfx) {
- options.pfx = self.pfx
- }
-
- if (self.passphrase) {
- options.passphrase = self.passphrase
- }
-
- var poolKey = ''
-
- // different types of agents are in different pools
- if (Agent !== self.httpModule.Agent) {
- poolKey += Agent.name
- }
-
- // ca option is only relevant if proxy or destination are https
- var proxy = self.proxy
- if (typeof proxy === 'string') {
- proxy = url.parse(proxy)
- }
- var isHttps = (proxy && proxy.protocol === 'https:') || this.uri.protocol === 'https:'
-
- if (isHttps) {
- if (options.ca) {
- if (poolKey) {
- poolKey += ':'
- }
- poolKey += options.ca
- }
-
- if (typeof options.rejectUnauthorized !== 'undefined') {
- if (poolKey) {
- poolKey += ':'
- }
- poolKey += options.rejectUnauthorized
- }
-
- if (options.cert) {
- if (poolKey) {
- poolKey += ':'
- }
- poolKey += options.cert.toString('ascii') + options.key.toString('ascii')
- }
-
- if (options.pfx) {
- if (poolKey) {
- poolKey += ':'
- }
- poolKey += options.pfx.toString('ascii')
- }
-
- if (options.ciphers) {
- if (poolKey) {
- poolKey += ':'
- }
- poolKey += options.ciphers
- }
-
- if (options.secureProtocol) {
- if (poolKey) {
- poolKey += ':'
- }
- poolKey += options.secureProtocol
- }
-
- if (options.secureOptions) {
- if (poolKey) {
- poolKey += ':'
- }
- poolKey += options.secureOptions
- }
- }
-
- if (self.pool === globalPool && !poolKey && Object.keys(options).length === 0 && self.httpModule.globalAgent) {
- // not doing anything special. Use the globalAgent
- return self.httpModule.globalAgent
- }
-
- // we're using a stored agent. Make sure it's protocol-specific
- poolKey = self.uri.protocol + poolKey
-
- // generate a new agent for this setting if none yet exists
- if (!self.pool[poolKey]) {
- self.pool[poolKey] = new Agent(options)
- // properly set maxSockets on new agents
- if (self.pool.maxSockets) {
- self.pool[poolKey].maxSockets = self.pool.maxSockets
- }
- }
-
- return self.pool[poolKey]
-}
-
-Request.prototype.start = function () {
- // start() is called once we are ready to send the outgoing HTTP request.
- // this is usually called on the first write(), end() or on nextTick()
- var self = this
-
- if (self.timing) {
- // All timings will be relative to this request's startTime. In order to do this,
- // we need to capture the wall-clock start time (via Date), immediately followed
- // by the high-resolution timer (via now()). While these two won't be set
- // at the _exact_ same time, they should be close enough to be able to calculate
- // high-resolution, monotonically non-decreasing timestamps relative to startTime.
- var startTime = new Date().getTime()
- var startTimeNow = now()
- }
-
- if (self._aborted) {
- return
- }
-
- self._started = true
- self.method = self.method || 'GET'
- self.href = self.uri.href
-
- if (self.src && self.src.stat && self.src.stat.size && !self.hasHeader('content-length')) {
- self.setHeader('content-length', self.src.stat.size)
- }
- if (self._aws) {
- self.aws(self._aws, true)
- }
-
- // We have a method named auth, which is completely different from the http.request
- // auth option. If we don't remove it, we're gonna have a bad time.
- var reqOptions = copy(self)
- delete reqOptions.auth
-
- debug('make request', self.uri.href)
-
- // node v6.8.0 now supports a `timeout` value in `http.request()`, but we
- // should delete it for now since we handle timeouts manually for better
- // consistency with node versions before v6.8.0
- delete reqOptions.timeout
-
- try {
- self.req = self.httpModule.request(reqOptions)
- } catch (err) {
- self.emit('error', err)
- return
- }
-
- if (self.timing) {
- self.startTime = startTime
- self.startTimeNow = startTimeNow
-
- // Timing values will all be relative to startTime (by comparing to startTimeNow
- // so we have an accurate clock)
- self.timings = {}
- }
-
- var timeout
- if (self.timeout && !self.timeoutTimer) {
- if (self.timeout < 0) {
- timeout = 0
- } else if (typeof self.timeout === 'number' && isFinite(self.timeout)) {
- timeout = self.timeout
- }
- }
-
- self.req.on('response', self.onRequestResponse.bind(self))
- self.req.on('error', self.onRequestError.bind(self))
- self.req.on('drain', function () {
- self.emit('drain')
- })
-
- self.req.on('socket', function (socket) {
- // `._connecting` was the old property which was made public in node v6.1.0
- var isConnecting = socket._connecting || socket.connecting
- if (self.timing) {
- self.timings.socket = now() - self.startTimeNow
-
- if (isConnecting) {
- var onLookupTiming = function () {
- self.timings.lookup = now() - self.startTimeNow
- }
-
- var onConnectTiming = function () {
- self.timings.connect = now() - self.startTimeNow
- }
-
- socket.once('lookup', onLookupTiming)
- socket.once('connect', onConnectTiming)
-
- // clean up timing event listeners if needed on error
- self.req.once('error', function () {
- socket.removeListener('lookup', onLookupTiming)
- socket.removeListener('connect', onConnectTiming)
- })
- }
- }
-
- var setReqTimeout = function () {
- // This timeout sets the amount of time to wait *between* bytes sent
- // from the server once connected.
- //
- // In particular, it's useful for erroring if the server fails to send
- // data halfway through streaming a response.
- self.req.setTimeout(timeout, function () {
- if (self.req) {
- self.abort()
- var e = new Error('ESOCKETTIMEDOUT')
- e.code = 'ESOCKETTIMEDOUT'
- e.connect = false
- self.emit('error', e)
- }
- })
- }
- if (timeout !== undefined) {
- // Only start the connection timer if we're actually connecting a new
- // socket, otherwise if we're already connected (because this is a
- // keep-alive connection) do not bother. This is important since we won't
- // get a 'connect' event for an already connected socket.
- if (isConnecting) {
- var onReqSockConnect = function () {
- socket.removeListener('connect', onReqSockConnect)
- self.clearTimeout()
- setReqTimeout()
- }
-
- socket.on('connect', onReqSockConnect)
-
- self.req.on('error', function (err) { // eslint-disable-line handle-callback-err
- socket.removeListener('connect', onReqSockConnect)
- })
-
- // Set a timeout in memory - this block will throw if the server takes more
- // than `timeout` to write the HTTP status and headers (corresponding to
- // the on('response') event on the client). NB: this measures wall-clock
- // time, not the time between bytes sent by the server.
- self.timeoutTimer = setTimeout(function () {
- socket.removeListener('connect', onReqSockConnect)
- self.abort()
- var e = new Error('ETIMEDOUT')
- e.code = 'ETIMEDOUT'
- e.connect = true
- self.emit('error', e)
- }, timeout)
- } else {
- // We're already connected
- setReqTimeout()
- }
- }
- self.emit('socket', socket)
- })
-
- self.emit('request', self.req)
-}
-
-Request.prototype.onRequestError = function (error) {
- var self = this
- if (self._aborted) {
- return
- }
- if (self.req && self.req._reusedSocket && error.code === 'ECONNRESET' &&
- self.agent.addRequestNoreuse) {
- self.agent = { addRequest: self.agent.addRequestNoreuse.bind(self.agent) }
- self.start()
- self.req.end()
- return
- }
- self.clearTimeout()
- self.emit('error', error)
-}
-
-Request.prototype.onRequestResponse = function (response) {
- var self = this
-
- if (self.timing) {
- self.timings.response = now() - self.startTimeNow
- }
-
- debug('onRequestResponse', self.uri.href, response.statusCode, response.headers)
- response.on('end', function () {
- if (self.timing) {
- self.timings.end = now() - self.startTimeNow
- response.timingStart = self.startTime
-
- // fill in the blanks for any periods that didn't trigger, such as
- // no lookup or connect due to keep alive
- if (!self.timings.socket) {
- self.timings.socket = 0
- }
- if (!self.timings.lookup) {
- self.timings.lookup = self.timings.socket
- }
- if (!self.timings.connect) {
- self.timings.connect = self.timings.lookup
- }
- if (!self.timings.response) {
- self.timings.response = self.timings.connect
- }
-
- debug('elapsed time', self.timings.end)
-
- // elapsedTime includes all redirects
- self.elapsedTime += Math.round(self.timings.end)
-
- // NOTE: elapsedTime is deprecated in favor of .timings
- response.elapsedTime = self.elapsedTime
-
- // timings is just for the final fetch
- response.timings = self.timings
-
- // pre-calculate phase timings as well
- response.timingPhases = {
- wait: self.timings.socket,
- dns: self.timings.lookup - self.timings.socket,
- tcp: self.timings.connect - self.timings.lookup,
- firstByte: self.timings.response - self.timings.connect,
- download: self.timings.end - self.timings.response,
- total: self.timings.end
- }
- }
- debug('response end', self.uri.href, response.statusCode, response.headers)
- })
-
- if (self._aborted) {
- debug('aborted', self.uri.href)
- response.resume()
- return
- }
-
- self.response = response
- response.request = self
- response.toJSON = responseToJSON
-
- // XXX This is different on 0.10, because SSL is strict by default
- if (self.httpModule === https &&
- self.strictSSL && (!response.hasOwnProperty('socket') ||
- !response.socket.authorized)) {
- debug('strict ssl error', self.uri.href)
- var sslErr = response.hasOwnProperty('socket') ? response.socket.authorizationError : self.uri.href + ' does not support SSL'
- self.emit('error', new Error('SSL Error: ' + sslErr))
- return
- }
-
- // Save the original host before any redirect (if it changes, we need to
- // remove any authorization headers). Also remember the case of the header
- // name because lots of broken servers expect Host instead of host and we
- // want the caller to be able to specify this.
- self.originalHost = self.getHeader('host')
- if (!self.originalHostHeaderName) {
- self.originalHostHeaderName = self.hasHeader('host')
- }
- if (self.setHost) {
- self.removeHeader('host')
- }
- self.clearTimeout()
-
- var targetCookieJar = (self._jar && self._jar.setCookie) ? self._jar : globalCookieJar
- var addCookie = function (cookie) {
- // set the cookie if it's domain in the href's domain.
- try {
- targetCookieJar.setCookie(cookie, self.uri.href, {ignoreError: true})
- } catch (e) {
- self.emit('error', e)
- }
- }
-
- response.caseless = caseless(response.headers)
-
- if (response.caseless.has('set-cookie') && (!self._disableCookies)) {
- var headerName = response.caseless.has('set-cookie')
- if (Array.isArray(response.headers[headerName])) {
- response.headers[headerName].forEach(addCookie)
- } else {
- addCookie(response.headers[headerName])
- }
- }
-
- if (self._redirect.onResponse(response)) {
- return // Ignore the rest of the response
- } else {
- // Be a good stream and emit end when the response is finished.
- // Hack to emit end on close because of a core bug that never fires end
- response.on('close', function () {
- if (!self._ended) {
- self.response.emit('end')
- }
- })
-
- response.once('end', function () {
- self._ended = true
- })
-
- var noBody = function (code) {
- return (
- self.method === 'HEAD' ||
- // Informational
- (code >= 100 && code < 200) ||
- // No Content
- code === 204 ||
- // Not Modified
- code === 304
- )
- }
-
- var responseContent
- if (self.gzip && !noBody(response.statusCode)) {
- var contentEncoding = response.headers['content-encoding'] || 'identity'
- contentEncoding = contentEncoding.trim().toLowerCase()
-
- // Be more lenient with decoding compressed responses, since (very rarely)
- // servers send slightly invalid gzip responses that are still accepted
- // by common browsers.
- // Always using Z_SYNC_FLUSH is what cURL does.
- var zlibOptions = {
- flush: zlib.Z_SYNC_FLUSH,
- finishFlush: zlib.Z_SYNC_FLUSH
- }
-
- if (contentEncoding === 'gzip') {
- responseContent = zlib.createGunzip(zlibOptions)
- response.pipe(responseContent)
- } else if (contentEncoding === 'deflate') {
- responseContent = zlib.createInflate(zlibOptions)
- response.pipe(responseContent)
- } else {
- // Since previous versions didn't check for Content-Encoding header,
- // ignore any invalid values to preserve backwards-compatibility
- if (contentEncoding !== 'identity') {
- debug('ignoring unrecognized Content-Encoding ' + contentEncoding)
- }
- responseContent = response
- }
- } else {
- responseContent = response
- }
-
- if (self.encoding) {
- if (self.dests.length !== 0) {
- console.error('Ignoring encoding parameter as this stream is being piped to another stream which makes the encoding option invalid.')
- } else {
- responseContent.setEncoding(self.encoding)
- }
- }
-
- if (self._paused) {
- responseContent.pause()
- }
-
- self.responseContent = responseContent
-
- self.emit('response', response)
-
- self.dests.forEach(function (dest) {
- self.pipeDest(dest)
- })
-
- responseContent.on('data', function (chunk) {
- if (self.timing && !self.responseStarted) {
- self.responseStartTime = (new Date()).getTime()
-
- // NOTE: responseStartTime is deprecated in favor of .timings
- response.responseStartTime = self.responseStartTime
- }
- self._destdata = true
- self.emit('data', chunk)
- })
- responseContent.once('end', function (chunk) {
- self.emit('end', chunk)
- })
- responseContent.on('error', function (error) {
- self.emit('error', error)
- })
- responseContent.on('close', function () { self.emit('close') })
-
- if (self.callback) {
- self.readResponseBody(response)
- } else { // if no callback
- self.on('end', function () {
- if (self._aborted) {
- debug('aborted', self.uri.href)
- return
- }
- self.emit('complete', response)
- })
- }
- }
- debug('finish init function', self.uri.href)
-}
-
-Request.prototype.readResponseBody = function (response) {
- var self = this
- debug("reading response's body")
- var buffers = []
- var bufferLength = 0
- var strings = []
-
- self.on('data', function (chunk) {
- if (!Buffer.isBuffer(chunk)) {
- strings.push(chunk)
- } else if (chunk.length) {
- bufferLength += chunk.length
- buffers.push(chunk)
- }
- })
- self.on('end', function () {
- debug('end event', self.uri.href)
- if (self._aborted) {
- debug('aborted', self.uri.href)
- // `buffer` is defined in the parent scope and used in a closure it exists for the life of the request.
- // This can lead to leaky behavior if the user retains a reference to the request object.
- buffers = []
- bufferLength = 0
- return
- }
-
- if (bufferLength) {
- debug('has body', self.uri.href, bufferLength)
- response.body = Buffer.concat(buffers, bufferLength)
- if (self.encoding !== null) {
- response.body = response.body.toString(self.encoding)
- }
- // `buffer` is defined in the parent scope and used in a closure it exists for the life of the Request.
- // This can lead to leaky behavior if the user retains a reference to the request object.
- buffers = []
- bufferLength = 0
- } else if (strings.length) {
- // The UTF8 BOM [0xEF,0xBB,0xBF] is converted to [0xFE,0xFF] in the JS UTC16/UCS2 representation.
- // Strip this value out when the encoding is set to 'utf8', as upstream consumers won't expect it and it breaks JSON.parse().
- if (self.encoding === 'utf8' && strings[0].length > 0 && strings[0][0] === '\uFEFF') {
- strings[0] = strings[0].substring(1)
- }
- response.body = strings.join('')
- }
-
- if (self._json) {
- try {
- response.body = JSON.parse(response.body, self._jsonReviver)
- } catch (e) {
- debug('invalid JSON received', self.uri.href)
- }
- }
- debug('emitting complete', self.uri.href)
- if (typeof response.body === 'undefined' && !self._json) {
- response.body = self.encoding === null ? Buffer.alloc(0) : ''
- }
- self.emit('complete', response, response.body)
- })
-}
-
-Request.prototype.abort = function () {
- var self = this
- self._aborted = true
-
- if (self.req) {
- self.req.abort()
- } else if (self.response) {
- self.response.destroy()
- }
-
- self.clearTimeout()
- self.emit('abort')
-}
-
-Request.prototype.pipeDest = function (dest) {
- var self = this
- var response = self.response
- // Called after the response is received
- if (dest.headers && !dest.headersSent) {
- if (response.caseless.has('content-type')) {
- var ctname = response.caseless.has('content-type')
- if (dest.setHeader) {
- dest.setHeader(ctname, response.headers[ctname])
- } else {
- dest.headers[ctname] = response.headers[ctname]
- }
- }
-
- if (response.caseless.has('content-length')) {
- var clname = response.caseless.has('content-length')
- if (dest.setHeader) {
- dest.setHeader(clname, response.headers[clname])
- } else {
- dest.headers[clname] = response.headers[clname]
- }
- }
- }
- if (dest.setHeader && !dest.headersSent) {
- for (var i in response.headers) {
- // If the response content is being decoded, the Content-Encoding header
- // of the response doesn't represent the piped content, so don't pass it.
- if (!self.gzip || i !== 'content-encoding') {
- dest.setHeader(i, response.headers[i])
- }
- }
- dest.statusCode = response.statusCode
- }
- if (self.pipefilter) {
- self.pipefilter(response, dest)
- }
-}
-
-Request.prototype.qs = function (q, clobber) {
- var self = this
- var base
- if (!clobber && self.uri.query) {
- base = self._qs.parse(self.uri.query)
- } else {
- base = {}
- }
-
- for (var i in q) {
- base[i] = q[i]
- }
-
- var qs = self._qs.stringify(base)
-
- if (qs === '') {
- return self
- }
-
- self.uri = url.parse(self.uri.href.split('?')[0] + '?' + qs)
- self.url = self.uri
- self.path = self.uri.path
-
- if (self.uri.host === 'unix') {
- self.enableUnixSocket()
- }
-
- return self
-}
-Request.prototype.form = function (form) {
- var self = this
- if (form) {
- if (!/^application\/x-www-form-urlencoded\b/.test(self.getHeader('content-type'))) {
- self.setHeader('content-type', 'application/x-www-form-urlencoded')
- }
- self.body = (typeof form === 'string')
- ? self._qs.rfc3986(form.toString('utf8'))
- : self._qs.stringify(form).toString('utf8')
- return self
- }
- // create form-data object
- self._form = new FormData()
- self._form.on('error', function (err) {
- err.message = 'form-data: ' + err.message
- self.emit('error', err)
- self.abort()
- })
- return self._form
-}
-Request.prototype.multipart = function (multipart) {
- var self = this
-
- self._multipart.onRequest(multipart)
-
- if (!self._multipart.chunked) {
- self.body = self._multipart.body
- }
-
- return self
-}
-Request.prototype.json = function (val) {
- var self = this
-
- if (!self.hasHeader('accept')) {
- self.setHeader('accept', 'application/json')
- }
-
- if (typeof self.jsonReplacer === 'function') {
- self._jsonReplacer = self.jsonReplacer
- }
-
- self._json = true
- if (typeof val === 'boolean') {
- if (self.body !== undefined) {
- if (!/^application\/x-www-form-urlencoded\b/.test(self.getHeader('content-type'))) {
- self.body = safeStringify(self.body, self._jsonReplacer)
- } else {
- self.body = self._qs.rfc3986(self.body)
- }
- if (!self.hasHeader('content-type')) {
- self.setHeader('content-type', 'application/json')
- }
- }
- } else {
- self.body = safeStringify(val, self._jsonReplacer)
- if (!self.hasHeader('content-type')) {
- self.setHeader('content-type', 'application/json')
- }
- }
-
- if (typeof self.jsonReviver === 'function') {
- self._jsonReviver = self.jsonReviver
- }
-
- return self
-}
-Request.prototype.getHeader = function (name, headers) {
- var self = this
- var result, re, match
- if (!headers) {
- headers = self.headers
- }
- Object.keys(headers).forEach(function (key) {
- if (key.length !== name.length) {
- return
- }
- re = new RegExp(name, 'i')
- match = key.match(re)
- if (match) {
- result = headers[key]
- }
- })
- return result
-}
-Request.prototype.enableUnixSocket = function () {
- // Get the socket & request paths from the URL
- var unixParts = this.uri.path.split(':')
- var host = unixParts[0]
- var path = unixParts[1]
- // Apply unix properties to request
- this.socketPath = host
- this.uri.pathname = path
- this.uri.path = path
- this.uri.host = host
- this.uri.hostname = host
- this.uri.isUnix = true
-}
-
-Request.prototype.auth = function (user, pass, sendImmediately, bearer) {
- var self = this
-
- self._auth.onRequest(user, pass, sendImmediately, bearer)
-
- return self
-}
-Request.prototype.aws = function (opts, now) {
- var self = this
-
- if (!now) {
- self._aws = opts
- return self
- }
-
- if (opts.sign_version === 4 || opts.sign_version === '4') {
- // use aws4
- var options = {
- host: self.uri.host,
- path: self.uri.path,
- method: self.method,
- headers: self.headers,
- body: self.body
- }
- if (opts.service) {
- options.service = opts.service
- }
- var signRes = aws4.sign(options, {
- accessKeyId: opts.key,
- secretAccessKey: opts.secret,
- sessionToken: opts.session
- })
- self.setHeader('authorization', signRes.headers.Authorization)
- self.setHeader('x-amz-date', signRes.headers['X-Amz-Date'])
- if (signRes.headers['X-Amz-Security-Token']) {
- self.setHeader('x-amz-security-token', signRes.headers['X-Amz-Security-Token'])
- }
- } else {
- // default: use aws-sign2
- var date = new Date()
- self.setHeader('date', date.toUTCString())
- var auth = {
- key: opts.key,
- secret: opts.secret,
- verb: self.method.toUpperCase(),
- date: date,
- contentType: self.getHeader('content-type') || '',
- md5: self.getHeader('content-md5') || '',
- amazonHeaders: aws2.canonicalizeHeaders(self.headers)
- }
- var path = self.uri.path
- if (opts.bucket && path) {
- auth.resource = '/' + opts.bucket + path
- } else if (opts.bucket && !path) {
- auth.resource = '/' + opts.bucket
- } else if (!opts.bucket && path) {
- auth.resource = path
- } else if (!opts.bucket && !path) {
- auth.resource = '/'
- }
- auth.resource = aws2.canonicalizeResource(auth.resource)
- self.setHeader('authorization', aws2.authorization(auth))
- }
-
- return self
-}
-Request.prototype.httpSignature = function (opts) {
- var self = this
- httpSignature.signRequest({
- getHeader: function (header) {
- return self.getHeader(header, self.headers)
- },
- setHeader: function (header, value) {
- self.setHeader(header, value)
- },
- method: self.method,
- path: self.path
- }, opts)
- debug('httpSignature authorization', self.getHeader('authorization'))
-
- return self
-}
-Request.prototype.hawk = function (opts) {
- var self = this
- self.setHeader('Authorization', hawk.header(self.uri, self.method, opts))
-}
-Request.prototype.oauth = function (_oauth) {
- var self = this
-
- self._oauth.onRequest(_oauth)
-
- return self
-}
-
-Request.prototype.jar = function (jar) {
- var self = this
- var cookies
-
- if (self._redirect.redirectsFollowed === 0) {
- self.originalCookieHeader = self.getHeader('cookie')
- }
-
- if (!jar) {
- // disable cookies
- cookies = false
- self._disableCookies = true
- } else {
- var targetCookieJar = jar.getCookieString ? jar : globalCookieJar
- var urihref = self.uri.href
- // fetch cookie in the Specified host
- if (targetCookieJar) {
- cookies = targetCookieJar.getCookieString(urihref)
- }
- }
-
- // if need cookie and cookie is not empty
- if (cookies && cookies.length) {
- if (self.originalCookieHeader) {
- // Don't overwrite existing Cookie header
- self.setHeader('cookie', self.originalCookieHeader + '; ' + cookies)
- } else {
- self.setHeader('cookie', cookies)
- }
- }
- self._jar = jar
- return self
-}
-
-// Stream API
-Request.prototype.pipe = function (dest, opts) {
- var self = this
-
- if (self.response) {
- if (self._destdata) {
- self.emit('error', new Error('You cannot pipe after data has been emitted from the response.'))
- } else if (self._ended) {
- self.emit('error', new Error('You cannot pipe after the response has been ended.'))
- } else {
- stream.Stream.prototype.pipe.call(self, dest, opts)
- self.pipeDest(dest)
- return dest
- }
- } else {
- self.dests.push(dest)
- stream.Stream.prototype.pipe.call(self, dest, opts)
- return dest
- }
-}
-Request.prototype.write = function () {
- var self = this
- if (self._aborted) { return }
-
- if (!self._started) {
- self.start()
- }
- if (self.req) {
- return self.req.write.apply(self.req, arguments)
- }
-}
-Request.prototype.end = function (chunk) {
- var self = this
- if (self._aborted) { return }
-
- if (chunk) {
- self.write(chunk)
- }
- if (!self._started) {
- self.start()
- }
- if (self.req) {
- self.req.end()
- }
-}
-Request.prototype.pause = function () {
- var self = this
- if (!self.responseContent) {
- self._paused = true
- } else {
- self.responseContent.pause.apply(self.responseContent, arguments)
- }
-}
-Request.prototype.resume = function () {
- var self = this
- if (!self.responseContent) {
- self._paused = false
- } else {
- self.responseContent.resume.apply(self.responseContent, arguments)
- }
-}
-Request.prototype.destroy = function () {
- var self = this
- this.clearTimeout()
- if (!self._ended) {
- self.end()
- } else if (self.response) {
- self.response.destroy()
- }
-}
-
-Request.prototype.clearTimeout = function () {
- if (this.timeoutTimer) {
- clearTimeout(this.timeoutTimer)
- this.timeoutTimer = null
- }
-}
-
-Request.defaultProxyHeaderWhiteList =
- Tunnel.defaultProxyHeaderWhiteList.slice()
-
-Request.defaultProxyHeaderExclusiveList =
- Tunnel.defaultProxyHeaderExclusiveList.slice()
-
-// Exports
-
-Request.prototype.toJSON = requestToJSON
-module.exports = Request
diff --git a/deps/npm/node_modules/socks-proxy-agent/dist/agent.d.ts b/deps/npm/node_modules/socks-proxy-agent/dist/agent.d.ts
index 52341a1b55d..96f44af7598 100644
--- a/deps/npm/node_modules/socks-proxy-agent/dist/agent.d.ts
+++ b/deps/npm/node_modules/socks-proxy-agent/dist/agent.d.ts
@@ -10,6 +10,7 @@ import { SocksProxyAgentOptions } from '.';
export default class SocksProxyAgent extends Agent {
private lookup;
private proxy;
+ private tlsConnectionOptions;
constructor(_opts: string | SocksProxyAgentOptions);
/**
* Initiates a SOCKS connection to the specified SOCKS proxy server,
diff --git a/deps/npm/node_modules/socks-proxy-agent/dist/agent.js b/deps/npm/node_modules/socks-proxy-agent/dist/agent.js
index acdde177ecb..1e4c529f774 100644
--- a/deps/npm/node_modules/socks-proxy-agent/dist/agent.js
+++ b/deps/npm/node_modules/socks-proxy-agent/dist/agent.js
@@ -127,6 +127,7 @@ class SocksProxyAgent extends agent_base_1.Agent {
const parsedProxy = parseSocksProxy(opts);
this.lookup = parsedProxy.lookup;
this.proxy = parsedProxy.proxy;
+ this.tlsConnectionOptions = opts.tls || {};
}
/**
* Initiates a SOCKS connection to the specified SOCKS proxy server,
@@ -159,8 +160,8 @@ class SocksProxyAgent extends agent_base_1.Agent {
// this socket connection to a TLS connection.
debug('Upgrading socket connection to TLS');
const servername = opts.servername || opts.host;
- return tls_1.default.connect(Object.assign(Object.assign({}, omit(opts, 'host', 'hostname', 'path', 'port')), { socket,
- servername }));
+ return tls_1.default.connect(Object.assign(Object.assign(Object.assign({}, omit(opts, 'host', 'hostname', 'path', 'port')), { socket,
+ servername }), this.tlsConnectionOptions));
}
return socket;
});
diff --git a/deps/npm/node_modules/socks-proxy-agent/dist/agent.js.map b/deps/npm/node_modules/socks-proxy-agent/dist/agent.js.map
index 63da267a036..4efc16887a9 100644
--- a/deps/npm/node_modules/socks-proxy-agent/dist/agent.js.map
+++ b/deps/npm/node_modules/socks-proxy-agent/dist/agent.js.map
@@ -1 +1 @@
-{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"} \ No newline at end of file
+{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"} \ No newline at end of file
diff --git a/deps/npm/node_modules/socks-proxy-agent/dist/index.d.ts b/deps/npm/node_modules/socks-proxy-agent/dist/index.d.ts
index 8fe0e58884a..d031b95ddf5 100644
--- a/deps/npm/node_modules/socks-proxy-agent/dist/index.d.ts
+++ b/deps/npm/node_modules/socks-proxy-agent/dist/index.d.ts
@@ -1,6 +1,7 @@
/// <reference types="node" />
import { Url } from 'url';
import { SocksProxy } from 'socks';
+import tls from 'tls';
import { AgentOptions } from 'agent-base';
import _SocksProxyAgent from './agent';
declare function createSocksProxyAgent(opts: string | createSocksProxyAgent.SocksProxyAgentOptions): _SocksProxyAgent;
@@ -9,6 +10,7 @@ declare namespace createSocksProxyAgent {
host?: string | null;
port?: string | number | null;
username?: string | null;
+ tls?: tls.ConnectionOptions | null;
}
export interface SocksProxyAgentOptions extends AgentOptions, BaseSocksProxyAgentOptions, Partial<Omit<Url & SocksProxy, keyof BaseSocksProxyAgentOptions>> {
}
diff --git a/deps/npm/node_modules/socks-proxy-agent/dist/index.js.map b/deps/npm/node_modules/socks-proxy-agent/dist/index.js.map
index 56fa84868a1..23f3d1ce592 100644
--- a/deps/npm/node_modules/socks-proxy-agent/dist/index.js.map
+++ b/deps/npm/node_modules/socks-proxy-agent/dist/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAGA,oDAAuC;AAEvC,SAAS,qBAAqB,CAC7B,IAA2D;IAE3D,OAAO,IAAI,eAAgB,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAED,WAAU,qBAAqB;IAajB,qCAAe,GAAG,eAAgB,CAAC;IAEhD,qBAAqB,CAAC,SAAS,GAAG,eAAgB,CAAC,SAAS,CAAC;AAC9D,CAAC,EAhBS,qBAAqB,KAArB,qBAAqB,QAgB9B;AAED,iBAAS,qBAAqB,CAAC"} \ No newline at end of file
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAIA,oDAAuC;AAEvC,SAAS,qBAAqB,CAC7B,IAA2D;IAE3D,OAAO,IAAI,eAAgB,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAED,WAAU,qBAAqB;IAcjB,qCAAe,GAAG,eAAgB,CAAC;IAEhD,qBAAqB,CAAC,SAAS,GAAG,eAAgB,CAAC,SAAS,CAAC;AAC9D,CAAC,EAjBS,qBAAqB,KAArB,qBAAqB,QAiB9B;AAED,iBAAS,qBAAqB,CAAC"} \ No newline at end of file
diff --git a/deps/npm/node_modules/socks-proxy-agent/package.json b/deps/npm/node_modules/socks-proxy-agent/package.json
index b0a7445136b..a6b7efa89bc 100644
--- a/deps/npm/node_modules/socks-proxy-agent/package.json
+++ b/deps/npm/node_modules/socks-proxy-agent/package.json
@@ -1,6 +1,6 @@
{
"name": "socks-proxy-agent",
- "version": "6.0.0",
+ "version": "6.1.0",
"description": "A SOCKS proxy `http.Agent` implementation for HTTP and HTTPS",
"main": "dist/index",
"typings": "dist/index",
diff --git a/deps/npm/node_modules/sshpk/LICENSE b/deps/npm/node_modules/sshpk/LICENSE
deleted file mode 100644
index f6d947d2f61..00000000000
--- a/deps/npm/node_modules/sshpk/LICENSE
+++ /dev/null
@@ -1,18 +0,0 @@
-Copyright Joyent, Inc. All rights reserved.
-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/deps/npm/node_modules/sshpk/bin/sshpk-conv b/deps/npm/node_modules/sshpk/bin/sshpk-conv
deleted file mode 100755
index e839ede5b0c..00000000000
--- a/deps/npm/node_modules/sshpk/bin/sshpk-conv
+++ /dev/null
@@ -1,243 +0,0 @@
-#!/usr/bin/env node
-// -*- mode: js -*-
-// vim: set filetype=javascript :
-// Copyright 2018 Joyent, Inc. All rights reserved.
-
-var dashdash = require('dashdash');
-var sshpk = require('../lib/index');
-var fs = require('fs');
-var path = require('path');
-var tty = require('tty');
-var readline = require('readline');
-var getPassword = require('getpass').getPass;
-
-var options = [
- {
- names: ['outformat', 't'],
- type: 'string',
- help: 'Output format'
- },
- {
- names: ['informat', 'T'],
- type: 'string',
- help: 'Input format'
- },
- {
- names: ['file', 'f'],
- type: 'string',
- help: 'Input file name (default stdin)'
- },
- {
- names: ['out', 'o'],
- type: 'string',
- help: 'Output file name (default stdout)'
- },
- {
- names: ['private', 'p'],
- type: 'bool',
- help: 'Produce a private key as output'
- },
- {
- names: ['derive', 'd'],
- type: 'string',
- help: 'Output a new key derived from this one, with given algo'
- },
- {
- names: ['identify', 'i'],
- type: 'bool',
- help: 'Print key metadata instead of converting'
- },
- {
- names: ['fingerprint', 'F'],
- type: 'bool',
- help: 'Output key fingerprint'
- },
- {
- names: ['hash', 'H'],
- type: 'string',
- help: 'Hash function to use for key fingeprint with -F'
- },
- {
- names: ['spki', 's'],
- type: 'bool',
- help: 'With -F, generates an SPKI fingerprint instead of SSH'
- },
- {
- names: ['comment', 'c'],
- type: 'string',
- help: 'Set key comment, if output format supports'
- },
- {
- names: ['help', 'h'],
- type: 'bool',
- help: 'Shows this help text'
- }
-];
-
-if (require.main === module) {
- var parser = dashdash.createParser({
- options: options
- });
-
- try {
- var opts = parser.parse(process.argv);
- } catch (e) {
- console.error('sshpk-conv: error: %s', e.message);
- process.exit(1);
- }
-
- if (opts.help || opts._args.length > 1) {
- var help = parser.help({}).trimRight();
- console.error('sshpk-conv: converts between SSH key formats\n');
- console.error(help);
- console.error('\navailable key formats:');
- console.error(' - pem, pkcs1 eg id_rsa');
- console.error(' - ssh eg id_rsa.pub');
- console.error(' - pkcs8 format you want for openssl');
- console.error(' - openssh like output of ssh-keygen -o');
- console.error(' - rfc4253 raw OpenSSH wire format');
- console.error(' - dnssec dnssec-keygen format');
- console.error(' - putty PuTTY ppk format');
- console.error('\navailable fingerprint formats:');
- console.error(' - hex colon-separated hex for SSH');
- console.error(' straight hex for SPKI');
- console.error(' - base64 SHA256:* format from OpenSSH');
- process.exit(1);
- }
-
- /*
- * Key derivation can only be done on private keys, so use of the -d
- * option necessarily implies -p.
- */
- if (opts.derive)
- opts.private = true;
-
- var inFile = process.stdin;
- var inFileName = 'stdin';
-
- var inFilePath;
- if (opts.file) {
- inFilePath = opts.file;
- } else if (opts._args.length === 1) {
- inFilePath = opts._args[0];
- }
-
- if (inFilePath)
- inFileName = path.basename(inFilePath);
-
- try {
- if (inFilePath) {
- fs.accessSync(inFilePath, fs.R_OK);
- inFile = fs.createReadStream(inFilePath);
- }
- } catch (e) {
- ifError(e, 'error opening input file');
- }
-
- var outFile = process.stdout;
-
- try {
- if (opts.out && !opts.identify) {
- fs.accessSync(path.dirname(opts.out), fs.W_OK);
- outFile = fs.createWriteStream(opts.out);
- }
- } catch (e) {
- ifError(e, 'error opening output file');
- }
-
- var bufs = [];
- inFile.on('readable', function () {
- var data;
- while ((data = inFile.read()))
- bufs.push(data);
- });
- var parseOpts = {};
- parseOpts.filename = inFileName;
- inFile.on('end', function processKey() {
- var buf = Buffer.concat(bufs);
- var fmt = 'auto';
- if (opts.informat)
- fmt = opts.informat;
- var f = sshpk.parseKey;
- if (opts.private)
- f = sshpk.parsePrivateKey;
- try {
- var key = f(buf, fmt, parseOpts);
- } catch (e) {
- if (e.name === 'KeyEncryptedError') {
- getPassword(function (err, pw) {
- if (err)
- ifError(err);
- parseOpts.passphrase = pw;
- processKey();
- });
- return;
- }
- ifError(e);
- }
-
- if (opts.derive)
- key = key.derive(opts.derive);
-
- if (opts.comment)
- key.comment = opts.comment;
-
- if (opts.identify) {
- var kind = 'public';
- if (sshpk.PrivateKey.isPrivateKey(key))
- kind = 'private';
- console.log('%s: a %d bit %s %s key', inFileName,
- key.size, key.type.toUpperCase(), kind);
- if (key.type === 'ecdsa')
- console.log('ECDSA curve: %s', key.curve);
- if (key.comment)
- console.log('Comment: %s', key.comment);
- console.log('SHA256 fingerprint: ' +
- key.fingerprint('sha256').toString());
- console.log('MD5 fingerprint: ' +
- key.fingerprint('md5').toString());
- console.log('SPKI-SHA256 fingerprint: ' +
- key.fingerprint('sha256', 'spki').toString());
- process.exit(0);
- return;
- }
-
- if (opts.fingerprint) {
- var hash = opts.hash;
- var type = opts.spki ? 'spki' : 'ssh';
- var format = opts.outformat;
- var fp = key.fingerprint(hash, type).toString(format);
- outFile.write(fp);
- outFile.write('\n');
- outFile.once('drain', function () {
- process.exit(0);
- });
- return;
- }
-
- fmt = undefined;
- if (opts.outformat)
- fmt = opts.outformat;
- outFile.write(key.toBuffer(fmt));
- if (fmt === 'ssh' ||
- (!opts.private && fmt === undefined))
- outFile.write('\n');
- outFile.once('drain', function () {
- process.exit(0);
- });
- });
-}
-
-function ifError(e, txt) {
- if (txt)
- txt = txt + ': ';
- else
- txt = '';
- console.error('sshpk-conv: ' + txt + e.name + ': ' + e.message);
- if (process.env['DEBUG'] || process.env['V']) {
- console.error(e.stack);
- if (e.innerErr)
- console.error(e.innerErr.stack);
- }
- process.exit(1);
-}
diff --git a/deps/npm/node_modules/sshpk/bin/sshpk-sign b/deps/npm/node_modules/sshpk/bin/sshpk-sign
deleted file mode 100755
index 673fc986421..00000000000
--- a/deps/npm/node_modules/sshpk/bin/sshpk-sign
+++ /dev/null
@@ -1,191 +0,0 @@
-#!/usr/bin/env node
-// -*- mode: js -*-
-// vim: set filetype=javascript :
-// Copyright 2015 Joyent, Inc. All rights reserved.
-
-var dashdash = require('dashdash');
-var sshpk = require('../lib/index');
-var fs = require('fs');
-var path = require('path');
-var getPassword = require('getpass').getPass;
-
-var options = [
- {
- names: ['hash', 'H'],
- type: 'string',
- help: 'Hash algorithm (sha1, sha256, sha384, sha512)'
- },
- {
- names: ['verbose', 'v'],
- type: 'bool',
- help: 'Display verbose info about key and hash used'
- },
- {
- names: ['identity', 'i'],
- type: 'string',
- help: 'Path to key to use'
- },
- {
- names: ['file', 'f'],
- type: 'string',
- help: 'Input filename'
- },
- {
- names: ['out', 'o'],
- type: 'string',
- help: 'Output filename'
- },
- {
- names: ['format', 't'],
- type: 'string',
- help: 'Signature format (asn1, ssh, raw)'
- },
- {
- names: ['binary', 'b'],
- type: 'bool',
- help: 'Output raw binary instead of base64'
- },
- {
- names: ['help', 'h'],
- type: 'bool',
- help: 'Shows this help text'
- }
-];
-
-var parseOpts = {};
-
-if (require.main === module) {
- var parser = dashdash.createParser({
- options: options
- });
-
- try {
- var opts = parser.parse(process.argv);
- } catch (e) {
- console.error('sshpk-sign: error: %s', e.message);
- process.exit(1);
- }
-
- if (opts.help || opts._args.length > 1) {
- var help = parser.help({}).trimRight();
- console.error('sshpk-sign: sign data using an SSH key\n');
- console.error(help);
- process.exit(1);
- }
-
- if (!opts.identity) {
- var help = parser.help({}).trimRight();
- console.error('sshpk-sign: the -i or --identity option ' +
- 'is required\n');
- console.error(help);
- process.exit(1);
- }
-
- var keyData = fs.readFileSync(opts.identity);
- parseOpts.filename = opts.identity;
-
- run();
-}
-
-function run() {
- var key;
- try {
- key = sshpk.parsePrivateKey(keyData, 'auto', parseOpts);
- } catch (e) {
- if (e.name === 'KeyEncryptedError') {
- getPassword(function (err, pw) {
- parseOpts.passphrase = pw;
- run();
- });
- return;
- }
- console.error('sshpk-sign: error loading private key "' +
- opts.identity + '": ' + e.name + ': ' + e.message);
- process.exit(1);
- }
-
- var hash = opts.hash || key.defaultHashAlgorithm();
-
- var signer;
- try {
- signer = key.createSign(hash);
- } catch (e) {
- console.error('sshpk-sign: error creating signer: ' +
- e.name + ': ' + e.message);
- process.exit(1);
- }
-
- if (opts.verbose) {
- console.error('sshpk-sign: using %s-%s with a %d bit key',
- key.type, hash, key.size);
- }
-
- var inFile = process.stdin;
- var inFileName = 'stdin';
-
- var inFilePath;
- if (opts.file) {
- inFilePath = opts.file;
- } else if (opts._args.length === 1) {
- inFilePath = opts._args[0];
- }
-
- if (inFilePath)
- inFileName = path.basename(inFilePath);
-
- try {
- if (inFilePath) {
- fs.accessSync(inFilePath, fs.R_OK);
- inFile = fs.createReadStream(inFilePath);
- }
- } catch (e) {
- console.error('sshpk-sign: error opening input file' +
- ': ' + e.name + ': ' + e.message);
- process.exit(1);
- }
-
- var outFile = process.stdout;
-
- try {
- if (opts.out && !opts.identify) {
- fs.accessSync(path.dirname(opts.out), fs.W_OK);
- outFile = fs.createWriteStream(opts.out);
- }
- } catch (e) {
- console.error('sshpk-sign: error opening output file' +
- ': ' + e.name + ': ' + e.message);
- process.exit(1);
- }
-
- inFile.pipe(signer);
- inFile.on('end', function () {
- var sig;
- try {
- sig = signer.sign();
- } catch (e) {
- console.error('sshpk-sign: error signing data: ' +
- e.name + ': ' + e.message);
- process.exit(1);
- }
-
- var fmt = opts.format || 'asn1';
- var output;
- try {
- output = sig.toBuffer(fmt);
- if (!opts.binary)
- output = output.toString('base64');
- } catch (e) {
- console.error('sshpk-sign: error converting signature' +
- ' to ' + fmt + ' format: ' + e.name + ': ' +
- e.message);
- process.exit(1);
- }
-
- outFile.write(output);
- if (!opts.binary)
- outFile.write('\n');
- outFile.once('drain', function () {
- process.exit(0);
- });
- });
-}
diff --git a/deps/npm/node_modules/sshpk/bin/sshpk-verify b/deps/npm/node_modules/sshpk/bin/sshpk-verify
deleted file mode 100755
index fc71a82c81e..00000000000
--- a/deps/npm/node_modules/sshpk/bin/sshpk-verify
+++ /dev/null
@@ -1,167 +0,0 @@
-#!/usr/bin/env node
-// -*- mode: js -*-
-// vim: set filetype=javascript :
-// Copyright 2015 Joyent, Inc. All rights reserved.
-
-var dashdash = require('dashdash');
-var sshpk = require('../lib/index');
-var fs = require('fs');
-var path = require('path');
-var Buffer = require('safer-buffer').Buffer;
-
-var options = [
- {
- names: ['hash', 'H'],
- type: 'string',
- help: 'Hash algorithm (sha1, sha256, sha384, sha512)'
- },
- {
- names: ['verbose', 'v'],
- type: 'bool',
- help: 'Display verbose info about key and hash used'
- },
- {
- names: ['identity', 'i'],
- type: 'string',
- help: 'Path to (public) key to use'
- },
- {
- names: ['file', 'f'],
- type: 'string',
- help: 'Input filename'
- },
- {
- names: ['format', 't'],
- type: 'string',
- help: 'Signature format (asn1, ssh, raw)'
- },
- {
- names: ['signature', 's'],
- type: 'string',
- help: 'base64-encoded signature data'
- },
- {
- names: ['help', 'h'],
- type: 'bool',
- help: 'Shows this help text'
- }
-];
-
-if (require.main === module) {
- var parser = dashdash.createParser({
- options: options
- });
-
- try {
- var opts = parser.parse(process.argv);
- } catch (e) {
- console.error('sshpk-verify: error: %s', e.message);
- process.exit(3);
- }
-
- if (opts.help || opts._args.length > 1) {
- var help = parser.help({}).trimRight();
- console.error('sshpk-verify: sign data using an SSH key\n');
- console.error(help);
- process.exit(3);
- }
-
- if (!opts.identity) {
- var help = parser.help({}).trimRight();
- console.error('sshpk-verify: the -i or --identity option ' +
- 'is required\n');
- console.error(help);
- process.exit(3);
- }
-
- if (!opts.signature) {
- var help = parser.help({}).trimRight();
- console.error('sshpk-verify: the -s or --signature option ' +
- 'is required\n');
- console.error(help);
- process.exit(3);
- }
-
- var keyData = fs.readFileSync(opts.identity);
-
- var key;
- try {
- key = sshpk.parseKey(keyData);
- } catch (e) {
- console.error('sshpk-verify: error loading key "' +
- opts.identity + '": ' + e.name + ': ' + e.message);
- process.exit(2);
- }
-
- var fmt = opts.format || 'asn1';
- var sigData = Buffer.from(opts.signature, 'base64');
-
- var sig;
- try {
- sig = sshpk.parseSignature(sigData, key.type, fmt);
- } catch (e) {
- console.error('sshpk-verify: error parsing signature: ' +
- e.name + ': ' + e.message);
- process.exit(2);
- }
-
- var hash = opts.hash || key.defaultHashAlgorithm();
-
- var verifier;
- try {
- verifier = key.createVerify(hash);
- } catch (e) {
- console.error('sshpk-verify: error creating verifier: ' +
- e.name + ': ' + e.message);
- process.exit(2);
- }
-
- if (opts.verbose) {
- console.error('sshpk-verify: using %s-%s with a %d bit key',
- key.type, hash, key.size);
- }
-
- var inFile = process.stdin;
- var inFileName = 'stdin';
-
- var inFilePath;
- if (opts.file) {
- inFilePath = opts.file;
- } else if (opts._args.length === 1) {
- inFilePath = opts._args[0];
- }
-
- if (inFilePath)
- inFileName = path.basename(inFilePath);
-
- try {
- if (inFilePath) {
- fs.accessSync(inFilePath, fs.R_OK);
- inFile = fs.createReadStream(inFilePath);
- }
- } catch (e) {
- console.error('sshpk-verify: error opening input file' +
- ': ' + e.name + ': ' + e.message);
- process.exit(2);
- }
-
- inFile.pipe(verifier);
- inFile.on('end', function () {
- var ret;
- try {
- ret = verifier.verify(sig);
- } catch (e) {
- console.error('sshpk-verify: error verifying data: ' +
- e.name + ': ' + e.message);
- process.exit(1);
- }
-
- if (ret) {
- console.error('OK');
- process.exit(0);
- }
-
- console.error('NOT OK');
- process.exit(1);
- });
-}
diff --git a/deps/npm/node_modules/sshpk/lib/algs.js b/deps/npm/node_modules/sshpk/lib/algs.js
deleted file mode 100644
index 3b01e7d1d38..00000000000
--- a/deps/npm/node_modules/sshpk/lib/algs.js
+++ /dev/null
@@ -1,168 +0,0 @@
-// Copyright 2015 Joyent, Inc.
-
-var Buffer = require('safer-buffer').Buffer;
-
-var algInfo = {
- 'dsa': {
- parts: ['p', 'q', 'g', 'y'],
- sizePart: 'p'
- },
- 'rsa': {
- parts: ['e', 'n'],
- sizePart: 'n'
- },
- 'ecdsa': {
- parts: ['curve', 'Q'],
- sizePart: 'Q'
- },
- 'ed25519': {
- parts: ['A'],
- sizePart: 'A'
- }
-};
-algInfo['curve25519'] = algInfo['ed25519'];
-
-var algPrivInfo = {
- 'dsa': {
- parts: ['p', 'q', 'g', 'y', 'x']
- },
- 'rsa': {
- parts: ['n', 'e', 'd', 'iqmp', 'p', 'q']
- },
- 'ecdsa': {
- parts: ['curve', 'Q', 'd']
- },
- 'ed25519': {
- parts: ['A', 'k']
- }
-};
-algPrivInfo['curve25519'] = algPrivInfo['ed25519'];
-
-var hashAlgs = {
- 'md5': true,
- 'sha1': true,
- 'sha256': true,
- 'sha384': true,
- 'sha512': true
-};
-
-/*
- * Taken from
- * http://csrc.nist.gov/groups/ST/toolkit/documents/dss/NISTReCur.pdf
- */
-var curves = {
- 'nistp256': {
- size: 256,
- pkcs8oid: '1.2.840.10045.3.1.7',
- p: Buffer.from(('00' +
- 'ffffffff 00000001 00000000 00000000' +
- '00000000 ffffffff ffffffff ffffffff').
- replace(/ /g, ''), 'hex'),
- a: Buffer.from(('00' +
- 'FFFFFFFF 00000001 00000000 00000000' +
- '00000000 FFFFFFFF FFFFFFFF FFFFFFFC').
- replace(/ /g, ''), 'hex'),
- b: Buffer.from((
- '5ac635d8 aa3a93e7 b3ebbd55 769886bc' +
- '651d06b0 cc53b0f6 3bce3c3e 27d2604b').
- replace(/ /g, ''), 'hex'),
- s: Buffer.from(('00' +
- 'c49d3608 86e70493 6a6678e1 139d26b7' +
- '819f7e90').
- replace(/ /g, ''), 'hex'),
- n: Buffer.from(('00' +
- 'ffffffff 00000000 ffffffff ffffffff' +
- 'bce6faad a7179e84 f3b9cac2 fc632551').
- replace(/ /g, ''), 'hex'),
- G: Buffer.from(('04' +
- '6b17d1f2 e12c4247 f8bce6e5 63a440f2' +
- '77037d81 2deb33a0 f4a13945 d898c296' +
- '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16' +
- '2bce3357 6b315ece cbb64068 37bf51f5').
- replace(/ /g, ''), 'hex')
- },
- 'nistp384': {
- size: 384,
- pkcs8oid: '1.3.132.0.34',
- p: Buffer.from(('00' +
- 'ffffffff ffffffff ffffffff ffffffff' +
- 'ffffffff ffffffff ffffffff fffffffe' +
- 'ffffffff 00000000 00000000 ffffffff').
- replace(/ /g, ''), 'hex'),
- a: Buffer.from(('00' +
- 'FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF' +
- 'FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE' +
- 'FFFFFFFF 00000000 00000000 FFFFFFFC').
- replace(/ /g, ''), 'hex'),
- b: Buffer.from((
- 'b3312fa7 e23ee7e4 988e056b e3f82d19' +
- '181d9c6e fe814112 0314088f 5013875a' +
- 'c656398d 8a2ed19d 2a85c8ed d3ec2aef').
- replace(/ /g, ''), 'hex'),
- s: Buffer.from(('00' +
- 'a335926a a319a27a 1d00896a 6773a482' +
- '7acdac73').
- replace(/ /g, ''), 'hex'),
- n: Buffer.from(('00' +
- 'ffffffff ffffffff ffffffff ffffffff' +
- 'ffffffff ffffffff c7634d81 f4372ddf' +
- '581a0db2 48b0a77a ecec196a ccc52973').
- replace(/ /g, ''), 'hex'),
- G: Buffer.from(('04' +
- 'aa87ca22 be8b0537 8eb1c71e f320ad74' +
- '6e1d3b62 8ba79b98 59f741e0 82542a38' +
- '5502f25d bf55296c 3a545e38 72760ab7' +
- '3617de4a 96262c6f 5d9e98bf 9292dc29' +
- 'f8f41dbd 289a147c e9da3113 b5f0b8c0' +
- '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f').
- replace(/ /g, ''), 'hex')
- },
- 'nistp521': {
- size: 521,
- pkcs8oid: '1.3.132.0.35',
- p: Buffer.from((
- '01ffffff ffffffff ffffffff ffffffff' +
- 'ffffffff ffffffff ffffffff ffffffff' +
- 'ffffffff ffffffff ffffffff ffffffff' +
- 'ffffffff ffffffff ffffffff ffffffff' +
- 'ffff').replace(/ /g, ''), 'hex'),
- a: Buffer.from(('01FF' +
- 'FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF' +
- 'FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF' +
- 'FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF' +
- 'FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFC').
- replace(/ /g, ''), 'hex'),
- b: Buffer.from(('51' +
- '953eb961 8e1c9a1f 929a21a0 b68540ee' +
- 'a2da725b 99b315f3 b8b48991 8ef109e1' +
- '56193951 ec7e937b 1652c0bd 3bb1bf07' +
- '3573df88 3d2c34f1 ef451fd4 6b503f00').
- replace(/ /g, ''), 'hex'),
- s: Buffer.from(('00' +
- 'd09e8800 291cb853 96cc6717 393284aa' +
- 'a0da64ba').replace(/ /g, ''), 'hex'),
- n: Buffer.from(('01ff' +
- 'ffffffff ffffffff ffffffff ffffffff' +
- 'ffffffff ffffffff ffffffff fffffffa' +
- '51868783 bf2f966b 7fcc0148 f709a5d0' +
- '3bb5c9b8 899c47ae bb6fb71e 91386409').
- replace(/ /g, ''), 'hex'),
- G: Buffer.from(('04' +
- '00c6 858e06b7 0404e9cd 9e3ecb66 2395b442' +
- '9c648139 053fb521 f828af60 6b4d3dba' +
- 'a14b5e77 efe75928 fe1dc127 a2ffa8de' +
- '3348b3c1 856a429b f97e7e31 c2e5bd66' +
- '0118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9' +
- '98f54449 579b4468 17afbd17 273e662c' +
- '97ee7299 5ef42640 c550b901 3fad0761' +
- '353c7086 a272c240 88be9476 9fd16650').
- replace(/ /g, ''), 'hex')
- }
-};
-
-module.exports = {
- info: algInfo,
- privInfo: algPrivInfo,
- hashAlgs: hashAlgs,
- curves: curves
-};
diff --git a/deps/npm/node_modules/sshpk/lib/certificate.js b/deps/npm/node_modules/sshpk/lib/certificate.js
deleted file mode 100644
index 69323570731..00000000000
--- a/deps/npm/node_modules/sshpk/lib/certificate.js
+++ /dev/null
@@ -1,410 +0,0 @@
-// Copyright 2016 Joyent, Inc.
-
-module.exports = Certificate;
-
-var assert = require('assert-plus');
-var Buffer = require('safer-buffer').Buffer;
-var algs = require('./algs');
-var crypto = require('crypto');
-var Fingerprint = require('./fingerprint');
-var Signature = require('./signature');
-var errs = require('./errors');
-var util = require('util');
-var utils = require('./utils');
-var Key = require('./key');
-var PrivateKey = require('./private-key');
-var Identity = require('./identity');
-
-var formats = {};
-formats['openssh'] = require('./formats/openssh-cert');
-formats['x509'] = require('./formats/x509');
-formats['pem'] = require('./formats/x509-pem');
-
-var CertificateParseError = errs.CertificateParseError;
-var InvalidAlgorithmError = errs.InvalidAlgorithmError;
-
-function Certificate(opts) {
- assert.object(opts, 'options');
- assert.arrayOfObject(opts.subjects, 'options.subjects');
- utils.assertCompatible(opts.subjects[0], Identity, [1, 0],
- 'options.subjects');
- utils.assertCompatible(opts.subjectKey, Key, [1, 0],
- 'options.subjectKey');
- utils.assertCompatible(opts.issuer, Identity, [1, 0], 'options.issuer');
- if (opts.issuerKey !== undefined) {
- utils.assertCompatible(opts.issuerKey, Key, [1, 0],
- 'options.issuerKey');
- }
- assert.object(opts.signatures, 'options.signatures');
- assert.buffer(opts.serial, 'options.serial');
- assert.date(opts.validFrom, 'options.validFrom');
- assert.date(opts.validUntil, 'optons.validUntil');
-
- assert.optionalArrayOfString(opts.purposes, 'options.purposes');
-
- this._hashCache = {};
-
- this.subjects = opts.subjects;
- this.issuer = opts.issuer;
- this.subjectKey = opts.subjectKey;
- this.issuerKey = opts.issuerKey;
- this.signatures = opts.signatures;
- this.serial = opts.serial;
- this.validFrom = opts.validFrom;
- this.validUntil = opts.validUntil;
- this.purposes = opts.purposes;
-}
-
-Certificate.formats = formats;
-
-Certificate.prototype.toBuffer = function (format, options) {
- if (format === undefined)
- format = 'x509';
- assert.string(format, 'format');
- assert.object(formats[format], 'formats[format]');
- assert.optionalObject(options, 'options');
-
- return (formats[format].write(this, options));
-};
-
-Certificate.prototype.toString = function (format, options) {
- if (format === undefined)
- format = 'pem';
- return (this.toBuffer(format, options).toString());
-};
-
-Certificate.prototype.fingerprint = function (algo) {
- if (algo === undefined)
- algo = 'sha256';
- assert.string(algo, 'algorithm');
- var opts = {
- type: 'certificate',
- hash: this.hash(algo),
- algorithm: algo
- };
- return (new Fingerprint(opts));
-};
-
-Certificate.prototype.hash = function (algo) {
- assert.string(algo, 'algorithm');
- algo = algo.toLowerCase();
- if (algs.hashAlgs[algo] === undefined)
- throw (new InvalidAlgorithmError(algo));
-
- if (this._hashCache[algo])
- return (this._hashCache[algo]);
-
- var hash = crypto.createHash(algo).
- update(this.toBuffer('x509')).digest();
- this._hashCache[algo] = hash;
- return (hash);
-};
-
-Certificate.prototype.isExpired = function (when) {
- if (when === undefined)
- when = new Date();
- return (!((when.getTime() >= this.validFrom.getTime()) &&
- (when.getTime() < this.validUntil.getTime())));
-};
-
-Certificate.prototype.isSignedBy = function (issuerCert) {
- utils.assertCompatible(issuerCert, Certificate, [1, 0], 'issuer');
-
- if (!this.issuer.equals(issuerCert.subjects[0]))
- return (false);
- if (this.issuer.purposes && this.issuer.purposes.length > 0 &&
- this.issuer.purposes.indexOf('ca') === -1) {
- return (false);
- }
-
- return (this.isSignedByKey(issuerCert.subjectKey));
-};
-
-Certificate.prototype.getExtension = function (keyOrOid) {
- assert.string(keyOrOid, 'keyOrOid');
- var ext = this.getExtensions().filter(function (maybeExt) {
- if (maybeExt.format === 'x509')
- return (maybeExt.oid === keyOrOid);
- if (maybeExt.format === 'openssh')
- return (maybeExt.name === keyOrOid);
- return (false);
- })[0];
- return (ext);
-};
-
-Certificate.prototype.getExtensions = function () {
- var exts = [];
- var x509 = this.signatures.x509;
- if (x509 && x509.extras && x509.extras.exts) {
- x509.extras.exts.forEach(function (ext) {
- ext.format = 'x509';
- exts.push(ext);
- });
- }
- var openssh = this.signatures.openssh;
- if (openssh && openssh.exts) {
- openssh.exts.forEach(function (ext) {
- ext.format = 'openssh';
- exts.push(ext);
- });
- }
- return (exts);
-};
-
-Certificate.prototype.isSignedByKey = function (issuerKey) {
- utils.assertCompatible(issuerKey, Key, [1, 2], 'issuerKey');
-
- if (this.issuerKey !== undefined) {
- return (this.issuerKey.
- fingerprint('sha512').matches(issuerKey));
- }
-
- var fmt = Object.keys(this.signatures)[0];
- var valid = formats[fmt].verify(this, issuerKey);
- if (valid)
- this.issuerKey = issuerKey;
- return (valid);
-};
-
-Certificate.prototype.signWith = function (key) {
- utils.assertCompatible(key, PrivateKey, [1, 2], 'key');
- var fmts = Object.keys(formats);
- var didOne = false;
- for (var i = 0; i < fmts.length; ++i) {
- if (fmts[i] !== 'pem') {
- var ret = formats[fmts[i]].sign(this, key);
- if (ret === true)
- didOne = true;
- }
- }
- if (!didOne) {
- throw (new Error('Failed to sign the certificate for any ' +
- 'available certificate formats'));
- }
-};
-
-Certificate.createSelfSigned = function (subjectOrSubjects, key, options) {
- var subjects;
- if (Array.isArray(subjectOrSubjects))
- subjects = subjectOrSubjects;
- else
- subjects = [subjectOrSubjects];
-
- assert.arrayOfObject(subjects);
- subjects.forEach(function (subject) {
- utils.assertCompatible(subject, Identity, [1, 0], 'subject');
- });
-
- utils.assertCompatible(key, PrivateKey, [1, 2], 'private key');
-
- assert.optionalObject(options, 'options');
- if (options === undefined)
- options = {};
- assert.optionalObject(options.validFrom, 'options.validFrom');
- assert.optionalObject(options.validUntil, 'options.validUntil');
- var validFrom = options.validFrom;
- var validUntil = options.validUntil;
- if (validFrom === undefined)
- validFrom = new Date();
- if (validUntil === undefined) {
- assert.optionalNumber(options.lifetime, 'options.lifetime');
- var lifetime = options.lifetime;
- if (lifetime === undefined)
- lifetime = 10*365*24*3600;
- validUntil = new Date();
- validUntil.setTime(validUntil.getTime() + lifetime*1000);
- }
- assert.optionalBuffer(options.serial, 'options.serial');
- var serial = options.serial;
- if (serial === undefined)
- serial = Buffer.from('0000000000000001', 'hex');
-
- var purposes = options.purposes;
- if (purposes === undefined)
- purposes = [];
-
- if (purposes.indexOf('signature') === -1)
- purposes.push('signature');
-
- /* Self-signed certs are always CAs. */
- if (purposes.indexOf('ca') === -1)
- purposes.push('ca');
- if (purposes.indexOf('crl') === -1)
- purposes.push('crl');
-
- /*
- * If we weren't explicitly given any other purposes, do the sensible
- * thing and add some basic ones depending on the subject type.
- */
- if (purposes.length <= 3) {
- var hostSubjects = subjects.filter(function (subject) {
- return (subject.type === 'host');
- });
- var userSubjects = subjects.filter(function (subject) {
- return (subject.type === 'user');
- });
- if (hostSubjects.length > 0) {
- if (purposes.indexOf('serverAuth') === -1)
- purposes.push('serverAuth');
- }
- if (userSubjects.length > 0) {
- if (purposes.indexOf('clientAuth') === -1)
- purposes.push('clientAuth');
- }
- if (userSubjects.length > 0 || hostSubjects.length > 0) {
- if (purposes.indexOf('keyAgreement') === -1)
- purposes.push('keyAgreement');
- if (key.type === 'rsa' &&
- purposes.indexOf('encryption') === -1)
- purposes.push('encryption');
- }
- }
-
- var cert = new Certificate({
- subjects: subjects,
- issuer: subjects[0],
- subjectKey: key.toPublic(),
- issuerKey: key.toPublic(),
- signatures: {},
- serial: serial,
- validFrom: validFrom,
- validUntil: validUntil,
- purposes: purposes
- });
- cert.signWith(key);
-
- return (cert);
-};
-
-Certificate.create =
- function (subjectOrSubjects, key, issuer, issuerKey, options) {
- var subjects;
- if (Array.isArray(subjectOrSubjects))
- subjects = subjectOrSubjects;
- else
- subjects = [subjectOrSubjects];
-
- assert.arrayOfObject(subjects);
- subjects.forEach(function (subject) {
- utils.assertCompatible(subject, Identity, [1, 0], 'subject');
- });
-
- utils.assertCompatible(key, Key, [1, 0], 'key');
- if (PrivateKey.isPrivateKey(key))
- key = key.toPublic();
- utils.assertCompatible(issuer, Identity, [1, 0], 'issuer');
- utils.assertCompatible(issuerKey, PrivateKey, [1, 2], 'issuer key');
-
- assert.optionalObject(options, 'options');
- if (options === undefined)
- options = {};
- assert.optionalObject(options.validFrom, 'options.validFrom');
- assert.optionalObject(options.validUntil, 'options.validUntil');
- var validFrom = options.validFrom;
- var validUntil = options.validUntil;
- if (validFrom === undefined)
- validFrom = new Date();
- if (validUntil === undefined) {
- assert.optionalNumber(options.lifetime, 'options.lifetime');
- var lifetime = options.lifetime;
- if (lifetime === undefined)
- lifetime = 10*365*24*3600;
- validUntil = new Date();
- validUntil.setTime(validUntil.getTime() + lifetime*1000);
- }
- assert.optionalBuffer(options.serial, 'options.serial');
- var serial = options.serial;
- if (serial === undefined)
- serial = Buffer.from('0000000000000001', 'hex');
-
- var purposes = options.purposes;
- if (purposes === undefined)
- purposes = [];
-
- if (purposes.indexOf('signature') === -1)
- purposes.push('signature');
-
- if (options.ca === true) {
- if (purposes.indexOf('ca') === -1)
- purposes.push('ca');
- if (purposes.indexOf('crl') === -1)
- purposes.push('crl');
- }
-
- var hostSubjects = subjects.filter(function (subject) {
- return (subject.type === 'host');
- });
- var userSubjects = subjects.filter(function (subject) {
- return (subject.type === 'user');
- });
- if (hostSubjects.length > 0) {
- if (purposes.indexOf('serverAuth') === -1)
- purposes.push('serverAuth');
- }
- if (userSubjects.length > 0) {
- if (purposes.indexOf('clientAuth') === -1)
- purposes.push('clientAuth');
- }
- if (userSubjects.length > 0 || hostSubjects.length > 0) {
- if (purposes.indexOf('keyAgreement') === -1)
- purposes.push('keyAgreement');
- if (key.type === 'rsa' &&
- purposes.indexOf('encryption') === -1)
- purposes.push('encryption');
- }
-
- var cert = new Certificate({
- subjects: subjects,
- issuer: issuer,
- subjectKey: key,
- issuerKey: issuerKey.toPublic(),
- signatures: {},
- serial: serial,
- validFrom: validFrom,
- validUntil: validUntil,
- purposes: purposes
- });
- cert.signWith(issuerKey);
-
- return (cert);
-};
-
-Certificate.parse = function (data, format, options) {
- if (typeof (data) !== 'string')
- assert.buffer(data, 'data');
- if (format === undefined)
- format = 'auto';
- assert.string(format, 'format');
- if (typeof (options) === 'string')
- options = { filename: options };
- assert.optionalObject(options, 'options');
- if (options === undefined)
- options = {};
- assert.optionalString(options.filename, 'options.filename');
- if (options.filename === undefined)
- options.filename = '(unnamed)';
-
- assert.object(formats[format], 'formats[format]');
-
- try {
- var k = formats[format].read(data, options);
- return (k);
- } catch (e) {
- throw (new CertificateParseError(options.filename, format, e));
- }
-};
-
-Certificate.isCertificate = function (obj, ver) {
- return (utils.isCompatible(obj, Certificate, ver));
-};
-
-/*
- * API versions for Certificate:
- * [1,0] -- initial ver
- * [1,1] -- openssh format now unpacks extensions
- */
-Certificate.prototype._sshpkApiVersion = [1, 1];
-
-Certificate._oldVersionDetect = function (obj) {
- return ([1, 0]);
-};
diff --git a/deps/npm/node_modules/sshpk/lib/dhe.js b/deps/npm/node_modules/sshpk/lib/dhe.js
deleted file mode 100644
index a3c8032cf13..00000000000
--- a/deps/npm/node_modules/sshpk/lib/dhe.js
+++ /dev/null
@@ -1,397 +0,0 @@
-// Copyright 2017 Joyent, Inc.
-
-module.exports = {
- DiffieHellman: DiffieHellman,
- generateECDSA: generateECDSA,
- generateED25519: generateED25519
-};
-
-var assert = require('assert-plus');
-var crypto = require('crypto');
-var Buffer = require('safer-buffer').Buffer;
-var algs = require('./algs');
-var utils = require('./utils');
-var nacl = require('tweetnacl');
-
-var Key = require('./key');
-var PrivateKey = require('./private-key');
-
-var CRYPTO_HAVE_ECDH = (crypto.createECDH !== undefined);
-
-var ecdh = require('ecc-jsbn');
-var ec = require('ecc-jsbn/lib/ec');
-var jsbn = require('jsbn').BigInteger;
-
-function DiffieHellman(key) {
- utils.assertCompatible(key, Key, [1, 4], 'key');
- this._isPriv = PrivateKey.isPrivateKey(key, [1, 3]);
- this._algo = key.type;
- this._curve = key.curve;
- this._key = key;
- if (key.type === 'dsa') {
- if (!CRYPTO_HAVE_ECDH) {
- throw (new Error('Due to bugs in the node 0.10 ' +
- 'crypto API, node 0.12.x or later is required ' +
- 'to use DH'));
- }
- this._dh = crypto.createDiffieHellman(
- key.part.p.data, undefined,
- key.part.g.data, undefined);
- this._p = key.part.p;
- this._g = key.part.g;
- if (this._isPriv)
- this._dh.setPrivateKey(key.part.x.data);
- this._dh.setPublicKey(key.part.y.data);
-
- } else if (key.type === 'ecdsa') {
- if (!CRYPTO_HAVE_ECDH) {
- this._ecParams = new X9ECParameters(this._curve);
-
- if (this._isPriv) {
- this._priv = new ECPrivate(
- this._ecParams, key.part.d.data);
- }
- return;
- }
-
- var curve = {
- 'nistp256': 'prime256v1',
- 'nistp384': 'secp384r1',
- 'nistp521': 'secp521r1'
- }[key.curve];
- this._dh = crypto.createECDH(curve);
- if (typeof (this._dh) !== 'object' ||
- typeof (this._dh.setPrivateKey) !== 'function') {
- CRYPTO_HAVE_ECDH = false;
- DiffieHellman.call(this, key);
- return;
- }
- if (this._isPriv)
- this._dh.setPrivateKey(key.part.d.data);
- this._dh.setPublicKey(key.part.Q.data);
-
- } else if (key.type === 'curve25519') {
- if (this._isPriv) {
- utils.assertCompatible(key, PrivateKey, [1, 5], 'key');
- this._priv = key.part.k.data;
- }
-
- } else {
- throw (new Error('DH not supported for ' + key.type + ' keys'));
- }
-}
-
-DiffieHellman.prototype.getPublicKey = function () {
- if (this._isPriv)
- return (this._key.toPublic());
- return (this._key);
-};
-
-DiffieHellman.prototype.getPrivateKey = function () {
- if (this._isPriv)
- return (this._key);
- else
- return (undefined);
-};
-DiffieHellman.prototype.getKey = DiffieHellman.prototype.getPrivateKey;
-
-DiffieHellman.prototype._keyCheck = function (pk, isPub) {
- assert.object(pk, 'key');
- if (!isPub)
- utils.assertCompatible(pk, PrivateKey, [1, 3], 'key');
- utils.assertCompatible(pk, Key, [1, 4], 'key');
-
- if (pk.type !== this._algo) {
- throw (new Error('A ' + pk.type + ' key cannot be used in ' +
- this._algo + ' Diffie-Hellman'));
- }
-
- if (pk.curve !== this._curve) {
- throw (new Error('A key from the ' + pk.curve + ' curve ' +
- 'cannot be used with a ' + this._curve +
- ' Diffie-Hellman'));
- }
-
- if (pk.type === 'dsa') {
- assert.deepEqual(pk.part.p, this._p,
- 'DSA key prime does not match');
- assert.deepEqual(pk.part.g, this._g,
- 'DSA key generator does not match');
- }
-};
-
-DiffieHellman.prototype.setKey = function (pk) {
- this._keyCheck(pk);
-
- if (pk.type === 'dsa') {
- this._dh.setPrivateKey(pk.part.x.data);
- this._dh.setPublicKey(pk.part.y.data);
-
- } else if (pk.type === 'ecdsa') {
- if (CRYPTO_HAVE_ECDH) {
- this._dh.setPrivateKey(pk.part.d.data);
- this._dh.setPublicKey(pk.part.Q.data);
- } else {
- this._priv = new ECPrivate(
- this._ecParams, pk.part.d.data);
- }
-
- } else if (pk.type === 'curve25519') {
- var k = pk.part.k;
- if (!pk.part.k)
- k = pk.part.r;
- this._priv = k.data;
- if (this._priv[0] === 0x00)
- this._priv = this._priv.slice(1);
- this._priv = this._priv.slice(0, 32);
- }
- this._key = pk;
- this._isPriv = true;
-};
-DiffieHellman.prototype.setPrivateKey = DiffieHellman.prototype.setKey;
-
-DiffieHellman.prototype.computeSecret = function (otherpk) {
- this._keyCheck(otherpk, true);
- if (!this._isPriv)
- throw (new Error('DH exchange has not been initialized with ' +
- 'a private key yet'));
-
- var pub;
- if (this._algo === 'dsa') {
- return (this._dh.computeSecret(
- otherpk.part.y.data));
-
- } else if (this._algo === 'ecdsa') {
- if (CRYPTO_HAVE_ECDH) {
- return (this._dh.computeSecret(
- otherpk.part.Q.data));
- } else {
- pub = new ECPublic(
- this._ecParams, otherpk.part.Q.data);
- return (this._priv.deriveSharedSecret(pub));
- }
-
- } else if (this._algo === 'curve25519') {
- pub = otherpk.part.A.data;
- while (pub[0] === 0x00 && pub.length > 32)
- pub = pub.slice(1);
- var priv = this._priv;
- assert.strictEqual(pub.length, 32);
- assert.strictEqual(priv.length, 32);
-
- var secret = nacl.box.before(new Uint8Array(pub),
- new Uint8Array(priv));
-
- return (Buffer.from(secret));
- }
-
- throw (new Error('Invalid algorithm: ' + this._algo));
-};
-
-DiffieHellman.prototype.generateKey = function () {
- var parts = [];
- var priv, pub;
- if (this._algo === 'dsa') {
- this._dh.generateKeys();
-
- parts.push({name: 'p', data: this._p.data});
- parts.push({name: 'q', data: this._key.part.q.data});
- parts.push({name: 'g', data: this._g.data});
- parts.push({name: 'y', data: this._dh.getPublicKey()});
- parts.push({name: 'x', data: this._dh.getPrivateKey()});
- this._key = new PrivateKey({
- type: 'dsa',
- parts: parts
- });
- this._isPriv = true;
- return (this._key);
-
- } else if (this._algo === 'ecdsa') {
- if (CRYPTO_HAVE_ECDH) {
- this._dh.generateKeys();
-
- parts.push({name: 'curve',
- data: Buffer.from(this._curve)});
- parts.push({name: 'Q', data: this._dh.getPublicKey()});
- parts.push({name: 'd', data: this._dh.getPrivateKey()});
- this._key = new PrivateKey({
- type: 'ecdsa',
- curve: this._curve,
- parts: parts
- });
- this._isPriv = true;
- return (this._key);
-
- } else {
- var n = this._ecParams.getN();
- var r = new jsbn(crypto.randomBytes(n.bitLength()));
- var n1 = n.subtract(jsbn.ONE);
- priv = r.mod(n1).add(jsbn.ONE);
- pub = this._ecParams.getG().multiply(priv);
-
- priv = Buffer.from(priv.toByteArray());
- pub = Buffer.from(this._ecParams.getCurve().
- encodePointHex(pub), 'hex');
-
- this._priv = new ECPrivate(this._ecParams, priv);
-
- parts.push({name: 'curve',
- data: Buffer.from(this._curve)});
- parts.push({name: 'Q', data: pub});
- parts.push({name: 'd', data: priv});
-
- this._key = new PrivateKey({
- type: 'ecdsa',
- curve: this._curve,
- parts: parts
- });
- this._isPriv = true;
- return (this._key);
- }
-
- } else if (this._algo === 'curve25519') {
- var pair = nacl.box.keyPair();
- priv = Buffer.from(pair.secretKey);
- pub = Buffer.from(pair.publicKey);
- priv = Buffer.concat([priv, pub]);
- assert.strictEqual(priv.length, 64);
- assert.strictEqual(pub.length, 32);
-
- parts.push({name: 'A', data: pub});
- parts.push({name: 'k', data: priv});
- this._key = new PrivateKey({
- type: 'curve25519',
- parts: parts
- });
- this._isPriv = true;
- return (this._key);
- }
-
- throw (new Error('Invalid algorithm: ' + this._algo));
-};
-DiffieHellman.prototype.generateKeys = DiffieHellman.prototype.generateKey;
-
-/* These are helpers for using ecc-jsbn (for node 0.10 compatibility). */
-
-function X9ECParameters(name) {
- var params = algs.curves[name];
- assert.object(params);
-
- var p = new jsbn(params.p);
- var a = new jsbn(params.a);
- var b = new jsbn(params.b);
- var n = new jsbn(params.n);
- var h = jsbn.ONE;
- var curve = new ec.ECCurveFp(p, a, b);
- var G = curve.decodePointHex(params.G.toString('hex'));
-
- this.curve = curve;
- this.g = G;
- this.n = n;
- this.h = h;
-}
-X9ECParameters.prototype.getCurve = function () { return (this.curve); };
-X9ECParameters.prototype.getG = function () { return (this.g); };
-X9ECParameters.prototype.getN = function () { return (this.n); };
-X9ECParameters.prototype.getH = function () { return (this.h); };
-
-function ECPublic(params, buffer) {
- this._params = params;
- if (buffer[0] === 0x00)
- buffer = buffer.slice(1);
- this._pub = params.getCurve().decodePointHex(buffer.toString('hex'));
-}
-
-function ECPrivate(params, buffer) {
- this._params = params;
- this._priv = new jsbn(utils.mpNormalize(buffer));
-}
-ECPrivate.prototype.deriveSharedSecret = function (pubKey) {
- assert.ok(pubKey instanceof ECPublic);
- var S = pubKey._pub.multiply(this._priv);
- return (Buffer.from(S.getX().toBigInteger().toByteArray()));
-};
-
-function generateED25519() {
- var pair = nacl.sign.keyPair();
- var priv = Buffer.from(pair.secretKey);
- var pub = Buffer.from(pair.publicKey);
- assert.strictEqual(priv.length, 64);
- assert.strictEqual(pub.length, 32);
-
- var parts = [];
- parts.push({name: 'A', data: pub});
- parts.push({name: 'k', data: priv.slice(0, 32)});
- var key = new PrivateKey({
- type: 'ed25519',
- parts: parts
- });
- return (key);
-}
-
-/* Generates a new ECDSA private key on a given curve. */
-function generateECDSA(curve) {
- var parts = [];
- var key;
-
- if (CRYPTO_HAVE_ECDH) {
- /*
- * Node crypto doesn't expose key generation directly, but the
- * ECDH instances can generate keys. It turns out this just
- * calls into the OpenSSL generic key generator, and we can
- * read its output happily without doing an actual DH. So we
- * use that here.
- */
- var osCurve = {
- 'nistp256': 'prime256v1',
- 'nistp384': 'secp384r1',
- 'nistp521': 'secp521r1'
- }[curve];
-
- var dh = crypto.createECDH(osCurve);
- dh.generateKeys();
-
- parts.push({name: 'curve',
- data: Buffer.from(curve)});
- parts.push({name: 'Q', data: dh.getPublicKey()});
- parts.push({name: 'd', data: dh.getPrivateKey()});
-
- key = new PrivateKey({
- type: 'ecdsa',
- curve: curve,
- parts: parts
- });
- return (key);
- } else {
-
- var ecParams = new X9ECParameters(curve);
-
- /* This algorithm taken from FIPS PUB 186-4 (section B.4.1) */
- var n = ecParams.getN();
- /*
- * The crypto.randomBytes() function can only give us whole
- * bytes, so taking a nod from X9.62, we round up.
- */
- var cByteLen = Math.ceil((n.bitLength() + 64) / 8);
- var c = new jsbn(crypto.randomBytes(cByteLen));
-
- var n1 = n.subtract(jsbn.ONE);
- var priv = c.mod(n1).add(jsbn.ONE);
- var pub = ecParams.getG().multiply(priv);
-
- priv = Buffer.from(priv.toByteArray());
- pub = Buffer.from(ecParams.getCurve().
- encodePointHex(pub), 'hex');
-
- parts.push({name: 'curve', data: Buffer.from(curve)});
- parts.push({name: 'Q', data: pub});
- parts.push({name: 'd', data: priv});
-
- key = new PrivateKey({
- type: 'ecdsa',
- curve: curve,
- parts: parts
- });
- return (key);
- }
-}
diff --git a/deps/npm/node_modules/sshpk/lib/ed-compat.js b/deps/npm/node_modules/sshpk/lib/ed-compat.js
deleted file mode 100644
index 70732e1f704..00000000000
--- a/deps/npm/node_modules/sshpk/lib/ed-compat.js
+++ /dev/null
@@ -1,92 +0,0 @@
-// Copyright 2015 Joyent, Inc.
-
-module.exports = {
- Verifier: Verifier,
- Signer: Signer
-};
-
-var nacl = require('tweetnacl');
-var stream = require('stream');
-var util = require('util');
-var assert = require('assert-plus');
-var Buffer = require('safer-buffer').Buffer;
-var Signature = require('./signature');
-
-function Verifier(key, hashAlgo) {
- if (hashAlgo.toLowerCase() !== 'sha512')
- throw (new Error('ED25519 only supports the use of ' +
- 'SHA-512 hashes'));
-
- this.key = key;
- this.chunks = [];
-
- stream.Writable.call(this, {});
-}
-util.inherits(Verifier, stream.Writable);
-
-Verifier.prototype._write = function (chunk, enc, cb) {
- this.chunks.push(chunk);
- cb();
-};
-
-Verifier.prototype.update = function (chunk) {
- if (typeof (chunk) === 'string')
- chunk = Buffer.from(chunk, 'binary');
- this.chunks.push(chunk);
-};
-
-Verifier.prototype.verify = function (signature, fmt) {
- var sig;
- if (Signature.isSignature(signature, [2, 0])) {
- if (signature.type !== 'ed25519')
- return (false);
- sig = signature.toBuffer('raw');
-
- } else if (typeof (signature) === 'string') {
- sig = Buffer.from(signature, 'base64');
-
- } else if (Signature.isSignature(signature, [1, 0])) {
- throw (new Error('signature was created by too old ' +
- 'a version of sshpk and cannot be verified'));
- }
-
- assert.buffer(sig);
- return (nacl.sign.detached.verify(
- new Uint8Array(Buffer.concat(this.chunks)),
- new Uint8Array(sig),
- new Uint8Array(this.key.part.A.data)));
-};
-
-function Signer(key, hashAlgo) {
- if (hashAlgo.toLowerCase() !== 'sha512')
- throw (new Error('ED25519 only supports the use of ' +
- 'SHA-512 hashes'));
-
- this.key = key;
- this.chunks = [];
-
- stream.Writable.call(this, {});
-}
-util.inherits(Signer, stream.Writable);
-
-Signer.prototype._write = function (chunk, enc, cb) {
- this.chunks.push(chunk);
- cb();
-};
-
-Signer.prototype.update = function (chunk) {
- if (typeof (chunk) === 'string')
- chunk = Buffer.from(chunk, 'binary');
- this.chunks.push(chunk);
-};
-
-Signer.prototype.sign = function () {
- var sig = nacl.sign.detached(
- new Uint8Array(Buffer.concat(this.chunks)),
- new Uint8Array(Buffer.concat([
- this.key.part.k.data, this.key.part.A.data])));
- var sigBuf = Buffer.from(sig);
- var sigObj = Signature.parse(sigBuf, 'ed25519', 'raw');
- sigObj.hashAlgorithm = 'sha512';
- return (sigObj);
-};
diff --git a/deps/npm/node_modules/sshpk/lib/errors.js b/deps/npm/node_modules/sshpk/lib/errors.js
deleted file mode 100644
index 1cc09ec71d4..00000000000
--- a/deps/npm/node_modules/sshpk/lib/errors.js
+++ /dev/null
@@ -1,84 +0,0 @@
-// Copyright 2015 Joyent, Inc.
-
-var assert = require('assert-plus');
-var util = require('util');
-
-function FingerprintFormatError(fp, format) {
- if (Error.captureStackTrace)
- Error.captureStackTrace(this, FingerprintFormatError);
- this.name = 'FingerprintFormatError';
- this.fingerprint = fp;
- this.format = format;
- this.message = 'Fingerprint format is not supported, or is invalid: ';
- if (fp !== undefined)
- this.message += ' fingerprint = ' + fp;
- if (format !== undefined)
- this.message += ' format = ' + format;
-}
-util.inherits(FingerprintFormatError, Error);
-
-function InvalidAlgorithmError(alg) {
- if (Error.captureStackTrace)
- Error.captureStackTrace(this, InvalidAlgorithmError);
- this.name = 'InvalidAlgorithmError';
- this.algorithm = alg;
- this.message = 'Algorithm "' + alg + '" is not supported';
-}
-util.inherits(InvalidAlgorithmError, Error);
-
-function KeyParseError(name, format, innerErr) {
- if (Error.captureStackTrace)
- Error.captureStackTrace(this, KeyParseError);
- this.name = 'KeyParseError';
- this.format = format;
- this.keyName = name;
- this.innerErr = innerErr;
- this.message = 'Failed to parse ' + name + ' as a valid ' + format +
- ' format key: ' + innerErr.message;
-}
-util.inherits(KeyParseError, Error);
-
-function SignatureParseError(type, format, innerErr) {
- if (Error.captureStackTrace)
- Error.captureStackTrace(this, SignatureParseError);
- this.name = 'SignatureParseError';
- this.type = type;
- this.format = format;
- this.innerErr = innerErr;
- this.message = 'Failed to parse the given data as a ' + type +
- ' signature in ' + format + ' format: ' + innerErr.message;
-}
-util.inherits(SignatureParseError, Error);
-
-function CertificateParseError(name, format, innerErr) {
- if (Error.captureStackTrace)
- Error.captureStackTrace(this, CertificateParseError);
- this.name = 'CertificateParseError';
- this.format = format;
- this.certName = name;
- this.innerErr = innerErr;
- this.message = 'Failed to parse ' + name + ' as a valid ' + format +
- ' format certificate: ' + innerErr.message;
-}
-util.inherits(CertificateParseError, Error);
-
-function KeyEncryptedError(name, format) {
- if (Error.captureStackTrace)
- Error.captureStackTrace(this, KeyEncryptedError);
- this.name = 'KeyEncryptedError';
- this.format = format;
- this.keyName = name;
- this.message = 'The ' + format + ' format key ' + name + ' is ' +
- 'encrypted (password-protected), and no passphrase was ' +
- 'provided in `options`';
-}
-util.inherits(KeyEncryptedError, Error);
-
-module.exports = {
- FingerprintFormatError: FingerprintFormatError,
- InvalidAlgorithmError: InvalidAlgorithmError,
- KeyParseError: KeyParseError,
- SignatureParseError: SignatureParseError,
- KeyEncryptedError: KeyEncryptedError,
- CertificateParseError: CertificateParseError
-};
diff --git a/deps/npm/node_modules/sshpk/lib/fingerprint.js b/deps/npm/node_modules/sshpk/lib/fingerprint.js
deleted file mode 100644
index 0004b376ec6..00000000000
--- a/deps/npm/node_modules/sshpk/lib/fingerprint.js
+++ /dev/null
@@ -1,220 +0,0 @@
-// Copyright 2018 Joyent, Inc.
-
-module.exports = Fingerprint;
-
-var assert = require('assert-plus');
-var Buffer = require('safer-buffer').Buffer;
-var algs = require('./algs');
-var crypto = require('crypto');
-var errs = require('./errors');
-var Key = require('./key');
-var PrivateKey = require('./private-key');
-var Certificate = require('./certificate');
-var utils = require('./utils');
-
-var FingerprintFormatError = errs.FingerprintFormatError;
-var InvalidAlgorithmError = errs.InvalidAlgorithmError;
-
-function Fingerprint(opts) {
- assert.object(opts, 'options');
- assert.string(opts.type, 'options.type');
- assert.buffer(opts.hash, 'options.hash');
- assert.string(opts.algorithm, 'options.algorithm');
-
- this.algorithm = opts.algorithm.toLowerCase();
- if (algs.hashAlgs[this.algorithm] !== true)
- throw (new InvalidAlgorithmError(this.algorithm));
-
- this.hash = opts.hash;
- this.type = opts.type;
- this.hashType = opts.hashType;
-}
-
-Fingerprint.prototype.toString = function (format) {
- if (format === undefined) {
- if (this.algorithm === 'md5' || this.hashType === 'spki')
- format = 'hex';
- else
- format = 'base64';
- }
- assert.string(format);
-
- switch (format) {
- case 'hex':
- if (this.hashType === 'spki')
- return (this.hash.toString('hex'));
- return (addColons(this.hash.toString('hex')));
- case 'base64':
- if (this.hashType === 'spki')
- return (this.hash.toString('base64'));
- return (sshBase64Format(this.algorithm,
- this.hash.toString('base64')));
- default:
- throw (new FingerprintFormatError(undefined, format));
- }
-};
-
-Fingerprint.prototype.matches = function (other) {
- assert.object(other, 'key or certificate');
- if (this.type === 'key' && this.hashType !== 'ssh') {
- utils.assertCompatible(other, Key, [1, 7], 'key with spki');
- if (PrivateKey.isPrivateKey(other)) {
- utils.assertCompatible(other, PrivateKey, [1, 6],
- 'privatekey with spki support');
- }
- } else if (this.type === 'key') {
- utils.assertCompatible(other, Key, [1, 0], 'key');
- } else {
- utils.assertCompatible(other, Certificate, [1, 0],
- 'certificate');
- }
-
- var theirHash = other.hash(this.algorithm, this.hashType);
- var theirHash2 = crypto.createHash(this.algorithm).
- update(theirHash).digest('base64');
-
- if (this.hash2 === undefined)
- this.hash2 = crypto.createHash(this.algorithm).
- update(this.hash).digest('base64');
-
- return (this.hash2 === theirHash2);
-};
-
-/*JSSTYLED*/
-var base64RE = /^[A-Za-z0-9+\/=]+$/;
-/*JSSTYLED*/
-var hexRE = /^[a-fA-F0-9]+$/;
-
-Fingerprint.parse = function (fp, options) {
- assert.string(fp, 'fingerprint');
-
- var alg, hash, enAlgs;
- if (Array.isArray(options)) {
- enAlgs = options;
- options = {};
- }
- assert.optionalObject(options, 'options');
- if (options === undefined)
- options = {};
- if (options.enAlgs !== undefined)
- enAlgs = options.enAlgs;
- if (options.algorithms !== undefined)
- enAlgs = options.algorithms;
- assert.optionalArrayOfString(enAlgs, 'algorithms');
-
- var hashType = 'ssh';
- if (options.hashType !== undefined)
- hashType = options.hashType;
- assert.string(hashType, 'options.hashType');
-
- var parts = fp.split(':');
- if (parts.length == 2) {
- alg = parts[0].toLowerCase();
- if (!base64RE.test(parts[1]))
- throw (new FingerprintFormatError(fp));
- try {
- hash = Buffer.from(parts[1], 'base64');
- } catch (e) {
- throw (new FingerprintFormatError(fp));
- }
- } else if (parts.length > 2) {
- alg = 'md5';
- if (parts[0].toLowerCase() === 'md5')
- parts = parts.slice(1);
- parts = parts.map(function (p) {
- while (p.length < 2)
- p = '0' + p;
- if (p.length > 2)
- throw (new FingerprintFormatError(fp));
- return (p);
- });
- parts = parts.join('');
- if (!hexRE.test(parts) || parts.length % 2 !== 0)
- throw (new FingerprintFormatError(fp));
- try {
- hash = Buffer.from(parts, 'hex');
- } catch (e) {
- throw (new FingerprintFormatError(fp));
- }
- } else {
- if (hexRE.test(fp)) {
- hash = Buffer.from(fp, 'hex');
- } else if (base64RE.test(fp)) {
- hash = Buffer.from(fp, 'base64');
- } else {
- throw (new FingerprintFormatError(fp));
- }
-
- switch (hash.length) {
- case 32:
- alg = 'sha256';
- break;
- case 16:
- alg = 'md5';
- break;
- case 20:
- alg = 'sha1';
- break;
- case 64:
- alg = 'sha512';
- break;
- default:
- throw (new FingerprintFormatError(fp));
- }
-
- /* Plain hex/base64: guess it's probably SPKI unless told. */
- if (options.hashType === undefined)
- hashType = 'spki';
- }
-
- if (alg === undefined)
- throw (new FingerprintFormatError(fp));
-
- if (algs.hashAlgs[alg] === undefined)
- throw (new InvalidAlgorithmError(alg));
-
- if (enAlgs !== undefined) {
- enAlgs = enAlgs.map(function (a) { return a.toLowerCase(); });
- if (enAlgs.indexOf(alg) === -1)
- throw (new InvalidAlgorithmError(alg));
- }
-
- return (new Fingerprint({
- algorithm: alg,
- hash: hash,
- type: options.type || 'key',
- hashType: hashType
- }));
-};
-
-function addColons(s) {
- /*JSSTYLED*/
- return (s.replace(/(.{2})(?=.)/g, '$1:'));
-}
-
-function base64Strip(s) {
- /*JSSTYLED*/
- return (s.replace(/=*$/, ''));
-}
-
-function sshBase64Format(alg, h) {
- return (alg.toUpperCase() + ':' + base64Strip(h));
-}
-
-Fingerprint.isFingerprint = function (obj, ver) {
- return (utils.isCompatible(obj, Fingerprint, ver));
-};
-
-/*
- * API versions for Fingerprint:
- * [1,0] -- initial ver
- * [1,1] -- first tagged ver
- * [1,2] -- hashType and spki support
- */
-Fingerprint.prototype._sshpkApiVersion = [1, 2];
-
-Fingerprint._oldVersionDetect = function (obj) {
- assert.func(obj.toString);
- assert.func(obj.matches);
- return ([1, 0]);
-};
diff --git a/deps/npm/node_modules/sshpk/lib/formats/auto.js b/deps/npm/node_modules/sshpk/lib/formats/auto.js
deleted file mode 100644
index f32cd9648bc..00000000000
--- a/deps/npm/node_modules/sshpk/lib/formats/auto.js
+++ /dev/null
@@ -1,124 +0,0 @@
-// Copyright 2018 Joyent, Inc.
-
-module.exports = {
- read: read,
- write: write
-};
-
-var assert = require('assert-plus');
-var Buffer = require('safer-buffer').Buffer;
-var utils = require('../utils');
-var Key = require('../key');
-var PrivateKey = require('../private-key');
-
-var pem = require('./pem');
-var ssh = require('./ssh');
-var rfc4253 = require('./rfc4253');
-var dnssec = require('./dnssec');
-var putty = require('./putty');
-
-var DNSSEC_PRIVKEY_HEADER_PREFIX = 'Private-key-format: v1';
-
-function read(buf, options) {
- if (typeof (buf) === 'string') {
- if (buf.trim().match(/^[-]+[ ]*BEGIN/))
- return (pem.read(buf, options));
- if (buf.match(/^\s*ssh-[a-z]/))
- return (ssh.read(buf, options));
- if (buf.match(/^\s*ecdsa-/))
- return (ssh.read(buf, options));
- if (buf.match(/^putty-user-key-file-2:/i))
- return (putty.read(buf, options));
- if (findDNSSECHeader(buf))
- return (dnssec.read(buf, options));
- buf = Buffer.from(buf, 'binary');
- } else {
- assert.buffer(buf);
- if (findPEMHeader(buf))
- return (pem.read(buf, options));
- if (findSSHHeader(buf))
- return (ssh.read(buf, options));
- if (findPuTTYHeader(buf))
- return (putty.read(buf, options));
- if (findDNSSECHeader(buf))
- return (dnssec.read(buf, options));
- }
- if (buf.readUInt32BE(0) < buf.length)
- return (rfc4253.read(buf, options));
- throw (new Error('Failed to auto-detect format of key'));
-}
-
-function findPuTTYHeader(buf) {
- var offset = 0;
- while (offset < buf.length &&
- (buf[offset] === 32 || buf[offset] === 10 || buf[offset] === 9))
- ++offset;
- if (offset + 22 <= buf.length &&
- buf.slice(offset, offset + 22).toString('ascii').toLowerCase() ===
- 'putty-user-key-file-2:')
- return (true);
- return (false);
-}
-
-function findSSHHeader(buf) {
- var offset = 0;
- while (offset < buf.length &&
- (buf[offset] === 32 || buf[offset] === 10 || buf[offset] === 9))
- ++offset;
- if (offset + 4 <= buf.length &&
- buf.slice(offset, offset + 4).toString('ascii') === 'ssh-')
- return (true);
- if (offset + 6 <= buf.length &&
- buf.slice(offset, offset + 6).toString('ascii') === 'ecdsa-')
- return (true);
- return (false);
-}
-
-function findPEMHeader(buf) {
- var offset = 0;
- while (offset < buf.length &&
- (buf[offset] === 32 || buf[offset] === 10))
- ++offset;
- if (buf[offset] !== 45)
- return (false);
- while (offset < buf.length &&
- (buf[offset] === 45))
- ++offset;
- while (offset < buf.length &&
- (buf[offset] === 32))
- ++offset;
- if (offset + 5 > buf.length ||
- buf.slice(offset, offset + 5).toString('ascii') !== 'BEGIN')
- return (false);
- return (true);
-}
-
-function findDNSSECHeader(buf) {
- // private case first
- if (buf.length <= DNSSEC_PRIVKEY_HEADER_PREFIX.length)
- return (false);
- var headerCheck = buf.slice(0, DNSSEC_PRIVKEY_HEADER_PREFIX.length);
- if (headerCheck.toString('ascii') === DNSSEC_PRIVKEY_HEADER_PREFIX)
- return (true);
-
- // public-key RFC3110 ?
- // 'domain.com. IN KEY ...' or 'domain.com. IN DNSKEY ...'
- // skip any comment-lines
- if (typeof (buf) !== 'string') {
- buf = buf.toString('ascii');
- }
- var lines = buf.split('\n');
- var line = 0;
- /* JSSTYLED */
- while (lines[line].match(/^\;/))
- line++;
- if (lines[line].toString('ascii').match(/\. IN KEY /))
- return (true);
- if (lines[line].toString('ascii').match(/\. IN DNSKEY /))
- return (true);
- return (false);
-}
-
-function write(key, options) {
- throw (new Error('"auto" format cannot be used for writing'));
-}
diff --git a/deps/npm/node_modules/sshpk/lib/formats/dnssec.js b/deps/npm/node_modules/sshpk/lib/formats/dnssec.js
deleted file mode 100644
index a74ea9ce0de..00000000000
--- a/deps/npm/node_modules/sshpk/lib/formats/dnssec.js
+++ /dev/null
@@ -1,287 +0,0 @@
-// Copyright 2017 Joyent, Inc.
-
-module.exports = {
- read: read,
- write: write
-};
-
-var assert = require('assert-plus');
-var Buffer = require('safer-buffer').Buffer;
-var Key = require('../key');
-var PrivateKey = require('../private-key');
-var utils = require('../utils');
-var SSHBuffer = require('../ssh-buffer');
-var Dhe = require('../dhe');
-
-var supportedAlgos = {
- 'rsa-sha1' : 5,
- 'rsa-sha256' : 8,
- 'rsa-sha512' : 10,
- 'ecdsa-p256-sha256' : 13,
- 'ecdsa-p384-sha384' : 14
- /*
- * ed25519 is hypothetically supported with id 15
- * but the common tools available don't appear to be
- * capable of generating/using ed25519 keys
- */
-};
-
-var supportedAlgosById = {};
-Object.keys(supportedAlgos).forEach(function (k) {
- supportedAlgosById[supportedAlgos[k]] = k.toUpperCase();
-});
-
-function read(buf, options) {
- if (typeof (buf) !== 'string') {
- assert.buffer(buf, 'buf');
- buf = buf.toString('ascii');
- }
- var lines = buf.split('\n');
- if (lines[0].match(/^Private-key-format\: v1/)) {
- var algElems = lines[1].split(' ');
- var algoNum = parseInt(algElems[1], 10);
- var algoName = algElems[2];
- if (!supportedAlgosById[algoNum])
- throw (new Error('Unsupported algorithm: ' + algoName));
- return (readDNSSECPrivateKey(algoNum, lines.slice(2)));
- }
-
- // skip any comment-lines
- var line = 0;
- /* JSSTYLED */
- while (lines[line].match(/^\;/))
- line++;
- // we should now have *one single* line left with our KEY on it.
- if ((lines[line].match(/\. IN KEY /) ||
- lines[line].match(/\. IN DNSKEY /)) && lines[line+1].length === 0) {
- return (readRFC3110(lines[line]));
- }
- throw (new Error('Cannot parse dnssec key'));
-}
-
-function readRFC3110(keyString) {
- var elems = keyString.split(' ');
- //unused var flags = parseInt(elems[3], 10);
- //unused var protocol = parseInt(elems[4], 10);
- var algorithm = parseInt(elems[5], 10);
- if (!supportedAlgosById[algorithm])
- throw (new Error('Unsupported algorithm: ' + algorithm));
- var base64key = elems.slice(6, elems.length).join();
- var keyBuffer = Buffer.from(base64key, 'base64');
- if (supportedAlgosById[algorithm].match(/^RSA-/)) {
- // join the rest of the body into a single base64-blob
- var publicExponentLen = keyBuffer.readUInt8(0);
- if (publicExponentLen != 3 && publicExponentLen != 1)
- throw (new Error('Cannot parse dnssec key: ' +
- 'unsupported exponent length'));
-
- var publicExponent = keyBuffer.slice(1, publicExponentLen+1);
- publicExponent = utils.mpNormalize(publicExponent);
- var modulus = keyBuffer.slice(1+publicExponentLen);
- modulus = utils.mpNormalize(modulus);
- // now, make the key
- var rsaKey = {
- type: 'rsa',
- parts: []
- };
- rsaKey.parts.push({ name: 'e', data: publicExponent});
- rsaKey.parts.push({ name: 'n', data: modulus});
- return (new Key(rsaKey));
- }
- if (supportedAlgosById[algorithm] === 'ECDSA-P384-SHA384' ||
- supportedAlgosById[algorithm] === 'ECDSA-P256-SHA256') {
- var curve = 'nistp384';
- var size = 384;
- if (supportedAlgosById[algorithm].match(/^ECDSA-P256-SHA256/)) {
- curve = 'nistp256';
- size = 256;
- }
-
- var ecdsaKey = {
- type: 'ecdsa',
- curve: curve,
- size: size,
- parts: [
- {name: 'curve', data: Buffer.from(curve) },
- {name: 'Q', data: utils.ecNormalize(keyBuffer) }
- ]
- };
- return (new Key(ecdsaKey));
- }
- throw (new Error('Unsupported algorithm: ' +
- supportedAlgosById[algorithm]));
-}
-
-function elementToBuf(e) {
- return (Buffer.from(e.split(' ')[1], 'base64'));
-}
-
-function readDNSSECRSAPrivateKey(elements) {
- var rsaParams = {};
- elements.forEach(function (element) {
- if (element.split(' ')[0] === 'Modulus:')
- rsaParams['n'] = elementToBuf(element);
- else if (element.split(' ')[0] === 'PublicExponent:')
- rsaParams['e'] = elementToBuf(element);
- else if (element.split(' ')[0] === 'PrivateExponent:')
- rsaParams['d'] = elementToBuf(element);
- else if (element.split(' ')[0] === 'Prime1:')
- rsaParams['p'] = elementToBuf(element);
- else if (element.split(' ')[0] === 'Prime2:')
- rsaParams['q'] = elementToBuf(element);
- else if (element.split(' ')[0] === 'Exponent1:')
- rsaParams['dmodp'] = elementToBuf(element);
- else if (element.split(' ')[0] === 'Exponent2:')
- rsaParams['dmodq'] = elementToBuf(element);
- else if (element.split(' ')[0] === 'Coefficient:')
- rsaParams['iqmp'] = elementToBuf(element);
- });
- // now, make the key
- var key = {
- type: 'rsa',
- parts: [
- { name: 'e', data: utils.mpNormalize(rsaParams['e'])},
- { name: 'n', data: utils.mpNormalize(rsaParams['n'])},
- { name: 'd', data: utils.mpNormalize(rsaParams['d'])},
- { name: 'p', data: utils.mpNormalize(rsaParams['p'])},
- { name: 'q', data: utils.mpNormalize(rsaParams['q'])},
- { name: 'dmodp',
- data: utils.mpNormalize(rsaParams['dmodp'])},
- { name: 'dmodq',
- data: utils.mpNormalize(rsaParams['dmodq'])},
- { name: 'iqmp',
- data: utils.mpNormalize(rsaParams['iqmp'])}
- ]
- };
- return (new PrivateKey(key));
-}
-
-function readDNSSECPrivateKey(alg, elements) {
- if (supportedAlgosById[alg].match(/^RSA-/)) {
- return (readDNSSECRSAPrivateKey(elements));
- }
- if (supportedAlgosById[alg] === 'ECDSA-P384-SHA384' ||
- supportedAlgosById[alg] === 'ECDSA-P256-SHA256') {
- var d = Buffer.from(elements[0].split(' ')[1], 'base64');
- var curve = 'nistp384';
- var size = 384;
- if (supportedAlgosById[alg] === 'ECDSA-P256-SHA256') {
- curve = 'nistp256';
- size = 256;
- }
- // DNSSEC generates the public-key on the fly (go calculate it)
- var publicKey = utils.publicFromPrivateECDSA(curve, d);
- var Q = publicKey.part['Q'].data;
- var ecdsaKey = {
- type: 'ecdsa',
- curve: curve,
- size: size,
- parts: [
- {name: 'curve', data: Buffer.from(curve) },
- {name: 'd', data: d },
- {name: 'Q', data: Q }
- ]
- };
- return (new PrivateKey(ecdsaKey));
- }
- throw (new Error('Unsupported algorithm: ' + supportedAlgosById[alg]));
-}
-
-function dnssecTimestamp(date) {
- var year = date.getFullYear() + ''; //stringify
- var month = (date.getMonth() + 1);
- var timestampStr = year + month + date.getUTCDate();
- timestampStr += '' + date.getUTCHours() + date.getUTCMinutes();
- timestampStr += date.getUTCSeconds();
- return (timestampStr);
-}
-
-function rsaAlgFromOptions(opts) {
- if (!opts || !opts.hashAlgo || opts.hashAlgo === 'sha1')
- return ('5 (RSASHA1)');
- else if (opts.hashAlgo === 'sha256')
- return ('8 (RSASHA256)');
- else if (opts.hashAlgo === 'sha512')
- return ('10 (RSASHA512)');
- else
- throw (new Error('Unknown or unsupported hash: ' +
- opts.hashAlgo));
-}
-
-function writeRSA(key, options) {
- // if we're missing parts, add them.
- if (!key.part.dmodp || !key.part.dmodq) {
- utils.addRSAMissing(key);
- }
-
- var out = '';
- out += 'Private-key-format: v1.3\n';
- out += 'Algorithm: ' + rsaAlgFromOptions(options) + '\n';
- var n = utils.mpDenormalize(key.part['n'].data);
- out += 'Modulus: ' + n.toString('base64') + '\n';
- var e = utils.mpDenormalize(key.part['e'].data);
- out += 'PublicExponent: ' + e.toString('base64') + '\n';
- var d = utils.mpDenormalize(key.part['d'].data);
- out += 'PrivateExponent: ' + d.toString('base64') + '\n';
- var p = utils.mpDenormalize(key.part['p'].data);
- out += 'Prime1: ' + p.toString('base64') + '\n';
- var q = utils.mpDenormalize(key.part['q'].data);
- out += 'Prime2: ' + q.toString('base64') + '\n';
- var dmodp = utils.mpDenormalize(key.part['dmodp'].data);
- out += 'Exponent1: ' + dmodp.toString('base64') + '\n';
- var dmodq = utils.mpDenormalize(key.part['dmodq'].data);
- out += 'Exponent2: ' + dmodq.toString('base64') + '\n';
- var iqmp = utils.mpDenormalize(key.part['iqmp'].data);
- out += 'Coefficient: ' + iqmp.toString('base64') + '\n';
- // Assume that we're valid as-of now
- var timestamp = new Date();
- out += 'Created: ' + dnssecTimestamp(timestamp) + '\n';
- out += 'Publish: ' + dnssecTimestamp(timestamp) + '\n';
- out += 'Activate: ' + dnssecTimestamp(timestamp) + '\n';
- return (Buffer.from(out, 'ascii'));
-}
-
-function writeECDSA(key, options) {
- var out = '';
- out += 'Private-key-format: v1.3\n';
-
- if (key.curve === 'nistp256') {
- out += 'Algorithm: 13 (ECDSAP256SHA256)\n';
- } else if (key.curve === 'nistp384') {
- out += 'Algorithm: 14 (ECDSAP384SHA384)\n';
- } else {
- throw (new Error('Unsupported curve'));
- }
- var base64Key = key.part['d'].data.toString('base64');
- out += 'PrivateKey: ' + base64Key + '\n';
-
- // Assume that we're valid as-of now
- var timestamp = new Date();
- out += 'Created: ' + dnssecTimestamp(timestamp) + '\n';
- out += 'Publish: ' + dnssecTimestamp(timestamp) + '\n';
- out += 'Activate: ' + dnssecTimestamp(timestamp) + '\n';
-
- return (Buffer.from(out, 'ascii'));
-}
-
-function write(key, options) {
- if (PrivateKey.isPrivateKey(key)) {
- if (key.type === 'rsa') {
- return (writeRSA(key, options));
- } else if (key.type === 'ecdsa') {
- return (writeECDSA(key, options));
- } else {
- throw (new Error('Unsupported algorithm: ' + key.type));
- }
- } else if (Key.isKey(key)) {
- /*
- * RFC3110 requires a keyname, and a keytype, which we
- * don't really have a mechanism for specifying such
- * additional metadata.
- */
- throw (new Error('Format "dnssec" only supports ' +
- 'writing private keys'));
- } else {
- throw (new Error('key is not a Key or PrivateKey'));
- }
-}
diff --git a/deps/npm/node_modules/sshpk/lib/formats/openssh-cert.js b/deps/npm/node_modules/sshpk/lib/formats/openssh-cert.js
deleted file mode 100644
index 766f3d39cb3..00000000000
--- a/deps/npm/node_modules/sshpk/lib/formats/openssh-cert.js
+++ /dev/null
@@ -1,352 +0,0 @@
-// Copyright 2017 Joyent, Inc.
-
-module.exports = {
- read: read,
- verify: verify,
- sign: sign,
- signAsync: signAsync,
- write: write,
-
- /* Internal private API */
- fromBuffer: fromBuffer,
- toBuffer: toBuffer
-};
-
-var assert = require('assert-plus');
-var SSHBuffer = require('../ssh-buffer');
-var crypto = require('crypto');
-var Buffer = require('safer-buffer').Buffer;
-var algs = require('../algs');
-var Key = require('../key');
-var PrivateKey = require('../private-key');
-var Identity = require('../identity');
-var rfc4253 = require('./rfc4253');
-var Signature = require('../signature');
-var utils = require('../utils');
-var Certificate = require('../certificate');
-
-function verify(cert, key) {
- /*
- * We always give an issuerKey, so if our verify() is being called then
- * there was no signature. Return false.
- */
- return (false);
-}
-
-var TYPES = {
- 'user': 1,
- 'host': 2
-};
-Object.keys(TYPES).forEach(function (k) { TYPES[TYPES[k]] = k; });
-
-var ECDSA_ALGO = /^ecdsa-sha2-([^@-]+)-cert-v01@openssh.com$/;
-
-function read(buf, options) {
- if (Buffer.isBuffer(buf))
- buf = buf.toString('ascii');
- var parts = buf.trim().split(/[ \t\n]+/g);
- if (parts.length < 2 || parts.length > 3)
- throw (new Error('Not a valid SSH certificate line'));
-
- var algo = parts[0];
- var data = parts[1];
-
- data = Buffer.from(data, 'base64');
- return (fromBuffer(data, algo));
-}
-
-function fromBuffer(data, algo, partial) {
- var sshbuf = new SSHBuffer({ buffer: data });
- var innerAlgo = sshbuf.readString();
- if (algo !== undefined && innerAlgo !== algo)
- throw (new Error('SSH certificate algorithm mismatch'));
- if (algo === undefined)
- algo = innerAlgo;
-
- var cert = {};
- cert.signatures = {};
- cert.signatures.openssh = {};
-
- cert.signatures.openssh.nonce = sshbuf.readBuffer();
-
- var key = {};
- var parts = (key.parts = []);
- key.type = getAlg(algo);
-
- var partCount = algs.info[key.type].parts.length;
- while (parts.length < partCount)
- parts.push(sshbuf.readPart());
- assert.ok(parts.length >= 1, 'key must have at least one part');
-
- var algInfo = algs.info[key.type];
- if (key.type === 'ecdsa') {
- var res = ECDSA_ALGO.exec(algo);
- assert.ok(res !== null);
- assert.strictEqual(res[1], parts[0].data.toString());
- }
-
- for (var i = 0; i < algInfo.parts.length; ++i) {
- parts[i].name = algInfo.parts[i];
- if (parts[i].name !== 'curve' &&
- algInfo.normalize !== false) {
- var p = parts[i];
- p.data = utils.mpNormalize(p.data);
- }
- }
-
- cert.subjectKey = new Key(key);
-
- cert.serial = sshbuf.readInt64();
-
- var type = TYPES[sshbuf.readInt()];
- assert.string(type, 'valid cert type');
-
- cert.signatures.openssh.keyId = sshbuf.readString();
-
- var principals = [];
- var pbuf = sshbuf.readBuffer();
- var psshbuf = new SSHBuffer({ buffer: pbuf });
- while (!psshbuf.atEnd())
- principals.push(psshbuf.readString());
- if (principals.length === 0)
- principals = ['*'];
-
- cert.subjects = principals.map(function (pr) {
- if (type === 'user')
- return (Identity.forUser(pr));
- else if (type === 'host')
- return (Identity.forHost(pr));
- throw (new Error('Unknown identity type ' + type));
- });
-
- cert.validFrom = int64ToDate(sshbuf.readInt64());
- cert.validUntil = int64ToDate(sshbuf.readInt64());
-
- var exts = [];
- var extbuf = new SSHBuffer({ buffer: sshbuf.readBuffer() });
- var ext;
- while (!extbuf.atEnd()) {
- ext = { critical: true };
- ext.name = extbuf.readString();
- ext.data = extbuf.readBuffer();
- exts.push(ext);
- }
- extbuf = new SSHBuffer({ buffer: sshbuf.readBuffer() });
- while (!extbuf.atEnd()) {
- ext = { critical: false };
- ext.name = extbuf.readString();
- ext.data = extbuf.readBuffer();
- exts.push(ext);
- }
- cert.signatures.openssh.exts = exts;
-
- /* reserved */
- sshbuf.readBuffer();
-
- var signingKeyBuf = sshbuf.readBuffer();
- cert.issuerKey = rfc4253.read(signingKeyBuf);
-
- /*
- * OpenSSH certs don't give the identity of the issuer, just their
- * public key. So, we use an Identity that matches anything. The
- * isSignedBy() function will later tell you if the key matches.
- */
- cert.issuer = Identity.forHost('**');
-
- var sigBuf = sshbuf.readBuffer();
- cert.signatures.openssh.signature =
- Signature.parse(sigBuf, cert.issuerKey.type, 'ssh');
-
- if (partial !== undefined) {
- partial.remainder = sshbuf.remainder();
- partial.consumed = sshbuf._offset;
- }
-
- return (new Certificate(cert));
-}
-
-function int64ToDate(buf) {
- var i = buf.readUInt32BE(0) * 4294967296;
- i += buf.readUInt32BE(4);
- var d = new Date();
- d.setTime(i * 1000);
- d.sourceInt64 = buf;
- return (d);
-}
-
-function dateToInt64(date) {
- if (date.sourceInt64 !== undefined)
- return (date.sourceInt64);
- var i = Math.round(date.getTime() / 1000);
- var upper = Math.floor(i / 4294967296);
- var lower = Math.floor(i % 4294967296);
- var buf = Buffer.alloc(8);
- buf.writeUInt32BE(upper, 0);
- buf.writeUInt32BE(lower, 4);
- return (buf);
-}
-
-function sign(cert, key) {
- if (cert.signatures.openssh === undefined)
- cert.signatures.openssh = {};
- try {
- var blob = toBuffer(cert, true);
- } catch (e) {
- delete (cert.signatures.openssh);
- return (false);
- }
- var sig = cert.signatures.openssh;
- var hashAlgo = undefined;
- if (key.type === 'rsa' || key.type === 'dsa')
- hashAlgo = 'sha1';
- var signer = key.createSign(hashAlgo);
- signer.write(blob);
- sig.signature = signer.sign();
- return (true);
-}
-
-function signAsync(cert, signer, done) {
- if (cert.signatures.openssh === undefined)
- cert.signatures.openssh = {};
- try {
- var blob = toBuffer(cert, true);
- } catch (e) {
- delete (cert.signatures.openssh);
- done(e);
- return;
- }
- var sig = cert.signatures.openssh;
-
- signer(blob, function (err, signature) {
- if (err) {
- done(err);
- return;
- }
- try {
- /*
- * This will throw if the signature isn't of a
- * type/algo that can be used for SSH.
- */
- signature.toBuffer('ssh');
- } catch (e) {
- done(e);
- return;
- }
- sig.signature = signature;
- done();
- });
-}
-
-function write(cert, options) {
- if (options === undefined)
- options = {};
-
- var blob = toBuffer(cert);
- var out = getCertType(cert.subjectKey) + ' ' + blob.toString('base64');
- if (options.comment)
- out = out + ' ' + options.comment;
- return (out);
-}
-
-
-function toBuffer(cert, noSig) {
- assert.object(cert.signatures.openssh, 'signature for openssh format');
- var sig = cert.signatures.openssh;
-
- if (sig.nonce === undefined)
- sig.nonce = crypto.randomBytes(16);
- var buf = new SSHBuffer({});
- buf.writeString(getCertType(cert.subjectKey));
- buf.writeBuffer(sig.nonce);
-
- var key = cert.subjectKey;
- var algInfo = algs.info[key.type];
- algInfo.parts.forEach(function (part) {
- buf.writePart(key.part[part]);
- });
-
- buf.writeInt64(cert.serial);
-
- var type = cert.subjects[0].type;
- assert.notStrictEqual(type, 'unknown');
- cert.subjects.forEach(function (id) {
- assert.strictEqual(id.type, type);
- });
- type = TYPES[type];
- buf.writeInt(type);
-
- if (sig.keyId === undefined) {
- sig.keyId = cert.subjects[0].type + '_' +
- (cert.subjects[0].uid || cert.subjects[0].hostname);
- }
- buf.writeString(sig.keyId);
-
- var sub = new SSHBuffer({});
- cert.subjects.forEach(function (id) {
- if (type === TYPES.host)
- sub.writeString(id.hostname);
- else if (type === TYPES.user)
- sub.writeString(id.uid);
- });
- buf.writeBuffer(sub.toBuffer());
-
- buf.writeInt64(dateToInt64(cert.validFrom));
- buf.writeInt64(dateToInt64(cert.validUntil));
-
- var exts = sig.exts;
- if (exts === undefined)
- exts = [];
-
- var extbuf = new SSHBuffer({});
- exts.forEach(function (ext) {
- if (ext.critical !== true)
- return;
- extbuf.writeString(ext.name);
- extbuf.writeBuffer(ext.data);
- });
- buf.writeBuffer(extbuf.toBuffer());
-
- extbuf = new SSHBuffer({});
- exts.forEach(function (ext) {
- if (ext.critical === true)
- return;
- extbuf.writeString(ext.name);
- extbuf.writeBuffer(ext.data);
- });
- buf.writeBuffer(extbuf.toBuffer());
-
- /* reserved */
- buf.writeBuffer(Buffer.alloc(0));
-
- sub = rfc4253.write(cert.issuerKey);
- buf.writeBuffer(sub);
-
- if (!noSig)
- buf.writeBuffer(sig.signature.toBuffer('ssh'));
-
- return (buf.toBuffer());
-}
-
-function getAlg(certType) {
- if (certType === 'ssh-rsa-cert-v01@openssh.com')
- return ('rsa');
- if (certType === 'ssh-dss-cert-v01@openssh.com')
- return ('dsa');
- if (certType.match(ECDSA_ALGO))
- return ('ecdsa');
- if (certType === 'ssh-ed25519-cert-v01@openssh.com')
- return ('ed25519');
- throw (new Error('Unsupported cert type ' + certType));
-}
-
-function getCertType(key) {
- if (key.type === 'rsa')
- return ('ssh-rsa-cert-v01@openssh.com');
- if (key.type === 'dsa')
- return ('ssh-dss-cert-v01@openssh.com');
- if (key.type === 'ecdsa')
- return ('ecdsa-sha2-' + key.curve + '-cert-v01@openssh.com');
- if (key.type === 'ed25519')
- return ('ssh-ed25519-cert-v01@openssh.com');
- throw (new Error('Unsupported key type ' + key.type));
-}
diff --git a/deps/npm/node_modules/sshpk/lib/formats/pem.js b/deps/npm/node_modules/sshpk/lib/formats/pem.js
deleted file mode 100644
index bbe78fcb56f..00000000000
--- a/deps/npm/node_modules/sshpk/lib/formats/pem.js
+++ /dev/null
@@ -1,290 +0,0 @@
-// Copyright 2018 Joyent, Inc.
-
-module.exports = {
- read: read,
- write: write
-};
-
-var assert = require('assert-plus');
-var asn1 = require('asn1');
-var crypto = require('crypto');
-var Buffer = require('safer-buffer').Buffer;
-var algs = require('../algs');
-var utils = require('../utils');
-var Key = require('../key');
-var PrivateKey = require('../private-key');
-
-var pkcs1 = require('./pkcs1');
-var pkcs8 = require('./pkcs8');
-var sshpriv = require('./ssh-private');
-var rfc4253 = require('./rfc4253');
-
-var errors = require('../errors');
-
-var OID_PBES2 = '1.2.840.113549.1.5.13';
-var OID_PBKDF2 = '1.2.840.113549.1.5.12';
-
-var OID_TO_CIPHER = {
- '1.2.840.113549.3.7': '3des-cbc',
- '2.16.840.1.101.3.4.1.2': 'aes128-cbc',
- '2.16.840.1.101.3.4.1.42': 'aes256-cbc'
-};
-var CIPHER_TO_OID = {};
-Object.keys(OID_TO_CIPHER).forEach(function (k) {
- CIPHER_TO_OID[OID_TO_CIPHER[k]] = k;
-});
-
-var OID_TO_HASH = {
- '1.2.840.113549.2.7': 'sha1',
- '1.2.840.113549.2.9': 'sha256',
- '1.2.840.113549.2.11': 'sha512'
-};
-var HASH_TO_OID = {};
-Object.keys(OID_TO_HASH).forEach(function (k) {
- HASH_TO_OID[OID_TO_HASH[k]] = k;
-});
-
-/*
- * For reading we support both PKCS#1 and PKCS#8. If we find a private key,
- * we just take the public component of it and use that.
- */
-function read(buf, options, forceType) {
- var input = buf;
- if (typeof (buf) !== 'string') {
- assert.buffer(buf, 'buf');
- buf = buf.toString('ascii');
- }
-
- var lines = buf.trim().split(/[\r\n]+/g);
-
- var m;
- var si = -1;
- while (!m && si < lines.length) {
- m = lines[++si].match(/*JSSTYLED*/
- /[-]+[ ]*BEGIN ([A-Z0-9][A-Za-z0-9]+ )?(PUBLIC|PRIVATE) KEY[ ]*[-]+/);
- }
- assert.ok(m, 'invalid PEM header');
-
- var m2;
- var ei = lines.length;
- while (!m2 && ei > 0) {
- m2 = lines[--ei].match(/*JSSTYLED*/
- /[-]+[ ]*END ([A-Z0-9][A-Za-z0-9]+ )?(PUBLIC|PRIVATE) KEY[ ]*[-]+/);
- }
- assert.ok(m2, 'invalid PEM footer');
-
- /* Begin and end banners must match key type */
- assert.equal(m[2], m2[2]);
- var type = m[2].toLowerCase();
-
- var alg;
- if (m[1]) {
- /* They also must match algorithms, if given */
- assert.equal(m[1], m2[1], 'PEM header and footer mismatch');
- alg = m[1].trim();
- }
-
- lines = lines.slice(si, ei + 1);
-
- var headers = {};
- while (true) {
- lines = lines.slice(1);
- m = lines[0].match(/*JSSTYLED*/
- /^([A-Za-z0-9-]+): (.+)$/);
- if (!m)
- break;
- headers[m[1].toLowerCase()] = m[2];
- }
-
- /* Chop off the first and last lines */
- lines = lines.slice(0, -1).join('');
- buf = Buffer.from(lines, 'base64');
-
- var cipher, key, iv;
- if (headers['proc-type']) {
- var parts = headers['proc-type'].split(',');
- if (parts[0] === '4' && parts[1] === 'ENCRYPTED') {
- if (typeof (options.passphrase) === 'string') {
- options.passphrase = Buffer.from(
- options.passphrase, 'utf-8');
- }
- if (!Buffer.isBuffer(options.passphrase)) {
- throw (new errors.KeyEncryptedError(
- options.filename, 'PEM'));
- } else {
- parts = headers['dek-info'].split(',');
- assert.ok(parts.length === 2);
- cipher = parts[0].toLowerCase();
- iv = Buffer.from(parts[1], 'hex');
- key = utils.opensslKeyDeriv(cipher, iv,
- options.passphrase, 1).key;
- }
- }
- }
-
- if (alg && alg.toLowerCase() === 'encrypted') {
- var eder = new asn1.BerReader(buf);
- var pbesEnd;
- eder.readSequence();
-
- eder.readSequence();
- pbesEnd = eder.offset + eder.length;
-
- var method = eder.readOID();
- if (method !== OID_PBES2) {
- throw (new Error('Unsupported PEM/PKCS8 encryption ' +
- 'scheme: ' + method));
- }
-
- eder.readSequence(); /* PBES2-params */
-
- eder.readSequence(); /* keyDerivationFunc */
- var kdfEnd = eder.offset + eder.length;
- var kdfOid = eder.readOID();
- if (kdfOid !== OID_PBKDF2)
- throw (new Error('Unsupported PBES2 KDF: ' + kdfOid));
- eder.readSequence();
- var salt = eder.readString(asn1.Ber.OctetString, true);
- var iterations = eder.readInt();
- var hashAlg = 'sha1';
- if (eder.offset < kdfEnd) {
- eder.readSequence();
- var hashAlgOid = eder.readOID();
- hashAlg = OID_TO_HASH[hashAlgOid];
- if (hashAlg === undefined) {
- throw (new Error('Unsupported PBKDF2 hash: ' +
- hashAlgOid));
- }
- }
- eder._offset = kdfEnd;
-
- eder.readSequence(); /* encryptionScheme */
- var cipherOid = eder.readOID();
- cipher = OID_TO_CIPHER[cipherOid];
- if (cipher === undefined) {
- throw (new Error('Unsupported PBES2 cipher: ' +
- cipherOid));
- }
- iv = eder.readString(asn1.Ber.OctetString, true);
-
- eder._offset = pbesEnd;
- buf = eder.readString(asn1.Ber.OctetString, true);
-
- if (typeof (options.passphrase) === 'string') {
- options.passphrase = Buffer.from(
- options.passphrase, 'utf-8');
- }
- if (!Buffer.isBuffer(options.passphrase)) {
- throw (new errors.KeyEncryptedError(
- options.filename, 'PEM'));
- }
-
- var cinfo = utils.opensshCipherInfo(cipher);
-
- cipher = cinfo.opensslName;
- key = utils.pbkdf2(hashAlg, salt, iterations, cinfo.keySize,
- options.passphrase);
- alg = undefined;
- }
-
- if (cipher && key && iv) {
- var cipherStream = crypto.createDecipheriv(cipher, key, iv);
- var chunk, chunks = [];
- cipherStream.once('error', function (e) {
- if (e.toString().indexOf('bad decrypt') !== -1) {
- throw (new Error('Incorrect passphrase ' +
- 'supplied, could not decrypt key'));
- }
- throw (e);
- });
- cipherStream.write(buf);
- cipherStream.end();
- while ((chunk = cipherStream.read()) !== null)
- chunks.push(chunk);
- buf = Buffer.concat(chunks);
- }
-
- /* The new OpenSSH internal format abuses PEM headers */
- if (alg && alg.toLowerCase() === 'openssh')
- return (sshpriv.readSSHPrivate(type, buf, options));
- if (alg && alg.toLowerCase() === 'ssh2')
- return (rfc4253.readType(type, buf, options));
-
- var der = new asn1.BerReader(buf);
- der.originalInput = input;
-
- /*
- * All of the PEM file types start with a sequence tag, so chop it
- * off here
- */
- der.readSequence();
-
- /* PKCS#1 type keys name an algorithm in the banner explicitly */
- if (alg) {
- if (forceType)
- assert.strictEqual(forceType, 'pkcs1');
- return (pkcs1.readPkcs1(alg, type, der));
- } else {
- if (forceType)
- assert.strictEqual(forceType, 'pkcs8');
- return (pkcs8.readPkcs8(alg, type, der));
- }
-}
-
-function write(key, options, type) {
- assert.object(key);
-
- var alg = {
- 'ecdsa': 'EC',
- 'rsa': 'RSA',
- 'dsa': 'DSA',
- 'ed25519': 'EdDSA'
- }[key.type];
- var header;
-
- var der = new asn1.BerWriter();
-
- if (PrivateKey.isPrivateKey(key)) {
- if (type && type === 'pkcs8') {
- header = 'PRIVATE KEY';
- pkcs8.writePkcs8(der, key);
- } else {
- if (type)
- assert.strictEqual(type, 'pkcs1');
- header = alg + ' PRIVATE KEY';
- pkcs1.writePkcs1(der, key);
- }
-
- } else if (Key.isKey(key)) {
- if (type && type === 'pkcs1') {
- header = alg + ' PUBLIC KEY';
- pkcs1.writePkcs1(der, key);
- } else {
- if (type)
- assert.strictEqual(type, 'pkcs8');
- header = 'PUBLIC KEY';
- pkcs8.writePkcs8(der, key);
- }
-
- } else {
- throw (new Error('key is not a Key or PrivateKey'));
- }
-
- var tmp = der.buffer.toString('base64');
- var len = tmp.length + (tmp.length / 64) +
- 18 + 16 + header.length*2 + 10;
- var buf = Buffer.alloc(len);
- var o = 0;
- o += buf.write('-----BEGIN ' + header + '-----\n', o);
- for (var i = 0; i < tmp.length; ) {
- var limit = i + 64;
- if (limit > tmp.length)
- limit = tmp.length;
- o += buf.write(tmp.slice(i, limit), o);
- buf[o++] = 10;
- i = limit;
- }
- o += buf.write('-----END ' + header + '-----\n', o);
-
- return (buf.slice(0, o));
-}
diff --git a/deps/npm/node_modules/sshpk/lib/formats/pkcs1.js b/deps/npm/node_modules/sshpk/lib/formats/pkcs1.js
deleted file mode 100644
index bc485500252..00000000000
--- a/deps/npm/node_modules/sshpk/lib/formats/pkcs1.js
+++ /dev/null
@@ -1,373 +0,0 @@
-// Copyright 2015 Joyent, Inc.
-
-module.exports = {
- read: read,
- readPkcs1: readPkcs1,
- write: write,
- writePkcs1: writePkcs1
-};
-
-var assert = require('assert-plus');
-var asn1 = require('asn1');
-var Buffer = require('safer-buffer').Buffer;
-var algs = require('../algs');
-var utils = require('../utils');
-
-var Key = require('../key');
-var PrivateKey = require('../private-key');
-var pem = require('./pem');
-
-var pkcs8 = require('./pkcs8');
-var readECDSACurve = pkcs8.readECDSACurve;
-
-function read(buf, options) {
- return (pem.read(buf, options, 'pkcs1'));
-}
-
-function write(key, options) {
- return (pem.write(key, options, 'pkcs1'));
-}
-
-/* Helper to read in a single mpint */
-function readMPInt(der, nm) {
- assert.strictEqual(der.peek(), asn1.Ber.Integer,
- nm + ' is not an Integer');
- return (utils.mpNormalize(der.readString(asn1.Ber.Integer, true)));
-}
-
-function readPkcs1(alg, type, der) {
- switch (alg) {
- case 'RSA':
- if (type === 'public')
- return (readPkcs1RSAPublic(der));
- else if (type === 'private')
- return (readPkcs1RSAPrivate(der));
- throw (new Error('Unknown key type: ' + type));
- case 'DSA':
- if (type === 'public')
- return (readPkcs1DSAPublic(der));
- else if (type === 'private')
- return (readPkcs1DSAPrivate(der));
- throw (new Error('Unknown key type: ' + type));
- case 'EC':
- case 'ECDSA':
- if (type === 'private')
- return (readPkcs1ECDSAPrivate(der));
- else if (type === 'public')
- return (readPkcs1ECDSAPublic(der));
- throw (new Error('Unknown key type: ' + type));
- case 'EDDSA':
- case 'EdDSA':
- if (type === 'private')
- return (readPkcs1EdDSAPrivate(der));
- throw (new Error(type + ' keys not supported with EdDSA'));
- default:
- throw (new Error('Unknown key algo: ' + alg));
- }
-}
-
-function readPkcs1RSAPublic(der) {
- // modulus and exponent
- var n = readMPInt(der, 'modulus');
- var e = readMPInt(der, 'exponent');
-
- // now, make the key
- var key = {
- type: 'rsa',
- parts: [
- { name: 'e', data: e },
- { name: 'n', data: n }
- ]
- };
-
- return (new Key(key));
-}
-
-function readPkcs1RSAPrivate(der) {
- var version = readMPInt(der, 'version');
- assert.strictEqual(version[0], 0);
-
- // modulus then public exponent
- var n = readMPInt(der, 'modulus');
- var e = readMPInt(der, 'public exponent');
- var d = readMPInt(der, 'private exponent');
- var p = readMPInt(der, 'prime1');
- var q = readMPInt(der, 'prime2');
- var dmodp = readMPInt(der, 'exponent1');
- var dmodq = readMPInt(der, 'exponent2');
- var iqmp = readMPInt(der, 'iqmp');
-
- // now, make the key
- var key = {
- type: 'rsa',
- parts: [
- { name: 'n', data: n },
- { name: 'e', data: e },
- { name: 'd', data: d },
- { name: 'iqmp', data: iqmp },
- { name: 'p', data: p },
- { name: 'q', data: q },
- { name: 'dmodp', data: dmodp },
- { name: 'dmodq', data: dmodq }
- ]
- };
-
- return (new PrivateKey(key));
-}
-
-function readPkcs1DSAPrivate(der) {
- var version = readMPInt(der, 'version');
- assert.strictEqual(version.readUInt8(0), 0);
-
- var p = readMPInt(der, 'p');
- var q = readMPInt(der, 'q');
- var g = readMPInt(der, 'g');
- var y = readMPInt(der, 'y');
- var x = readMPInt(der, 'x');
-
- // now, make the key
- var key = {
- type: 'dsa',
- parts: [
- { name: 'p', data: p },
- { name: 'q', data: q },
- { name: 'g', data: g },
- { name: 'y', data: y },
- { name: 'x', data: x }
- ]
- };
-
- return (new PrivateKey(key));
-}
-
-function readPkcs1EdDSAPrivate(der) {
- var version = readMPInt(der, 'version');
- assert.strictEqual(version.readUInt8(0), 1);
-
- // private key
- var k = der.readString(asn1.Ber.OctetString, true);
-
- der.readSequence(0xa0);
- var oid = der.readOID();
- assert.strictEqual(oid, '1.3.101.112', 'the ed25519 curve identifier');
-
- der.readSequence(0xa1);
- var A = utils.readBitString(der);
-
- var key = {
- type: 'ed25519',
- parts: [
- { name: 'A', data: utils.zeroPadToLength(A, 32) },
- { name: 'k', data: k }
- ]
- };
-
- return (new PrivateKey(key));
-}
-
-function readPkcs1DSAPublic(der) {
- var y = readMPInt(der, 'y');
- var p = readMPInt(der, 'p');
- var q = readMPInt(der, 'q');
- var g = readMPInt(der, 'g');
-
- var key = {
- type: 'dsa',
- parts: [
- { name: 'y', data: y },
- { name: 'p', data: p },
- { name: 'q', data: q },
- { name: 'g', data: g }
- ]
- };
-
- return (new Key(key));
-}
-
-function readPkcs1ECDSAPublic(der) {
- der.readSequence();
-
- var oid = der.readOID();
- assert.strictEqual(oid, '1.2.840.10045.2.1', 'must be ecPublicKey');
-
- var curveOid = der.readOID();
-
- var curve;
- var curves = Object.keys(algs.curves);
- for (var j = 0; j < curves.length; ++j) {
- var c = curves[j];
- var cd = algs.curves[c];
- if (cd.pkcs8oid === curveOid) {
- curve = c;
- break;
- }
- }
- assert.string(curve, 'a known ECDSA named curve');
-
- var Q = der.readString(asn1.Ber.BitString, true);
- Q = utils.ecNormalize(Q);
-
- var key = {
- type: 'ecdsa',
- parts: [
- { name: 'curve', data: Buffer.from(curve) },
- { name: 'Q', data: Q }
- ]
- };
-
- return (new Key(key));
-}
-
-function readPkcs1ECDSAPrivate(der) {
- var version = readMPInt(der, 'version');
- assert.strictEqual(version.readUInt8(0), 1);
-
- // private key
- var d = der.readString(asn1.Ber.OctetString, true);
-
- der.readSequence(0xa0);
- var curve = readECDSACurve(der);
- assert.string(curve, 'a known elliptic curve');
-
- der.readSequence(0xa1);
- var Q = der.readString(asn1.Ber.BitString, true);
- Q = utils.ecNormalize(Q);
-
- var key = {
- type: 'ecdsa',
- parts: [
- { name: 'curve', data: Buffer.from(curve) },
- { name: 'Q', data: Q },
- { name: 'd', data: d }
- ]
- };
-
- return (new PrivateKey(key));
-}
-
-function writePkcs1(der, key) {
- der.startSequence();
-
- switch (key.type) {
- case 'rsa':
- if (PrivateKey.isPrivateKey(key))
- writePkcs1RSAPrivate(der, key);
- else
- writePkcs1RSAPublic(der, key);
- break;
- case 'dsa':
- if (PrivateKey.isPrivateKey(key))
- writePkcs1DSAPrivate(der, key);
- else
- writePkcs1DSAPublic(der, key);
- break;
- case 'ecdsa':
- if (PrivateKey.isPrivateKey(key))
- writePkcs1ECDSAPrivate(der, key);
- else
- writePkcs1ECDSAPublic(der, key);
- break;
- case 'ed25519':
- if (PrivateKey.isPrivateKey(key))
- writePkcs1EdDSAPrivate(der, key);
- else
- writePkcs1EdDSAPublic(der, key);
- break;
- default:
- throw (new Error('Unknown key algo: ' + key.type));
- }
-
- der.endSequence();
-}
-
-function writePkcs1RSAPublic(der, key) {
- der.writeBuffer(key.part.n.data, asn1.Ber.Integer);
- der.writeBuffer(key.part.e.data, asn1.Ber.Integer);
-}
-
-function writePkcs1RSAPrivate(der, key) {
- var ver = Buffer.from([0]);
- der.writeBuffer(ver, asn1.Ber.Integer);
-
- der.writeBuffer(key.part.n.data, asn1.Ber.Integer);
- der.writeBuffer(key.part.e.data, asn1.Ber.Integer);
- der.writeBuffer(key.part.d.data, asn1.Ber.Integer);
- der.writeBuffer(key.part.p.data, asn1.Ber.Integer);
- der.writeBuffer(key.part.q.data, asn1.Ber.Integer);
- if (!key.part.dmodp || !key.part.dmodq)
- utils.addRSAMissing(key);
- der.writeBuffer(key.part.dmodp.data, asn1.Ber.Integer);
- der.writeBuffer(key.part.dmodq.data, asn1.Ber.Integer);
- der.writeBuffer(key.part.iqmp.data, asn1.Ber.Integer);
-}
-
-function writePkcs1DSAPrivate(der, key) {
- var ver = Buffer.from([0]);
- der.writeBuffer(ver, asn1.Ber.Integer);
-
- der.writeBuffer(key.part.p.data, asn1.Ber.Integer);
- der.writeBuffer(key.part.q.data, asn1.Ber.Integer);
- der.writeBuffer(key.part.g.data, asn1.Ber.Integer);
- der.writeBuffer(key.part.y.data, asn1.Ber.Integer);
- der.writeBuffer(key.part.x.data, asn1.Ber.Integer);
-}
-
-function writePkcs1DSAPublic(der, key) {
- der.writeBuffer(key.part.y.data, asn1.Ber.Integer);
- der.writeBuffer(key.part.p.data, asn1.Ber.Integer);
- der.writeBuffer(key.part.q.data, asn1.Ber.Integer);
- der.writeBuffer(key.part.g.data, asn1.Ber.Integer);
-}
-
-function writePkcs1ECDSAPublic(der, key) {
- der.startSequence();
-
- der.writeOID('1.2.840.10045.2.1'); /* ecPublicKey */
- var curve = key.part.curve.data.toString();
- var curveOid = algs.curves[curve].pkcs8oid;
- assert.string(curveOid, 'a known ECDSA named curve');
- der.writeOID(curveOid);
-
- der.endSequence();
-
- var Q = utils.ecNormalize(key.part.Q.data, true);
- der.writeBuffer(Q, asn1.Ber.BitString);
-}
-
-function writePkcs1ECDSAPrivate(der, key) {
- var ver = Buffer.from([1]);
- der.writeBuffer(ver, asn1.Ber.Integer);
-
- der.writeBuffer(key.part.d.data, asn1.Ber.OctetString);
-
- der.startSequence(0xa0);
- var curve = key.part.curve.data.toString();
- var curveOid = algs.curves[curve].pkcs8oid;
- assert.string(curveOid, 'a known ECDSA named curve');
- der.writeOID(curveOid);
- der.endSequence();
-
- der.startSequence(0xa1);
- var Q = utils.ecNormalize(key.part.Q.data, true);
- der.writeBuffer(Q, asn1.Ber.BitString);
- der.endSequence();
-}
-
-function writePkcs1EdDSAPrivate(der, key) {
- var ver = Buffer.from([1]);
- der.writeBuffer(ver, asn1.Ber.Integer);
-
- der.writeBuffer(key.part.k.data, asn1.Ber.OctetString);
-
- der.startSequence(0xa0);
- der.writeOID('1.3.101.112');
- der.endSequence();
-
- der.startSequence(0xa1);
- utils.writeBitString(der, key.part.A.data);
- der.endSequence();
-}
-
-function writePkcs1EdDSAPublic(der, key) {
- throw (new Error('Public keys are not supported for EdDSA PKCS#1'));
-}
diff --git a/deps/npm/node_modules/sshpk/lib/formats/pkcs8.js b/deps/npm/node_modules/sshpk/lib/formats/pkcs8.js
deleted file mode 100644
index 2ca3ca7a260..00000000000
--- a/deps/npm/node_modules/sshpk/lib/formats/pkcs8.js
+++ /dev/null
@@ -1,631 +0,0 @@
-// Copyright 2018 Joyent, Inc.
-
-module.exports = {
- read: read,
- readPkcs8: readPkcs8,
- write: write,
- writePkcs8: writePkcs8,
- pkcs8ToBuffer: pkcs8ToBuffer,
-
- readECDSACurve: readECDSACurve,
- writeECDSACurve: writeECDSACurve
-};
-
-var assert = require('assert-plus');
-var asn1 = require('asn1');
-var Buffer = require('safer-buffer').Buffer;
-var algs = require('../algs');
-var utils = require('../utils');
-var Key = require('../key');
-var PrivateKey = require('../private-key');
-var pem = require('./pem');
-
-function read(buf, options) {
- return (pem.read(buf, options, 'pkcs8'));
-}
-
-function write(key, options) {
- return (pem.write(key, options, 'pkcs8'));
-}
-
-/* Helper to read in a single mpint */
-function readMPInt(der, nm) {
- assert.strictEqual(der.peek(), asn1.Ber.Integer,
- nm + ' is not an Integer');
- return (utils.mpNormalize(der.readString(asn1.Ber.Integer, true)));
-}
-
-function readPkcs8(alg, type, der) {
- /* Private keys in pkcs#8 format have a weird extra int */
- if (der.peek() === asn1.Ber.Integer) {
- assert.strictEqual(type, 'private',
- 'unexpected Integer at start of public key');
- der.readString(asn1.Ber.Integer, true);
- }
-
- der.readSequence();
- var next = der.offset + der.length;
-
- var oid = der.readOID();
- switch (oid) {
- case '1.2.840.113549.1.1.1':
- der._offset = next;
- if (type === 'public')
- return (readPkcs8RSAPublic(der));
- else
- return (readPkcs8RSAPrivate(der));
- case '1.2.840.10040.4.1':
- if (type === 'public')
- return (readPkcs8DSAPublic(der));
- else
- return (readPkcs8DSAPrivate(der));
- case '1.2.840.10045.2.1':
- if (type === 'public')
- return (readPkcs8ECDSAPublic(der));
- else
- return (readPkcs8ECDSAPrivate(der));
- case '1.3.101.112':
- if (type === 'public') {
- return (readPkcs8EdDSAPublic(der));
- } else {
- return (readPkcs8EdDSAPrivate(der));
- }
- case '1.3.101.110':
- if (type === 'public') {
- return (readPkcs8X25519Public(der));
- } else {
- return (readPkcs8X25519Private(der));
- }
- default:
- throw (new Error('Unknown key type OID ' + oid));
- }
-}
-
-function readPkcs8RSAPublic(der) {
- // bit string sequence
- der.readSequence(asn1.Ber.BitString);
- der.readByte();
- der.readSequence();
-
- // modulus
- var n = readMPInt(der, 'modulus');
- var e = readMPInt(der, 'exponent');
-
- // now, make the key
- var key = {
- type: 'rsa',
- source: der.originalInput,
- parts: [
- { name: 'e', data: e },
- { name: 'n', data: n }
- ]
- };
-
- return (new Key(key));
-}
-
-function readPkcs8RSAPrivate(der) {
- der.readSequence(asn1.Ber.OctetString);
- der.readSequence();
-
- var ver = readMPInt(der, 'version');
- assert.equal(ver[0], 0x0, 'unknown RSA private key version');
-
- // modulus then public exponent
- var n = readMPInt(der, 'modulus');
- var e = readMPInt(der, 'public exponent');
- var d = readMPInt(der, 'private exponent');
- var p = readMPInt(der, 'prime1');
- var q = readMPInt(der, 'prime2');
- var dmodp = readMPInt(der, 'exponent1');
- var dmodq = readMPInt(der, 'exponent2');
- var iqmp = readMPInt(der, 'iqmp');
-
- // now, make the key
- var key = {
- type: 'rsa',
- parts: [
- { name: 'n', data: n },
- { name: 'e', data: e },
- { name: 'd', data: d },
- { name: 'iqmp', data: iqmp },
- { name: 'p', data: p },
- { name: 'q', data: q },
- { name: 'dmodp', data: dmodp },
- { name: 'dmodq', data: dmodq }
- ]
- };
-
- return (new PrivateKey(key));
-}
-
-function readPkcs8DSAPublic(der) {
- der.readSequence();
-
- var p = readMPInt(der, 'p');
- var q = readMPInt(der, 'q');
- var g = readMPInt(der, 'g');
-
- // bit string sequence
- der.readSequence(asn1.Ber.BitString);
- der.readByte();
-
- var y = readMPInt(der, 'y');
-
- // now, make the key
- var key = {
- type: 'dsa',
- parts: [
- { name: 'p', data: p },
- { name: 'q', data: q },
- { name: 'g', data: g },
- { name: 'y', data: y }
- ]
- };
-
- return (new Key(key));
-}
-
-function readPkcs8DSAPrivate(der) {
- der.readSequence();
-
- var p = readMPInt(der, 'p');
- var q = readMPInt(der, 'q');
- var g = readMPInt(der, 'g');
-
- der.readSequence(asn1.Ber.OctetString);
- var x = readMPInt(der, 'x');
-
- /* The pkcs#8 format does not include the public key */
- var y = utils.calculateDSAPublic(g, p, x);
-
- var key = {
- type: 'dsa',
- parts: [
- { name: 'p', data: p },
- { name: 'q', data: q },
- { name: 'g', data: g },
- { name: 'y', data: y },
- { name: 'x', data: x }
- ]
- };
-
- return (new PrivateKey(key));
-}
-
-function readECDSACurve(der) {
- var curveName, curveNames;
- var j, c, cd;
-
- if (der.peek() === asn1.Ber.OID) {
- var oid = der.readOID();
-
- curveNames = Object.keys(algs.curves);
- for (j = 0; j < curveNames.length; ++j) {
- c = curveNames[j];
- cd = algs.curves[c];
- if (cd.pkcs8oid === oid) {
- curveName = c;
- break;
- }
- }
-
- } else {
- // ECParameters sequence
- der.readSequence();
- var version = der.readString(asn1.Ber.Integer, true);
- assert.strictEqual(version[0], 1, 'ECDSA key not version 1');
-
- var curve = {};
-
- // FieldID sequence
- der.readSequence();
- var fieldTypeOid = der.readOID();
- assert.strictEqual(fieldTypeOid, '1.2.840.10045.1.1',
- 'ECDSA key is not from a prime-field');
- var p = curve.p = utils.mpNormalize(
- der.readString(asn1.Ber.Integer, true));
- /*
- * p always starts with a 1 bit, so count the zeros to get its
- * real size.
- */
- curve.size = p.length * 8 - utils.countZeros(p);
-
- // Curve sequence
- der.readSequence();
- curve.a = utils.mpNormalize(
- der.readString(asn1.Ber.OctetString, true));
- curve.b = utils.mpNormalize(
- der.readString(asn1.Ber.OctetString, true));
- if (der.peek() === asn1.Ber.BitString)
- curve.s = der.readString(asn1.Ber.BitString, true);
-
- // Combined Gx and Gy
- curve.G = der.readString(asn1.Ber.OctetString, true);
- assert.strictEqual(curve.G[0], 0x4,
- 'uncompressed G is required');
-
- curve.n = utils.mpNormalize(
- der.readString(asn1.Ber.Integer, true));
- curve.h = utils.mpNormalize(
- der.readString(asn1.Ber.Integer, true));
- assert.strictEqual(curve.h[0], 0x1, 'a cofactor=1 curve is ' +
- 'required');
-
- curveNames = Object.keys(algs.curves);
- var ks = Object.keys(curve);
- for (j = 0; j < curveNames.length; ++j) {
- c = curveNames[j];
- cd = algs.curves[c];
- var equal = true;
- for (var i = 0; i < ks.length; ++i) {
- var k = ks[i];
- if (cd[k] === undefined)
- continue;
- if (typeof (cd[k]) === 'object' &&
- cd[k].equals !== undefined) {
- if (!cd[k].equals(curve[k])) {
- equal = false;
- break;
- }
- } else if (Buffer.isBuffer(cd[k])) {
- if (cd[k].toString('binary')
- !== curve[k].toString('binary')) {
- equal = false;
- break;
- }
- } else {
- if (cd[k] !== curve[k]) {
- equal = false;
- break;
- }
- }
- }
- if (equal) {
- curveName = c;
- break;
- }
- }
- }
- return (curveName);
-}
-
-function readPkcs8ECDSAPrivate(der) {
- var curveName = readECDSACurve(der);
- assert.string(curveName, 'a known elliptic curve');
-
- der.readSequence(asn1.Ber.OctetString);
- der.readSequence();
-
- var version = readMPInt(der, 'version');
- assert.equal(version[0], 1, 'unknown version of ECDSA key');
-
- var d = der.readString(asn1.Ber.OctetString, true);
- var Q;
-
- if (der.peek() == 0xa0) {
- der.readSequence(0xa0);
- der._offset += der.length;
- }
- if (der.peek() == 0xa1) {
- der.readSequence(0xa1);
- Q = der.readString(asn1.Ber.BitString, true);
- Q = utils.ecNormalize(Q);
- }
-
- if (Q === undefined) {
- var pub = utils.publicFromPrivateECDSA(curveName, d);
- Q = pub.part.Q.data;
- }
-
- var key = {
- type: 'ecdsa',
- parts: [
- { name: 'curve', data: Buffer.from(curveName) },
- { name: 'Q', data: Q },
- { name: 'd', data: d }
- ]
- };
-
- return (new PrivateKey(key));
-}
-
-function readPkcs8ECDSAPublic(der) {
- var curveName = readECDSACurve(der);
- assert.string(curveName, 'a known elliptic curve');
-
- var Q = der.readString(asn1.Ber.BitString, true);
- Q = utils.ecNormalize(Q);
-
- var key = {
- type: 'ecdsa',
- parts: [
- { name: 'curve', data: Buffer.from(curveName) },
- { name: 'Q', data: Q }
- ]
- };
-
- return (new Key(key));
-}
-
-function readPkcs8EdDSAPublic(der) {
- if (der.peek() === 0x00)
- der.readByte();
-
- var A = utils.readBitString(der);
-
- var key = {
- type: 'ed25519',
- parts: [
- { name: 'A', data: utils.zeroPadToLength(A, 32) }
- ]
- };
-
- return (new Key(key));
-}
-
-function readPkcs8X25519Public(der) {
- var A = utils.readBitString(der);
-
- var key = {
- type: 'curve25519',
- parts: [
- { name: 'A', data: utils.zeroPadToLength(A, 32) }
- ]
- };
-
- return (new Key(key));
-}
-
-function readPkcs8EdDSAPrivate(der) {
- if (der.peek() === 0x00)
- der.readByte();
-
- der.readSequence(asn1.Ber.OctetString);
- var k = der.readString(asn1.Ber.OctetString, true);
- k = utils.zeroPadToLength(k, 32);
-
- var A;
- if (der.peek() === asn1.Ber.BitString) {
- A = utils.readBitString(der);
- A = utils.zeroPadToLength(A, 32);
- } else {
- A = utils.calculateED25519Public(k);
- }
-
- var key = {
- type: 'ed25519',
- parts: [
- { name: 'A', data: utils.zeroPadToLength(A, 32) },
- { name: 'k', data: utils.zeroPadToLength(k, 32) }
- ]
- };
-
- return (new PrivateKey(key));
-}
-
-function readPkcs8X25519Private(der) {
- if (der.peek() === 0x00)
- der.readByte();
-
- der.readSequence(asn1.Ber.OctetString);
- var k = der.readString(asn1.Ber.OctetString, true);
- k = utils.zeroPadToLength(k, 32);
-
- var A = utils.calculateX25519Public(k);
-
- var key = {
- type: 'curve25519',
- parts: [
- { name: 'A', data: utils.zeroPadToLength(A, 32) },
- { name: 'k', data: utils.zeroPadToLength(k, 32) }
- ]
- };
-
- return (new PrivateKey(key));
-}
-
-function pkcs8ToBuffer(key) {
- var der = new asn1.BerWriter();
- writePkcs8(der, key);
- return (der.buffer);
-}
-
-function writePkcs8(der, key) {
- der.startSequence();
-
- if (PrivateKey.isPrivateKey(key)) {
- var sillyInt = Buffer.from([0]);
- der.writeBuffer(sillyInt, asn1.Ber.Integer);
- }
-
- der.startSequence();
- switch (key.type) {
- case 'rsa':
- der.writeOID('1.2.840.113549.1.1.1');
- if (PrivateKey.isPrivateKey(key))
- writePkcs8RSAPrivate(key, der);
- else
- writePkcs8RSAPublic(key, der);
- break;
- case 'dsa':
- der.writeOID('1.2.840.10040.4.1');
- if (PrivateKey.isPrivateKey(key))
- writePkcs8DSAPrivate(key, der);
- else
- writePkcs8DSAPublic(key, der);
- break;
- case 'ecdsa':
- der.writeOID('1.2.840.10045.2.1');
- if (PrivateKey.isPrivateKey(key))
- writePkcs8ECDSAPrivate(key, der);
- else
- writePkcs8ECDSAPublic(key, der);
- break;
- case 'ed25519':
- der.writeOID('1.3.101.112');
- if (PrivateKey.isPrivateKey(key))
- throw (new Error('Ed25519 private keys in pkcs8 ' +
- 'format are not supported'));
- writePkcs8EdDSAPublic(key, der);
- break;
- default:
- throw (new Error('Unsupported key type: ' + key.type));
- }
-
- der.endSequence();
-}
-
-function writePkcs8RSAPrivate(key, der) {
- der.writeNull();
- der.endSequence();
-
- der.startSequence(asn1.Ber.OctetString);
- der.startSequence();
-
- var version = Buffer.from([0]);
- der.writeBuffer(version, asn1.Ber.Integer);
-
- der.writeBuffer(key.part.n.data, asn1.Ber.Integer);
- der.writeBuffer(key.part.e.data, asn1.Ber.Integer);
- der.writeBuffer(key.part.d.data, asn1.Ber.Integer);
- der.writeBuffer(key.part.p.data, asn1.Ber.Integer);
- der.writeBuffer(key.part.q.data, asn1.Ber.Integer);
- if (!key.part.dmodp || !key.part.dmodq)
- utils.addRSAMissing(key);
- der.writeBuffer(key.part.dmodp.data, asn1.Ber.Integer);
- der.writeBuffer(key.part.dmodq.data, asn1.Ber.Integer);
- der.writeBuffer(key.part.iqmp.data, asn1.Ber.Integer);
-
- der.endSequence();
- der.endSequence();
-}
-
-function writePkcs8RSAPublic(key, der) {
- der.writeNull();
- der.endSequence();
-
- der.startSequence(asn1.Ber.BitString);
- der.writeByte(0x00);
-
- der.startSequence();
- der.writeBuffer(key.part.n.data, asn1.Ber.Integer);
- der.writeBuffer(key.part.e.data, asn1.Ber.Integer);
- der.endSequence();
-
- der.endSequence();
-}
-
-function writePkcs8DSAPrivate(key, der) {
- der.startSequence();
- der.writeBuffer(key.part.p.data, asn1.Ber.Integer);
- der.writeBuffer(key.part.q.data, asn1.Ber.Integer);
- der.writeBuffer(key.part.g.data, asn1.Ber.Integer);
- der.endSequence();
-
- der.endSequence();
-
- der.startSequence(asn1.Ber.OctetString);
- der.writeBuffer(key.part.x.data, asn1.Ber.Integer);
- der.endSequence();
-}
-
-function writePkcs8DSAPublic(key, der) {
- der.startSequence();
- der.writeBuffer(key.part.p.data, asn1.Ber.Integer);
- der.writeBuffer(key.part.q.data, asn1.Ber.Integer);
- der.writeBuffer(key.part.g.data, asn1.Ber.Integer);
- der.endSequence();
- der.endSequence();
-
- der.startSequence(asn1.Ber.BitString);
- der.writeByte(0x00);
- der.writeBuffer(key.part.y.data, asn1.Ber.Integer);
- der.endSequence();
-}
-
-function writeECDSACurve(key, der) {
- var curve = algs.curves[key.curve];
- if (curve.pkcs8oid) {
- /* This one has a name in pkcs#8, so just write the oid */
- der.writeOID(curve.pkcs8oid);
-
- } else {
- // ECParameters sequence
- der.startSequence();
-
- var version = Buffer.from([1]);
- der.writeBuffer(version, asn1.Ber.Integer);
-
- // FieldID sequence
- der.startSequence();
- der.writeOID('1.2.840.10045.1.1'); // prime-field
- der.writeBuffer(curve.p, asn1.Ber.Integer);
- der.endSequence();
-
- // Curve sequence
- der.startSequence();
- var a = curve.p;
- if (a[0] === 0x0)
- a = a.slice(1);
- der.writeBuffer(a, asn1.Ber.OctetString);
- der.writeBuffer(curve.b, asn1.Ber.OctetString);
- der.writeBuffer(curve.s, asn1.Ber.BitString);
- der.endSequence();
-
- der.writeBuffer(curve.G, asn1.Ber.OctetString);
- der.writeBuffer(curve.n, asn1.Ber.Integer);
- var h = curve.h;
- if (!h) {
- h = Buffer.from([1]);
- }
- der.writeBuffer(h, asn1.Ber.Integer);
-
- // ECParameters
- der.endSequence();
- }
-}
-
-function writePkcs8ECDSAPublic(key, der) {
- writeECDSACurve(key, der);
- der.endSequence();
-
- var Q = utils.ecNormalize(key.part.Q.data, true);
- der.writeBuffer(Q, asn1.Ber.BitString);
-}
-
-function writePkcs8ECDSAPrivate(key, der) {
- writeECDSACurve(key, der);
- der.endSequence();
-
- der.startSequence(asn1.Ber.OctetString);
- der.startSequence();
-
- var version = Buffer.from([1]);
- der.writeBuffer(version, asn1.Ber.Integer);
-
- der.writeBuffer(key.part.d.data, asn1.Ber.OctetString);
-
- der.startSequence(0xa1);
- var Q = utils.ecNormalize(key.part.Q.data, true);
- der.writeBuffer(Q, asn1.Ber.BitString);
- der.endSequence();
-
- der.endSequence();
- der.endSequence();
-}
-
-function writePkcs8EdDSAPublic(key, der) {
- der.endSequence();
-
- utils.writeBitString(der, key.part.A.data);
-}
-
-function writePkcs8EdDSAPrivate(key, der) {
- der.endSequence();
-
- var k = utils.mpNormalize(key.part.k.data, true);
- der.startSequence(asn1.Ber.OctetString);
- der.writeBuffer(k, asn1.Ber.OctetString);
- der.endSequence();
-}
diff --git a/deps/npm/node_modules/sshpk/lib/formats/putty.js b/deps/npm/node_modules/sshpk/lib/formats/putty.js
deleted file mode 100644
index 344419f980e..00000000000
--- a/deps/npm/node_modules/sshpk/lib/formats/putty.js
+++ /dev/null
@@ -1,99 +0,0 @@
-// Copyright 2018 Joyent, Inc.
-
-module.exports = {
- read: read,
- write: write
-};
-
-var assert = require('assert-plus');
-var Buffer = require('safer-buffer').Buffer;
-var rfc4253 = require('./rfc4253');
-var Key = require('../key');
-
-var errors = require('../errors');
-
-function read(buf, options) {
- var lines = buf.toString('ascii').split(/[\r\n]+/);
- var found = false;
- var parts;
- var si = 0;
- while (si < lines.length) {
- parts = splitHeader(lines[si++]);
- if (parts &&
- parts[0].toLowerCase() === 'putty-user-key-file-2') {
- found = true;
- break;
- }
- }
- if (!found) {
- throw (new Error('No PuTTY format first line found'));
- }
- var alg = parts[1];
-
- parts = splitHeader(lines[si++]);
- assert.equal(parts[0].toLowerCase(), 'encryption');
-
- parts = splitHeader(lines[si++]);
- assert.equal(parts[0].toLowerCase(), 'comment');
- var comment = parts[1];
-
- parts = splitHeader(lines[si++]);
- assert.equal(parts[0].toLowerCase(), 'public-lines');
- var publicLines = parseInt(parts[1], 10);
- if (!isFinite(publicLines) || publicLines < 0 ||
- publicLines > lines.length) {
- throw (new Error('Invalid public-lines count'));
- }
-
- var publicBuf = Buffer.from(
- lines.slice(si, si + publicLines).join(''), 'base64');
- var keyType = rfc4253.algToKeyType(alg);
- var key = rfc4253.read(publicBuf);
- if (key.type !== keyType) {
- throw (new Error('Outer key algorithm mismatch'));
- }
- key.comment = comment;
- return (key);
-}
-
-function splitHeader(line) {
- var idx = line.indexOf(':');
- if (idx === -1)
- return (null);
- var header = line.slice(0, idx);
- ++idx;
- while (line[idx] === ' ')
- ++idx;
- var rest = line.slice(idx);
- return ([header, rest]);
-}
-
-function write(key, options) {
- assert.object(key);
- if (!Key.isKey(key))
- throw (new Error('Must be a public key'));
-
- var alg = rfc4253.keyTypeToAlg(key);
- var buf = rfc4253.write(key);
- var comment = key.comment || '';
-
- var b64 = buf.toString('base64');
- var lines = wrap(b64, 64);
-
- lines.unshift('Public-Lines: ' + lines.length);
- lines.unshift('Comment: ' + comment);
- lines.unshift('Encryption: none');
- lines.unshift('PuTTY-User-Key-File-2: ' + alg);
-
- return (Buffer.from(lines.join('\n') + '\n'));
-}
-
-function wrap(txt, len) {
- var lines = [];
- var pos = 0;
- while (pos < txt.length) {
- lines.push(txt.slice(pos, pos + 64));
- pos += 64;
- }
- return (lines);
-}
diff --git a/deps/npm/node_modules/sshpk/lib/formats/rfc4253.js b/deps/npm/node_modules/sshpk/lib/formats/rfc4253.js
deleted file mode 100644
index 52fddcb6b65..00000000000
--- a/deps/npm/node_modules/sshpk/lib/formats/rfc4253.js
+++ /dev/null
@@ -1,166 +0,0 @@
-// Copyright 2015 Joyent, Inc.
-
-module.exports = {
- read: read.bind(undefined, false, undefined),
- readType: read.bind(undefined, false),
- write: write,
- /* semi-private api, used by sshpk-agent */
- readPartial: read.bind(undefined, true),
-
- /* shared with ssh format */
- readInternal: read,
- keyTypeToAlg: keyTypeToAlg,
- algToKeyType: algToKeyType
-};
-
-var assert = require('assert-plus');
-var Buffer = require('safer-buffer').Buffer;
-var algs = require('../algs');
-var utils = require('../utils');
-var Key = require('../key');
-var PrivateKey = require('../private-key');
-var SSHBuffer = require('../ssh-buffer');
-
-function algToKeyType(alg) {
- assert.string(alg);
- if (alg === 'ssh-dss')
- return ('dsa');
- else if (alg === 'ssh-rsa')
- return ('rsa');
- else if (alg === 'ssh-ed25519')
- return ('ed25519');
- else if (alg === 'ssh-curve25519')
- return ('curve25519');
- else if (alg.match(/^ecdsa-sha2-/))
- return ('ecdsa');
- else
- throw (new Error('Unknown algorithm ' + alg));
-}
-
-function keyTypeToAlg(key) {
- assert.object(key);
- if (key.type === 'dsa')
- return ('ssh-dss');
- else if (key.type === 'rsa')
- return ('ssh-rsa');
- else if (key.type === 'ed25519')
- return ('ssh-ed25519');
- else if (key.type === 'curve25519')
- return ('ssh-curve25519');
- else if (key.type === 'ecdsa')
- return ('ecdsa-sha2-' + key.part.curve.data.toString());
- else
- throw (new Error('Unknown key type ' + key.type));
-}
-
-function read(partial, type, buf, options) {
- if (typeof (buf) === 'string')
- buf = Buffer.from(buf);
- assert.buffer(buf, 'buf');
-
- var key = {};
-
- var parts = key.parts = [];
- var sshbuf = new SSHBuffer({buffer: buf});
-
- var alg = sshbuf.readString();
- assert.ok(!sshbuf.atEnd(), 'key must have at least one part');
-
- key.type = algToKeyType(alg);
-
- var partCount = algs.info[key.type].parts.length;
- if (type && type === 'private')
- partCount = algs.privInfo[key.type].parts.length;
-
- while (!sshbuf.atEnd() && parts.length < partCount)
- parts.push(sshbuf.readPart());
- while (!partial && !sshbuf.atEnd())
- parts.push(sshbuf.readPart());
-
- assert.ok(parts.length >= 1,
- 'key must have at least one part');
- assert.ok(partial || sshbuf.atEnd(),
- 'leftover bytes at end of key');
-
- var Constructor = Key;
- var algInfo = algs.info[key.type];
- if (type === 'private' || algInfo.parts.length !== parts.length) {
- algInfo = algs.privInfo[key.type];
- Constructor = PrivateKey;
- }
- assert.strictEqual(algInfo.parts.length, parts.length);
-
- if (key.type === 'ecdsa') {
- var res = /^ecdsa-sha2-(.+)$/.exec(alg);
- assert.ok(res !== null);
- assert.strictEqual(res[1], parts[0].data.toString());
- }
-
- var normalized = true;
- for (var i = 0; i < algInfo.parts.length; ++i) {
- var p = parts[i];
- p.name = algInfo.parts[i];
- /*
- * OpenSSH stores ed25519 "private" keys as seed + public key
- * concat'd together (k followed by A). We want to keep them
- * separate for other formats that don't do this.
- */
- if (key.type === 'ed25519' && p.name === 'k')
- p.data = p.data.slice(0, 32);
-
- if (p.name !== 'curve' && algInfo.normalize !== false) {
- var nd;
- if (key.type === 'ed25519') {
- nd = utils.zeroPadToLength(p.data, 32);
- } else {
- nd = utils.mpNormalize(p.data);
- }
- if (nd.toString('binary') !==
- p.data.toString('binary')) {
- p.data = nd;
- normalized = false;
- }
- }
- }
-
- if (normalized)
- key._rfc4253Cache = sshbuf.toBuffer();
-
- if (partial && typeof (partial) === 'object') {
- partial.remainder = sshbuf.remainder();
- partial.consumed = sshbuf._offset;
- }
-
- return (new Constructor(key));
-}
-
-function write(key, options) {
- assert.object(key);
-
- var alg = keyTypeToAlg(key);
- var i;
-
- var algInfo = algs.info[key.type];
- if (PrivateKey.isPrivateKey(key))
- algInfo = algs.privInfo[key.type];
- var parts = algInfo.parts;
-
- var buf = new SSHBuffer({});
-
- buf.writeString(alg);
-
- for (i = 0; i < parts.length; ++i) {
- var data = key.part[parts[i]].data;
- if (algInfo.normalize !== false) {
- if (key.type === 'ed25519')
- data = utils.zeroPadToLength(data, 32);
- else
- data = utils.mpNormalize(data);
- }
- if (key.type === 'ed25519' && parts[i] === 'k')
- data = Buffer.concat([data, key.part.A.data]);
- buf.writeBuffer(data);
- }
-
- return (buf.toBuffer());
-}
diff --git a/deps/npm/node_modules/sshpk/lib/formats/ssh-private.js b/deps/npm/node_modules/sshpk/lib/formats/ssh-private.js
deleted file mode 100644
index 5e7eed887a7..00000000000
--- a/deps/npm/node_modules/sshpk/lib/formats/ssh-private.js
+++ /dev/null
@@ -1,262 +0,0 @@
-// Copyright 2015 Joyent, Inc.
-
-module.exports = {
- read: read,
- readSSHPrivate: readSSHPrivate,
- write: write
-};
-
-var assert = require('assert-plus');
-var asn1 = require('asn1');
-var Buffer = require('safer-buffer').Buffer;
-var algs = require('../algs');
-var utils = require('../utils');
-var crypto = require('crypto');
-
-var Key = require('../key');
-var PrivateKey = require('../private-key');
-var pem = require('./pem');
-var rfc4253 = require('./rfc4253');
-var SSHBuffer = require('../ssh-buffer');
-var errors = require('../errors');
-
-var bcrypt;
-
-function read(buf, options) {
- return (pem.read(buf, options));
-}
-
-var MAGIC = 'openssh-key-v1';
-
-function readSSHPrivate(type, buf, options) {
- buf = new SSHBuffer({buffer: buf});
-
- var magic = buf.readCString();
- assert.strictEqual(magic, MAGIC, 'bad magic string');
-
- var cipher = buf.readString();
- var kdf = buf.readString();
- var kdfOpts = buf.readBuffer();
-
- var nkeys = buf.readInt();
- if (nkeys !== 1) {
- throw (new Error('OpenSSH-format key file contains ' +
- 'multiple keys: this is unsupported.'));
- }
-
- var pubKey = buf.readBuffer();
-
- if (type === 'public') {
- assert.ok(buf.atEnd(), 'excess bytes left after key');
- return (rfc4253.read(pubKey));
- }
-
- var privKeyBlob = buf.readBuffer();
- assert.ok(buf.atEnd(), 'excess bytes left after key');
-
- var kdfOptsBuf = new SSHBuffer({ buffer: kdfOpts });
- switch (kdf) {
- case 'none':
- if (cipher !== 'none') {
- throw (new Error('OpenSSH-format key uses KDF "none" ' +
- 'but specifies a cipher other than "none"'));
- }
- break;
- case 'bcrypt':
- var salt = kdfOptsBuf.readBuffer();
- var rounds = kdfOptsBuf.readInt();
- var cinf = utils.opensshCipherInfo(cipher);
- if (bcrypt === undefined) {
- bcrypt = require('bcrypt-pbkdf');
- }
-
- if (typeof (options.passphrase) === 'string') {
- options.passphrase = Buffer.from(options.passphrase,
- 'utf-8');
- }
- if (!Buffer.isBuffer(options.passphrase)) {
- throw (new errors.KeyEncryptedError(
- options.filename, 'OpenSSH'));
- }
-
- var pass = new Uint8Array(options.passphrase);
- var salti = new Uint8Array(salt);
- /* Use the pbkdf to derive both the key and the IV. */
- var out = new Uint8Array(cinf.keySize + cinf.blockSize);
- var res = bcrypt.pbkdf(pass, pass.length, salti, salti.length,
- out, out.length, rounds);
- if (res !== 0) {
- throw (new Error('bcrypt_pbkdf function returned ' +
- 'failure, parameters invalid'));
- }
- out = Buffer.from(out);
- var ckey = out.slice(0, cinf.keySize);
- var iv = out.slice(cinf.keySize, cinf.keySize + cinf.blockSize);
- var cipherStream = crypto.createDecipheriv(cinf.opensslName,
- ckey, iv);
- cipherStream.setAutoPadding(false);
- var chunk, chunks = [];
- cipherStream.once('error', function (e) {
- if (e.toString().indexOf('bad decrypt') !== -1) {
- throw (new Error('Incorrect passphrase ' +
- 'supplied, could not decrypt key'));
- }
- throw (e);
- });
- cipherStream.write(privKeyBlob);
- cipherStream.end();
- while ((chunk = cipherStream.read()) !== null)
- chunks.push(chunk);
- privKeyBlob = Buffer.concat(chunks);
- break;
- default:
- throw (new Error(
- 'OpenSSH-format key uses unknown KDF "' + kdf + '"'));
- }
-
- buf = new SSHBuffer({buffer: privKeyBlob});
-
- var checkInt1 = buf.readInt();
- var checkInt2 = buf.readInt();
- if (checkInt1 !== checkInt2) {
- throw (new Error('Incorrect passphrase supplied, could not ' +
- 'decrypt key'));
- }
-
- var ret = {};
- var key = rfc4253.readInternal(ret, 'private', buf.remainder());
-
- buf.skip(ret.consumed);
-
- var comment = buf.readString();
- key.comment = comment;
-
- return (key);
-}
-
-function write(key, options) {
- var pubKey;
- if (PrivateKey.isPrivateKey(key))
- pubKey = key.toPublic();
- else
- pubKey = key;
-
- var cipher = 'none';
- var kdf = 'none';
- var kdfopts = Buffer.alloc(0);
- var cinf = { blockSize: 8 };
- var passphrase;
- if (options !== undefined) {
- passphrase = options.passphrase;
- if (typeof (passphrase) === 'string')
- passphrase = Buffer.from(passphrase, 'utf-8');
- if (passphrase !== undefined) {
- assert.buffer(passphrase, 'options.passphrase');
- assert.optionalString(options.cipher, 'options.cipher');
- cipher = options.cipher;
- if (cipher === undefined)
- cipher = 'aes128-ctr';
- cinf = utils.opensshCipherInfo(cipher);
- kdf = 'bcrypt';
- }
- }
-
- var privBuf;
- if (PrivateKey.isPrivateKey(key)) {
- privBuf = new SSHBuffer({});
- var checkInt = crypto.randomBytes(4).readUInt32BE(0);
- privBuf.writeInt(checkInt);
- privBuf.writeInt(checkInt);
- privBuf.write(key.toBuffer('rfc4253'));
- privBuf.writeString(key.comment || '');
-
- var n = 1;
- while (privBuf._offset % cinf.blockSize !== 0)
- privBuf.writeChar(n++);
- privBuf = privBuf.toBuffer();
- }
-
- switch (kdf) {
- case 'none':
- break;
- case 'bcrypt':
- var salt = crypto.randomBytes(16);
- var rounds = 16;
- var kdfssh = new SSHBuffer({});
- kdfssh.writeBuffer(salt);
- kdfssh.writeInt(rounds);
- kdfopts = kdfssh.toBuffer();
-
- if (bcrypt === undefined) {
- bcrypt = require('bcrypt-pbkdf');
- }
- var pass = new Uint8Array(passphrase);
- var salti = new Uint8Array(salt);
- /* Use the pbkdf to derive both the key and the IV. */
- var out = new Uint8Array(cinf.keySize + cinf.blockSize);
- var res = bcrypt.pbkdf(pass, pass.length, salti, salti.length,
- out, out.length, rounds);
- if (res !== 0) {
- throw (new Error('bcrypt_pbkdf function returned ' +
- 'failure, parameters invalid'));
- }
- out = Buffer.from(out);
- var ckey = out.slice(0, cinf.keySize);
- var iv = out.slice(cinf.keySize, cinf.keySize + cinf.blockSize);
-
- var cipherStream = crypto.createCipheriv(cinf.opensslName,
- ckey, iv);
- cipherStream.setAutoPadding(false);
- var chunk, chunks = [];
- cipherStream.once('error', function (e) {
- throw (e);
- });
- cipherStream.write(privBuf);
- cipherStream.end();
- while ((chunk = cipherStream.read()) !== null)
- chunks.push(chunk);
- privBuf = Buffer.concat(chunks);
- break;
- default:
- throw (new Error('Unsupported kdf ' + kdf));
- }
-
- var buf = new SSHBuffer({});
-
- buf.writeCString(MAGIC);
- buf.writeString(cipher); /* cipher */
- buf.writeString(kdf); /* kdf */
- buf.writeBuffer(kdfopts); /* kdfoptions */
-
- buf.writeInt(1); /* nkeys */
- buf.writeBuffer(pubKey.toBuffer('rfc4253'));
-
- if (privBuf)
- buf.writeBuffer(privBuf);
-
- buf = buf.toBuffer();
-
- var header;
- if (PrivateKey.isPrivateKey(key))
- header = 'OPENSSH PRIVATE KEY';
- else
- header = 'OPENSSH PUBLIC KEY';
-
- var tmp = buf.toString('base64');
- var len = tmp.length + (tmp.length / 70) +
- 18 + 16 + header.length*2 + 10;
- buf = Buffer.alloc(len);
- var o = 0;
- o += buf.write('-----BEGIN ' + header + '-----\n', o);
- for (var i = 0; i < tmp.length; ) {
- var limit = i + 70;
- if (limit > tmp.length)
- limit = tmp.length;
- o += buf.write(tmp.slice(i, limit), o);
- buf[o++] = 10;
- i = limit;
- }
- o += buf.write('-----END ' + header + '-----\n', o);
-
- return (buf.slice(0, o));
-}
diff --git a/deps/npm/node_modules/sshpk/lib/formats/ssh.js b/deps/npm/node_modules/sshpk/lib/formats/ssh.js
deleted file mode 100644
index c8e9c931058..00000000000
--- a/deps/npm/node_modules/sshpk/lib/formats/ssh.js
+++ /dev/null
@@ -1,115 +0,0 @@
-// Copyright 2015 Joyent, Inc.
-
-module.exports = {
- read: read,
- write: write
-};
-
-var assert = require('assert-plus');
-var Buffer = require('safer-buffer').Buffer;
-var rfc4253 = require('./rfc4253');
-var utils = require('../utils');
-var Key = require('../key');
-var PrivateKey = require('../private-key');
-
-var sshpriv = require('./ssh-private');
-
-/*JSSTYLED*/
-var SSHKEY_RE = /^([a-z0-9-]+)[ \t]+([a-zA-Z0-9+\/]+[=]*)([ \t]+([^ \t][^\n]*[\n]*)?)?$/;
-/*JSSTYLED*/
-var SSHKEY_RE2 = /^([a-z0-9-]+)[ \t\n]+([a-zA-Z0-9+\/][a-zA-Z0-9+\/ \t\n=]*)([^a-zA-Z0-9+\/ \t\n=].*)?$/;
-
-function read(buf, options) {
- if (typeof (buf) !== 'string') {
- assert.buffer(buf, 'buf');
- buf = buf.toString('ascii');
- }
-
- var trimmed = buf.trim().replace(/[\\\r]/g, '');
- var m = trimmed.match(SSHKEY_RE);
- if (!m)
- m = trimmed.match(SSHKEY_RE2);
- assert.ok(m, 'key must match regex');
-
- var type = rfc4253.algToKeyType(m[1]);
- var kbuf = Buffer.from(m[2], 'base64');
-
- /*
- * This is a bit tricky. If we managed to parse the key and locate the
- * key comment with the regex, then do a non-partial read and assert
- * that we have consumed all bytes. If we couldn't locate the key
- * comment, though, there may be whitespace shenanigans going on that
- * have conjoined the comment to the rest of the key. We do a partial
- * read in this case to try to make the best out of a sorry situation.
- */
- var key;
- var ret = {};
- if (m[4]) {
- try {
- key = rfc4253.read(kbuf);
-
- } catch (e) {
- m = trimmed.match(SSHKEY_RE2);
- assert.ok(m, 'key must match regex');
- kbuf = Buffer.from(m[2], 'base64');
- key = rfc4253.readInternal(ret, 'public', kbuf);
- }
- } else {
- key = rfc4253.readInternal(ret, 'public', kbuf);
- }
-
- assert.strictEqual(type, key.type);
-
- if (m[4] && m[4].length > 0) {
- key.comment = m[4];
-
- } else if (ret.consumed) {
- /*
- * Now the magic: trying to recover the key comment when it's
- * gotten conjoined to the key or otherwise shenanigan'd.
- *
- * Work out how much base64 we used, then drop all non-base64
- * chars from the beginning up to this point in the the string.
- * Then offset in this and try to make up for missing = chars.
- */
- var data = m[2] + (m[3] ? m[3] : '');
- var realOffset = Math.ceil(ret.consumed / 3) * 4;
- data = data.slice(0, realOffset - 2). /*JSSTYLED*/
- replace(/[^a-zA-Z0-9+\/=]/g, '') +
- data.slice(realOffset - 2);
-
- var padding = ret.consumed % 3;
- if (padding > 0 &&
- data.slice(realOffset - 1, realOffset) !== '=')
- realOffset--;
- while (data.slice(realOffset, realOffset + 1) === '=')
- realOffset++;
-
- /* Finally, grab what we think is the comment & clean it up. */
- var trailer = data.slice(realOffset);
- trailer = trailer.replace(/[\r\n]/g, ' ').
- replace(/^\s+/, '');
- if (trailer.match(/^[a-zA-Z0-9]/))
- key.comment = trailer;
- }
-
- return (key);
-}
-
-function write(key, options) {
- assert.object(key);
- if (!Key.isKey(key))
- throw (new Error('Must be a public key'));
-
- var parts = [];
- var alg = rfc4253.keyTypeToAlg(key);
- parts.push(alg);
-
- var buf = rfc4253.write(key);
- parts.push(buf.toString('base64'));
-
- if (key.comment)
- parts.push(key.comment);
-
- return (Buffer.from(parts.join(' ')));
-}
diff --git a/deps/npm/node_modules/sshpk/lib/formats/x509-pem.js b/deps/npm/node_modules/sshpk/lib/formats/x509-pem.js
deleted file mode 100644
index 3155ef0b3a1..00000000000
--- a/deps/npm/node_modules/sshpk/lib/formats/x509-pem.js
+++ /dev/null
@@ -1,88 +0,0 @@
-// Copyright 2016 Joyent, Inc.
-
-var x509 = require('./x509');
-
-module.exports = {
- read: read,
- verify: x509.verify,
- sign: x509.sign,
- write: write
-};
-
-var assert = require('assert-plus');
-var asn1 = require('asn1');
-var Buffer = require('safer-buffer').Buffer;
-var algs = require('../algs');
-var utils = require('../utils');
-var Key = require('../key');
-var PrivateKey = require('../private-key');
-var pem = require('./pem');
-var Identity = require('../identity');
-var Signature = require('../signature');
-var Certificate = require('../certificate');
-
-function read(buf, options) {
- if (typeof (buf) !== 'string') {
- assert.buffer(buf, 'buf');
- buf = buf.toString('ascii');
- }
-
- var lines = buf.trim().split(/[\r\n]+/g);
-
- var m;
- var si = -1;
- while (!m && si < lines.length) {
- m = lines[++si].match(/*JSSTYLED*/
- /[-]+[ ]*BEGIN CERTIFICATE[ ]*[-]+/);
- }
- assert.ok(m, 'invalid PEM header');
-
- var m2;
- var ei = lines.length;
- while (!m2 && ei > 0) {
- m2 = lines[--ei].match(/*JSSTYLED*/
- /[-]+[ ]*END CERTIFICATE[ ]*[-]+/);
- }
- assert.ok(m2, 'invalid PEM footer');
-
- lines = lines.slice(si, ei + 1);
-
- var headers = {};
- while (true) {
- lines = lines.slice(1);
- m = lines[0].match(/*JSSTYLED*/
- /^([A-Za-z0-9-]+): (.+)$/);
- if (!m)
- break;
- headers[m[1].toLowerCase()] = m[2];
- }
-
- /* Chop off the first and last lines */
- lines = lines.slice(0, -1).join('');
- buf = Buffer.from(lines, 'base64');
-
- return (x509.read(buf, options));
-}
-
-function write(cert, options) {
- var dbuf = x509.write(cert, options);
-
- var header = 'CERTIFICATE';
- var tmp = dbuf.toString('base64');
- var len = tmp.length + (tmp.length / 64) +
- 18 + 16 + header.length*2 + 10;
- var buf = Buffer.alloc(len);
- var o = 0;
- o += buf.write('-----BEGIN ' + header + '-----\n', o);
- for (var i = 0; i < tmp.length; ) {
- var limit = i + 64;
- if (limit > tmp.length)
- limit = tmp.length;
- o += buf.write(tmp.slice(i, limit), o);
- buf[o++] = 10;
- i = limit;
- }
- o += buf.write('-----END ' + header + '-----\n', o);
-
- return (buf.slice(0, o));
-}
diff --git a/deps/npm/node_modules/sshpk/lib/formats/x509.js b/deps/npm/node_modules/sshpk/lib/formats/x509.js
deleted file mode 100644
index 0144c444913..00000000000
--- a/deps/npm/node_modules/sshpk/lib/formats/x509.js
+++ /dev/null
@@ -1,752 +0,0 @@
-// Copyright 2017 Joyent, Inc.
-
-module.exports = {
- read: read,
- verify: verify,
- sign: sign,
- signAsync: signAsync,
- write: write
-};
-
-var assert = require('assert-plus');
-var asn1 = require('asn1');
-var Buffer = require('safer-buffer').Buffer;
-var algs = require('../algs');
-var utils = require('../utils');
-var Key = require('../key');
-var PrivateKey = require('../private-key');
-var pem = require('./pem');
-var Identity = require('../identity');
-var Signature = require('../signature');
-var Certificate = require('../certificate');
-var pkcs8 = require('./pkcs8');
-
-/*
- * This file is based on RFC5280 (X.509).
- */
-
-/* Helper to read in a single mpint */
-function readMPInt(der, nm) {
- assert.strictEqual(der.peek(), asn1.Ber.Integer,
- nm + ' is not an Integer');
- return (utils.mpNormalize(der.readString(asn1.Ber.Integer, true)));
-}
-
-function verify(cert, key) {
- var sig = cert.signatures.x509;
- assert.object(sig, 'x509 signature');
-
- var algParts = sig.algo.split('-');
- if (algParts[0] !== key.type)
- return (false);
-
- var blob = sig.cache;
- if (blob === undefined) {
- var der = new asn1.BerWriter();
- writeTBSCert(cert, der);
- blob = der.buffer;
- }
-
- var verifier = key.createVerify(algParts[1]);
- verifier.write(blob);
- return (verifier.verify(sig.signature));
-}
-
-function Local(i) {
- return (asn1.Ber.Context | asn1.Ber.Constructor | i);
-}
-
-function Context(i) {
- return (asn1.Ber.Context | i);
-}
-
-var SIGN_ALGS = {
- 'rsa-md5': '1.2.840.113549.1.1.4',
- 'rsa-sha1': '1.2.840.113549.1.1.5',
- 'rsa-sha256': '1.2.840.113549.1.1.11',
- 'rsa-sha384': '1.2.840.113549.1.1.12',
- 'rsa-sha512': '1.2.840.113549.1.1.13',
- 'dsa-sha1': '1.2.840.10040.4.3',
- 'dsa-sha256': '2.16.840.1.101.3.4.3.2',
- 'ecdsa-sha1': '1.2.840.10045.4.1',
- 'ecdsa-sha256': '1.2.840.10045.4.3.2',
- 'ecdsa-sha384': '1.2.840.10045.4.3.3',
- 'ecdsa-sha512': '1.2.840.10045.4.3.4',
- 'ed25519-sha512': '1.3.101.112'
-};
-Object.keys(SIGN_ALGS).forEach(function (k) {
- SIGN_ALGS[SIGN_ALGS[k]] = k;
-});
-SIGN_ALGS['1.3.14.3.2.3'] = 'rsa-md5';
-SIGN_ALGS['1.3.14.3.2.29'] = 'rsa-sha1';
-
-var EXTS = {
- 'issuerKeyId': '2.5.29.35',
- 'altName': '2.5.29.17',
- 'basicConstraints': '2.5.29.19',
- 'keyUsage': '2.5.29.15',
- 'extKeyUsage': '2.5.29.37'
-};
-
-function read(buf, options) {
- if (typeof (buf) === 'string') {
- buf = Buffer.from(buf, 'binary');
- }
- assert.buffer(buf, 'buf');
-
- var der = new asn1.BerReader(buf);
-
- der.readSequence();
- if (Math.abs(der.length - der.remain) > 1) {
- throw (new Error('DER sequence does not contain whole byte ' +
- 'stream'));
- }
-
- var tbsStart = der.offset;
- der.readSequence();
- var sigOffset = der.offset + der.length;
- var tbsEnd = sigOffset;
-
- if (der.peek() === Local(0)) {
- der.readSequence(Local(0));
- var version = der.readInt();
- assert.ok(version <= 3,
- 'only x.509 versions up to v3 supported');
- }
-
- var cert = {};
- cert.signatures = {};
- var sig = (cert.signatures.x509 = {});
- sig.extras = {};
-
- cert.serial = readMPInt(der, 'serial');
-
- der.readSequence();
- var after = der.offset + der.length;
- var certAlgOid = der.readOID();
- var certAlg = SIGN_ALGS[certAlgOid];
- if (certAlg === undefined)
- throw (new Error('unknown signature algorithm ' + certAlgOid));
-
- der._offset = after;
- cert.issuer = Identity.parseAsn1(der);
-
- der.readSequence();
- cert.validFrom = readDate(der);
- cert.validUntil = readDate(der);
-
- cert.subjects = [Identity.parseAsn1(der)];
-
- der.readSequence();
- after = der.offset + der.length;
- cert.subjectKey = pkcs8.readPkcs8(undefined, 'public', der);
- der._offset = after;
-
- /* issuerUniqueID */
- if (der.peek() === Local(1)) {
- der.readSequence(Local(1));
- sig.extras.issuerUniqueID =
- buf.slice(der.offset, der.offset + der.length);
- der._offset += der.length;
- }
-
- /* subjectUniqueID */
- if (der.peek() === Local(2)) {
- der.readSequence(Local(2));
- sig.extras.subjectUniqueID =
- buf.slice(der.offset, der.offset + der.length);
- der._offset += der.length;
- }
-
- /* extensions */
- if (der.peek() === Local(3)) {
- der.readSequence(Local(3));
- var extEnd = der.offset + der.length;
- der.readSequence();
-
- while (der.offset < extEnd)
- readExtension(cert, buf, der);
-
- assert.strictEqual(der.offset, extEnd);
- }
-
- assert.strictEqual(der.offset, sigOffset);
-
- der.readSequence();
- after = der.offset + der.length;
- var sigAlgOid = der.readOID();
- var sigAlg = SIGN_ALGS[sigAlgOid];
- if (sigAlg === undefined)
- throw (new Error('unknown signature algorithm ' + sigAlgOid));
- der._offset = after;
-
- var sigData = der.readString(asn1.Ber.BitString, true);
- if (sigData[0] === 0)
- sigData = sigData.slice(1);
- var algParts = sigAlg.split('-');
-
- sig.signature = Signature.parse(sigData, algParts[0], 'asn1');
- sig.signature.hashAlgorithm = algParts[1];
- sig.algo = sigAlg;
- sig.cache = buf.slice(tbsStart, tbsEnd);
-
- return (new Certificate(cert));
-}
-
-function readDate(der) {
- if (der.peek() === asn1.Ber.UTCTime) {
- return (utcTimeToDate(der.readString(asn1.Ber.UTCTime)));
- } else if (der.peek() === asn1.Ber.GeneralizedTime) {
- return (gTimeToDate(der.readString(asn1.Ber.GeneralizedTime)));
- } else {
- throw (new Error('Unsupported date format'));
- }
-}
-
-function writeDate(der, date) {
- if (date.getUTCFullYear() >= 2050 || date.getUTCFullYear() < 1950) {
- der.writeString(dateToGTime(date), asn1.Ber.GeneralizedTime);
- } else {
- der.writeString(dateToUTCTime(date), asn1.Ber.UTCTime);
- }
-}
-
-/* RFC5280, section 4.2.1.6 (GeneralName type) */
-var ALTNAME = {
- OtherName: Local(0),
- RFC822Name: Context(1),
- DNSName: Context(2),
- X400Address: Local(3),
- DirectoryName: Local(4),
- EDIPartyName: Local(5),
- URI: Context(6),
- IPAddress: Context(7),
- OID: Context(8)
-};
-
-/* RFC5280, section 4.2.1.12 (KeyPurposeId) */
-var EXTPURPOSE = {
- 'serverAuth': '1.3.6.1.5.5.7.3.1',
- 'clientAuth': '1.3.6.1.5.5.7.3.2',
- 'codeSigning': '1.3.6.1.5.5.7.3.3',
-
- /* See https://github.com/joyent/oid-docs/blob/master/root.md */
- 'joyentDocker': '1.3.6.1.4.1.38678.1.4.1',
- 'joyentCmon': '1.3.6.1.4.1.38678.1.4.2'
-};
-var EXTPURPOSE_REV = {};
-Object.keys(EXTPURPOSE).forEach(function (k) {
- EXTPURPOSE_REV[EXTPURPOSE[k]] = k;
-});
-
-var KEYUSEBITS = [
- 'signature', 'identity', 'keyEncryption',
- 'encryption', 'keyAgreement', 'ca', 'crl'
-];
-
-function readExtension(cert, buf, der) {
- der.readSequence();
- var after = der.offset + der.length;
- var extId = der.readOID();
- var id;
- var sig = cert.signatures.x509;
- if (!sig.extras.exts)
- sig.extras.exts = [];
-
- var critical;
- if (der.peek() === asn1.Ber.Boolean)
- critical = der.readBoolean();
-
- switch (extId) {
- case (EXTS.basicConstraints):
- der.readSequence(asn1.Ber.OctetString);
- der.readSequence();
- var bcEnd = der.offset + der.length;
- var ca = false;
- if (der.peek() === asn1.Ber.Boolean)
- ca = der.readBoolean();
- if (cert.purposes === undefined)
- cert.purposes = [];
- if (ca === true)
- cert.purposes.push('ca');
- var bc = { oid: extId, critical: critical };
- if (der.offset < bcEnd && der.peek() === asn1.Ber.Integer)
- bc.pathLen = der.readInt();
- sig.extras.exts.push(bc);
- break;
- case (EXTS.extKeyUsage):
- der.readSequence(asn1.Ber.OctetString);
- der.readSequence();
- if (cert.purposes === undefined)
- cert.purposes = [];
- var ekEnd = der.offset + der.length;
- while (der.offset < ekEnd) {
- var oid = der.readOID();
- cert.purposes.push(EXTPURPOSE_REV[oid] || oid);
- }
- /*
- * This is a bit of a hack: in the case where we have a cert
- * that's only allowed to do serverAuth or clientAuth (and not
- * the other), we want to make sure all our Subjects are of
- * the right type. But we already parsed our Subjects and
- * decided if they were hosts or users earlier (since it appears
- * first in the cert).
- *
- * So we go through and mutate them into the right kind here if
- * it doesn't match. This might not be hugely beneficial, as it
- * seems that single-purpose certs are not often seen in the
- * wild.
- */
- if (cert.purposes.indexOf('serverAuth') !== -1 &&
- cert.purposes.indexOf('clientAuth') === -1) {
- cert.subjects.forEach(function (ide) {
- if (ide.type !== 'host') {
- ide.type = 'host';
- ide.hostname = ide.uid ||
- ide.email ||
- ide.components[0].value;
- }
- });
- } else if (cert.purposes.indexOf('clientAuth') !== -1 &&
- cert.purposes.indexOf('serverAuth') === -1) {
- cert.subjects.forEach(function (ide) {
- if (ide.type !== 'user') {
- ide.type = 'user';
- ide.uid = ide.hostname ||
- ide.email ||
- ide.components[0].value;
- }
- });
- }
- sig.extras.exts.push({ oid: extId, critical: critical });
- break;
- case (EXTS.keyUsage):
- der.readSequence(asn1.Ber.OctetString);
- var bits = der.readString(asn1.Ber.BitString, true);
- var setBits = readBitField(bits, KEYUSEBITS);
- setBits.forEach(function (bit) {
- if (cert.purposes === undefined)
- cert.purposes = [];
- if (cert.purposes.indexOf(bit) === -1)
- cert.purposes.push(bit);
- });
- sig.extras.exts.push({ oid: extId, critical: critical,
- bits: bits });
- break;
- case (EXTS.altName):
- der.readSequence(asn1.Ber.OctetString);
- der.readSequence();
- var aeEnd = der.offset + der.length;
- while (der.offset < aeEnd) {
- switch (der.peek()) {
- case ALTNAME.OtherName:
- case ALTNAME.EDIPartyName:
- der.readSequence();
- der._offset += der.length;
- break;
- case ALTNAME.OID:
- der.readOID(ALTNAME.OID);
- break;
- case ALTNAME.RFC822Name:
- /* RFC822 specifies email addresses */
- var email = der.readString(ALTNAME.RFC822Name);
- id = Identity.forEmail(email);
- if (!cert.subjects[0].equals(id))
- cert.subjects.push(id);
- break;
- case ALTNAME.DirectoryName:
- der.readSequence(ALTNAME.DirectoryName);
- id = Identity.parseAsn1(der);
- if (!cert.subjects[0].equals(id))
- cert.subjects.push(id);
- break;
- case ALTNAME.DNSName:
- var host = der.readString(
- ALTNAME.DNSName);
- id = Identity.forHost(host);
- if (!cert.subjects[0].equals(id))
- cert.subjects.push(id);
- break;
- default:
- der.readString(der.peek());
- break;
- }
- }
- sig.extras.exts.push({ oid: extId, critical: critical });
- break;
- default:
- sig.extras.exts.push({
- oid: extId,
- critical: critical,
- data: der.readString(asn1.Ber.OctetString, true)
- });
- break;
- }
-
- der._offset = after;
-}
-
-var UTCTIME_RE =
- /^([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})?Z$/;
-function utcTimeToDate(t) {
- var m = t.match(UTCTIME_RE);
- assert.ok(m, 'timestamps must be in UTC');
- var d = new Date();
-
- var thisYear = d.getUTCFullYear();
- var century = Math.floor(thisYear / 100) * 100;
-
- var year = parseInt(m[1], 10);
- if (thisYear % 100 < 50 && year >= 60)
- year += (century - 1);
- else
- year += century;
- d.setUTCFullYear(year, parseInt(m[2], 10) - 1, parseInt(m[3], 10));
- d.setUTCHours(parseInt(m[4], 10), parseInt(m[5], 10));
- if (m[6] && m[6].length > 0)
- d.setUTCSeconds(parseInt(m[6], 10));
- return (d);
-}
-
-var GTIME_RE =
- /^([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})?Z$/;
-function gTimeToDate(t) {
- var m = t.match(GTIME_RE);
- assert.ok(m);
- var d = new Date();
-
- d.setUTCFullYear(parseInt(m[1], 10), parseInt(m[2], 10) - 1,
- parseInt(m[3], 10));
- d.setUTCHours(parseInt(m[4], 10), parseInt(m[5], 10));
- if (m[6] && m[6].length > 0)
- d.setUTCSeconds(parseInt(m[6], 10));
- return (d);
-}
-
-function zeroPad(n, m) {
- if (m === undefined)
- m = 2;
- var s = '' + n;
- while (s.length < m)
- s = '0' + s;
- return (s);
-}
-
-function dateToUTCTime(d) {
- var s = '';
- s += zeroPad(d.getUTCFullYear() % 100);
- s += zeroPad(d.getUTCMonth() + 1);
- s += zeroPad(d.getUTCDate());
- s += zeroPad(d.getUTCHours());
- s += zeroPad(d.getUTCMinutes());
- s += zeroPad(d.getUTCSeconds());
- s += 'Z';
- return (s);
-}
-
-function dateToGTime(d) {
- var s = '';
- s += zeroPad(d.getUTCFullYear(), 4);
- s += zeroPad(d.getUTCMonth() + 1);
- s += zeroPad(d.getUTCDate());
- s += zeroPad(d.getUTCHours());
- s += zeroPad(d.getUTCMinutes());
- s += zeroPad(d.getUTCSeconds());
- s += 'Z';
- return (s);
-}
-
-function sign(cert, key) {
- if (cert.signatures.x509 === undefined)
- cert.signatures.x509 = {};
- var sig = cert.signatures.x509;
-
- sig.algo = key.type + '-' + key.defaultHashAlgorithm();
- if (SIGN_ALGS[sig.algo] === undefined)
- return (false);
-
- var der = new asn1.BerWriter();
- writeTBSCert(cert, der);
- var blob = der.buffer;
- sig.cache = blob;
-
- var signer = key.createSign();
- signer.write(blob);
- cert.signatures.x509.signature = signer.sign();
-
- return (true);
-}
-
-function signAsync(cert, signer, done) {
- if (cert.signatures.x509 === undefined)
- cert.signatures.x509 = {};
- var sig = cert.signatures.x509;
-
- var der = new asn1.BerWriter();
- writeTBSCert(cert, der);
- var blob = der.buffer;
- sig.cache = blob;
-
- signer(blob, function (err, signature) {
- if (err) {
- done(err);
- return;
- }
- sig.algo = signature.type + '-' + signature.hashAlgorithm;
- if (SIGN_ALGS[sig.algo] === undefined) {
- done(new Error('Invalid signing algorithm "' +
- sig.algo + '"'));
- return;
- }
- sig.signature = signature;
- done();
- });
-}
-
-function write(cert, options) {
- var sig = cert.signatures.x509;
- assert.object(sig, 'x509 signature');
-
- var der = new asn1.BerWriter();
- der.startSequence();
- if (sig.cache) {
- der._ensure(sig.cache.length);
- sig.cache.copy(der._buf, der._offset);
- der._offset += sig.cache.length;
- } else {
- writeTBSCert(cert, der);
- }
-
- der.startSequence();
- der.writeOID(SIGN_ALGS[sig.algo]);
- if (sig.algo.match(/^rsa-/))
- der.writeNull();
- der.endSequence();
-
- var sigData = sig.signature.toBuffer('asn1');
- var data = Buffer.alloc(sigData.length + 1);
- data[0] = 0;
- sigData.copy(data, 1);
- der.writeBuffer(data, asn1.Ber.BitString);
- der.endSequence();
-
- return (der.buffer);
-}
-
-function writeTBSCert(cert, der) {
- var sig = cert.signatures.x509;
- assert.object(sig, 'x509 signature');
-
- der.startSequence();
-
- der.startSequence(Local(0));
- der.writeInt(2);
- der.endSequence();
-
- der.writeBuffer(utils.mpNormalize(cert.serial), asn1.Ber.Integer);
-
- der.startSequence();
- der.writeOID(SIGN_ALGS[sig.algo]);
- if (sig.algo.match(/^rsa-/))
- der.writeNull();
- der.endSequence();
-
- cert.issuer.toAsn1(der);
-
- der.startSequence();
- writeDate(der, cert.validFrom);
- writeDate(der, cert.validUntil);
- der.endSequence();
-
- var subject = cert.subjects[0];
- var altNames = cert.subjects.slice(1);
- subject.toAsn1(der);
-
- pkcs8.writePkcs8(der, cert.subjectKey);
-
- if (sig.extras && sig.extras.issuerUniqueID) {
- der.writeBuffer(sig.extras.issuerUniqueID, Local(1));
- }
-
- if (sig.extras && sig.extras.subjectUniqueID) {
- der.writeBuffer(sig.extras.subjectUniqueID, Local(2));
- }
-
- if (altNames.length > 0 || subject.type === 'host' ||
- (cert.purposes !== undefined && cert.purposes.length > 0) ||
- (sig.extras && sig.extras.exts)) {
- der.startSequence(Local(3));
- der.startSequence();
-
- var exts = [];
- if (cert.purposes !== undefined && cert.purposes.length > 0) {
- exts.push({
- oid: EXTS.basicConstraints,
- critical: true
- });
- exts.push({
- oid: EXTS.keyUsage,
- critical: true
- });
- exts.push({
- oid: EXTS.extKeyUsage,
- critical: true
- });
- }
- exts.push({ oid: EXTS.altName });
- if (sig.extras && sig.extras.exts)
- exts = sig.extras.exts;
-
- for (var i = 0; i < exts.length; ++i) {
- der.startSequence();
- der.writeOID(exts[i].oid);
-
- if (exts[i].critical !== undefined)
- der.writeBoolean(exts[i].critical);
-
- if (exts[i].oid === EXTS.altName) {
- der.startSequence(asn1.Ber.OctetString);
- der.startSequence();
- if (subject.type === 'host') {
- der.writeString(subject.hostname,
- Context(2));
- }
- for (var j = 0; j < altNames.length; ++j) {
- if (altNames[j].type === 'host') {
- der.writeString(
- altNames[j].hostname,
- ALTNAME.DNSName);
- } else if (altNames[j].type ===
- 'email') {
- der.writeString(
- altNames[j].email,
- ALTNAME.RFC822Name);
- } else {
- /*
- * Encode anything else as a
- * DN style name for now.
- */
- der.startSequence(
- ALTNAME.DirectoryName);
- altNames[j].toAsn1(der);
- der.endSequence();
- }
- }
- der.endSequence();
- der.endSequence();
- } else if (exts[i].oid === EXTS.basicConstraints) {
- der.startSequence(asn1.Ber.OctetString);
- der.startSequence();
- var ca = (cert.purposes.indexOf('ca') !== -1);
- var pathLen = exts[i].pathLen;
- der.writeBoolean(ca);
- if (pathLen !== undefined)
- der.writeInt(pathLen);
- der.endSequence();
- der.endSequence();
- } else if (exts[i].oid === EXTS.extKeyUsage) {
- der.startSequence(asn1.Ber.OctetString);
- der.startSequence();
- cert.purposes.forEach(function (purpose) {
- if (purpose === 'ca')
- return;
- if (KEYUSEBITS.indexOf(purpose) !== -1)
- return;
- var oid = purpose;
- if (EXTPURPOSE[purpose] !== undefined)
- oid = EXTPURPOSE[purpose];
- der.writeOID(oid);
- });
- der.endSequence();
- der.endSequence();
- } else if (exts[i].oid === EXTS.keyUsage) {
- der.startSequence(asn1.Ber.OctetString);
- /*
- * If we parsed this certificate from a byte
- * stream (i.e. we didn't generate it in sshpk)
- * then we'll have a ".bits" property on the
- * ext with the original raw byte contents.
- *
- * If we have this, use it here instead of
- * regenerating it. This guarantees we output
- * the same data we parsed, so signatures still
- * validate.
- */
- if (exts[i].bits !== undefined) {
- der.writeBuffer(exts[i].bits,
- asn1.Ber.BitString);
- } else {
- var bits = writeBitField(cert.purposes,
- KEYUSEBITS);
- der.writeBuffer(bits,
- asn1.Ber.BitString);
- }
- der.endSequence();
- } else {
- der.writeBuffer(exts[i].data,
- asn1.Ber.OctetString);
- }
-
- der.endSequence();
- }
-
- der.endSequence();
- der.endSequence();
- }
-
- der.endSequence();
-}
-
-/*
- * Reads an ASN.1 BER bitfield out of the Buffer produced by doing
- * `BerReader#readString(asn1.Ber.BitString)`. That function gives us the raw
- * contents of the BitString tag, which is a count of unused bits followed by
- * the bits as a right-padded byte string.
- *
- * `bits` is the Buffer, `bitIndex` should contain an array of string names
- * for the bits in the string, ordered starting with bit #0 in the ASN.1 spec.
- *
- * Returns an array of Strings, the names of the bits that were set to 1.
- */
-function readBitField(bits, bitIndex) {
- var bitLen = 8 * (bits.length - 1) - bits[0];
- var setBits = {};
- for (var i = 0; i < bitLen; ++i) {
- var byteN = 1 + Math.floor(i / 8);
- var bit = 7 - (i % 8);
- var mask = 1 << bit;
- var bitVal = ((bits[byteN] & mask) !== 0);
- var name = bitIndex[i];
- if (bitVal && typeof (name) === 'string') {
- setBits[name] = true;
- }
- }
- return (Object.keys(setBits));
-}
-
-/*
- * `setBits` is an array of strings, containing the names for each bit that
- * sould be set to 1. `bitIndex` is same as in `readBitField()`.
- *
- * Returns a Buffer, ready to be written out with `BerWriter#writeString()`.
- */
-function writeBitField(setBits, bitIndex) {
- var bitLen = bitIndex.length;
- var blen = Math.ceil(bitLen / 8);
- var unused = blen * 8 - bitLen;
- var bits = Buffer.alloc(1 + blen); // zero-filled
- bits[0] = unused;
- for (var i = 0; i < bitLen; ++i) {
- var byteN = 1 + Math.floor(i / 8);
- var bit = 7 - (i % 8);
- var mask = 1 << bit;
- var name = bitIndex[i];
- if (name === undefined)
- continue;
- var bitVal = (setBits.indexOf(name) !== -1);
- if (bitVal) {
- bits[byteN] |= mask;
- }
- }
- return (bits);
-}
diff --git a/deps/npm/node_modules/sshpk/lib/identity.js b/deps/npm/node_modules/sshpk/lib/identity.js
deleted file mode 100644
index 7d75b6671b6..00000000000
--- a/deps/npm/node_modules/sshpk/lib/identity.js
+++ /dev/null
@@ -1,373 +0,0 @@
-// Copyright 2017 Joyent, Inc.
-
-module.exports = Identity;
-
-var assert = require('assert-plus');
-var algs = require('./algs');
-var crypto = require('crypto');
-var Fingerprint = require('./fingerprint');
-var Signature = require('./signature');
-var errs = require('./errors');
-var util = require('util');
-var utils = require('./utils');
-var asn1 = require('asn1');
-var Buffer = require('safer-buffer').Buffer;
-
-/*JSSTYLED*/
-var DNS_NAME_RE = /^([*]|[a-z0-9][a-z0-9\-]{0,62})(?:\.([*]|[a-z0-9][a-z0-9\-]{0,62}))*$/i;
-
-var oids = {};
-oids.cn = '2.5.4.3';
-oids.o = '2.5.4.10';
-oids.ou = '2.5.4.11';
-oids.l = '2.5.4.7';
-oids.s = '2.5.4.8';
-oids.c = '2.5.4.6';
-oids.sn = '2.5.4.4';
-oids.postalCode = '2.5.4.17';
-oids.serialNumber = '2.5.4.5';
-oids.street = '2.5.4.9';
-oids.x500UniqueIdentifier = '2.5.4.45';
-oids.role = '2.5.4.72';
-oids.telephoneNumber = '2.5.4.20';
-oids.description = '2.5.4.13';
-oids.dc = '0.9.2342.19200300.100.1.25';
-oids.uid = '0.9.2342.19200300.100.1.1';
-oids.mail = '0.9.2342.19200300.100.1.3';
-oids.title = '2.5.4.12';
-oids.gn = '2.5.4.42';
-oids.initials = '2.5.4.43';
-oids.pseudonym = '2.5.4.65';
-oids.emailAddress = '1.2.840.113549.1.9.1';
-
-var unoids = {};
-Object.keys(oids).forEach(function (k) {
- unoids[oids[k]] = k;
-});
-
-function Identity(opts) {
- var self = this;
- assert.object(opts, 'options');
- assert.arrayOfObject(opts.components, 'options.components');
- this.components = opts.components;
- this.componentLookup = {};
- this.components.forEach(function (c) {
- if (c.name && !c.oid)
- c.oid = oids[c.name];
- if (c.oid && !c.name)
- c.name = unoids[c.oid];
- if (self.componentLookup[c.name] === undefined)
- self.componentLookup[c.name] = [];
- self.componentLookup[c.name].push(c);
- });
- if (this.componentLookup.cn && this.componentLookup.cn.length > 0) {
- this.cn = this.componentLookup.cn[0].value;
- }
- assert.optionalString(opts.type, 'options.type');
- if (opts.type === undefined) {
- if (this.components.length === 1 &&
- this.componentLookup.cn &&
- this.componentLookup.cn.length === 1 &&
- this.componentLookup.cn[0].value.match(DNS_NAME_RE)) {
- this.type = 'host';
- this.hostname = this.componentLookup.cn[0].value;
-
- } else if (this.componentLookup.dc &&
- this.components.length === this.componentLookup.dc.length) {
- this.type = 'host';
- this.hostname = this.componentLookup.dc.map(
- function (c) {
- return (c.value);
- }).join('.');
-
- } else if (this.componentLookup.uid &&
- this.components.length ===
- this.componentLookup.uid.length) {
- this.type = 'user';
- this.uid = this.componentLookup.uid[0].value;
-
- } else if (this.componentLookup.cn &&
- this.componentLookup.cn.length === 1 &&
- this.componentLookup.cn[0].value.match(DNS_NAME_RE)) {
- this.type = 'host';
- this.hostname = this.componentLookup.cn[0].value;
-
- } else if (this.componentLookup.uid &&
- this.componentLookup.uid.length === 1) {
- this.type = 'user';
- this.uid = this.componentLookup.uid[0].value;
-
- } else if (this.componentLookup.mail &&
- this.componentLookup.mail.length === 1) {
- this.type = 'email';
- this.email = this.componentLookup.mail[0].value;
-
- } else if (this.componentLookup.cn &&
- this.componentLookup.cn.length === 1) {
- this.type = 'user';
- this.uid = this.componentLookup.cn[0].value;
-
- } else {
- this.type = 'unknown';
- }
- } else {
- this.type = opts.type;
- if (this.type === 'host')
- this.hostname = opts.hostname;
- else if (this.type === 'user')
- this.uid = opts.uid;
- else if (this.type === 'email')
- this.email = opts.email;
- else
- throw (new Error('Unknown type ' + this.type));
- }
-}
-
-Identity.prototype.toString = function () {
- return (this.components.map(function (c) {
- var n = c.name.toUpperCase();
- /*JSSTYLED*/
- n = n.replace(/=/g, '\\=');
- var v = c.value;
- /*JSSTYLED*/
- v = v.replace(/,/g, '\\,');
- return (n + '=' + v);
- }).join(', '));
-};
-
-Identity.prototype.get = function (name, asArray) {
- assert.string(name, 'name');
- var arr = this.componentLookup[name];
- if (arr === undefined || arr.length === 0)
- return (undefined);
- if (!asArray && arr.length > 1)
- throw (new Error('Multiple values for attribute ' + name));
- if (!asArray)
- return (arr[0].value);
- return (arr.map(function (c) {
- return (c.value);
- }));
-};
-
-Identity.prototype.toArray = function (idx) {
- return (this.components.map(function (c) {
- return ({
- name: c.name,
- value: c.value
- });
- }));
-};
-
-/*
- * These are from X.680 -- PrintableString allowed chars are in section 37.4
- * table 8. Spec for IA5Strings is "1,6 + SPACE + DEL" where 1 refers to
- * ISO IR #001 (standard ASCII control characters) and 6 refers to ISO IR #006
- * (the basic ASCII character set).
- */
-/* JSSTYLED */
-var NOT_PRINTABLE = /[^a-zA-Z0-9 '(),+.\/:=?-]/;
-/* JSSTYLED */
-var NOT_IA5 = /[^\x00-\x7f]/;
-
-Identity.prototype.toAsn1 = function (der, tag) {
- der.startSequence(tag);
- this.components.forEach(function (c) {
- der.startSequence(asn1.Ber.Constructor | asn1.Ber.Set);
- der.startSequence();
- der.writeOID(c.oid);
- /*
- * If we fit in a PrintableString, use that. Otherwise use an
- * IA5String or UTF8String.
- *
- * If this identity was parsed from a DN, use the ASN.1 types
- * from the original representation (otherwise this might not
- * be a full match for the original in some validators).
- */
- if (c.asn1type === asn1.Ber.Utf8String ||
- c.value.match(NOT_IA5)) {
- var v = Buffer.from(c.value, 'utf8');
- der.writeBuffer(v, asn1.Ber.Utf8String);
-
- } else if (c.asn1type === asn1.Ber.IA5String ||
- c.value.match(NOT_PRINTABLE)) {
- der.writeString(c.value, asn1.Ber.IA5String);
-
- } else {
- var type = asn1.Ber.PrintableString;
- if (c.asn1type !== undefined)
- type = c.asn1type;
- der.writeString(c.value, type);
- }
- der.endSequence();
- der.endSequence();
- });
- der.endSequence();
-};
-
-function globMatch(a, b) {
- if (a === '**' || b === '**')
- return (true);
- var aParts = a.split('.');
- var bParts = b.split('.');
- if (aParts.length !== bParts.length)
- return (false);
- for (var i = 0; i < aParts.length; ++i) {
- if (aParts[i] === '*' || bParts[i] === '*')
- continue;
- if (aParts[i] !== bParts[i])
- return (false);
- }
- return (true);
-}
-
-Identity.prototype.equals = function (other) {
- if (!Identity.isIdentity(other, [1, 0]))
- return (false);
- if (other.components.length !== this.components.length)
- return (false);
- for (var i = 0; i < this.components.length; ++i) {
- if (this.components[i].oid !== other.components[i].oid)
- return (false);
- if (!globMatch(this.components[i].value,
- other.components[i].value)) {
- return (false);
- }
- }
- return (true);
-};
-
-Identity.forHost = function (hostname) {
- assert.string(hostname, 'hostname');
- return (new Identity({
- type: 'host',
- hostname: hostname,
- components: [ { name: 'cn', value: hostname } ]
- }));
-};
-
-Identity.forUser = function (uid) {
- assert.string(uid, 'uid');
- return (new Identity({
- type: 'user',
- uid: uid,
- components: [ { name: 'uid', value: uid } ]
- }));
-};
-
-Identity.forEmail = function (email) {
- assert.string(email, 'email');
- return (new Identity({
- type: 'email',
- email: email,
- components: [ { name: 'mail', value: email } ]
- }));
-};
-
-Identity.parseDN = function (dn) {
- assert.string(dn, 'dn');
- var parts = [''];
- var idx = 0;
- var rem = dn;
- while (rem.length > 0) {
- var m;
- /*JSSTYLED*/
- if ((m = /^,/.exec(rem)) !== null) {
- parts[++idx] = '';
- rem = rem.slice(m[0].length);
- /*JSSTYLED*/
- } else if ((m = /^\\,/.exec(rem)) !== null) {
- parts[idx] += ',';
- rem = rem.slice(m[0].length);
- /*JSSTYLED*/
- } else if ((m = /^\\./.exec(rem)) !== null) {
- parts[idx] += m[0];
- rem = rem.slice(m[0].length);
- /*JSSTYLED*/
- } else if ((m = /^[^\\,]+/.exec(rem)) !== null) {
- parts[idx] += m[0];
- rem = rem.slice(m[0].length);
- } else {
- throw (new Error('Failed to parse DN'));
- }
- }
- var cmps = parts.map(function (c) {
- c = c.trim();
- var eqPos = c.indexOf('=');
- while (eqPos > 0 && c.charAt(eqPos - 1) === '\\')
- eqPos = c.indexOf('=', eqPos + 1);
- if (eqPos === -1) {
- throw (new Error('Failed to parse DN'));
- }
- /*JSSTYLED*/
- var name = c.slice(0, eqPos).toLowerCase().replace(/\\=/g, '=');
- var value = c.slice(eqPos + 1);
- return ({ name: name, value: value });
- });
- return (new Identity({ components: cmps }));
-};
-
-Identity.fromArray = function (components) {
- assert.arrayOfObject(components, 'components');
- components.forEach(function (cmp) {
- assert.object(cmp, 'component');
- assert.string(cmp.name, 'component.name');
- if (!Buffer.isBuffer(cmp.value) &&
- !(typeof (cmp.value) === 'string')) {
- throw (new Error('Invalid component value'));
- }
- });
- return (new Identity({ components: components }));
-};
-
-Identity.parseAsn1 = function (der, top) {
- var components = [];
- der.readSequence(top);
- var end = der.offset + der.length;
- while (der.offset < end) {
- der.readSequence(asn1.Ber.Constructor | asn1.Ber.Set);
- var after = der.offset + der.length;
- der.readSequence();
- var oid = der.readOID();
- var type = der.peek();
- var value;
- switch (type) {
- case asn1.Ber.PrintableString:
- case asn1.Ber.IA5String:
- case asn1.Ber.OctetString:
- case asn1.Ber.T61String:
- value = der.readString(type);
- break;
- case asn1.Ber.Utf8String:
- value = der.readString(type, true);
- value = value.toString('utf8');
- break;
- case asn1.Ber.CharacterString:
- case asn1.Ber.BMPString:
- value = der.readString(type, true);
- value = value.toString('utf16le');
- break;
- default:
- throw (new Error('Unknown asn1 type ' + type));
- }
- components.push({ oid: oid, asn1type: type, value: value });
- der._offset = after;
- }
- der._offset = end;
- return (new Identity({
- components: components
- }));
-};
-
-Identity.isIdentity = function (obj, ver) {
- return (utils.isCompatible(obj, Identity, ver));
-};
-
-/*
- * API versions for Identity:
- * [1,0] -- initial ver
- */
-Identity.prototype._sshpkApiVersion = [1, 0];
-
-Identity._oldVersionDetect = function (obj) {
- return ([1, 0]);
-};
diff --git a/deps/npm/node_modules/sshpk/lib/index.js b/deps/npm/node_modules/sshpk/lib/index.js
deleted file mode 100644
index f76db7918dc..00000000000
--- a/deps/npm/node_modules/sshpk/lib/index.js
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright 2015 Joyent, Inc.
-
-var Key = require('./key');
-var Fingerprint = require('./fingerprint');
-var Signature = require('./signature');
-var PrivateKey = require('./private-key');
-var Certificate = require('./certificate');
-var Identity = require('./identity');
-var errs = require('./errors');
-
-module.exports = {
- /* top-level classes */
- Key: Key,
- parseKey: Key.parse,
- Fingerprint: Fingerprint,
- parseFingerprint: Fingerprint.parse,
- Signature: Signature,
- parseSignature: Signature.parse,
- PrivateKey: PrivateKey,
- parsePrivateKey: PrivateKey.parse,
- generatePrivateKey: PrivateKey.generate,
- Certificate: Certificate,
- parseCertificate: Certificate.parse,
- createSelfSignedCertificate: Certificate.createSelfSigned,
- createCertificate: Certificate.create,
- Identity: Identity,
- identityFromDN: Identity.parseDN,
- identityForHost: Identity.forHost,
- identityForUser: Identity.forUser,
- identityForEmail: Identity.forEmail,
- identityFromArray: Identity.fromArray,
-
- /* errors */
- FingerprintFormatError: errs.FingerprintFormatError,
- InvalidAlgorithmError: errs.InvalidAlgorithmError,
- KeyParseError: errs.KeyParseError,
- SignatureParseError: errs.SignatureParseError,
- KeyEncryptedError: errs.KeyEncryptedError,
- CertificateParseError: errs.CertificateParseError
-};
diff --git a/deps/npm/node_modules/sshpk/lib/key.js b/deps/npm/node_modules/sshpk/lib/key.js
deleted file mode 100644
index 706f83400d5..00000000000
--- a/deps/npm/node_modules/sshpk/lib/key.js
+++ /dev/null
@@ -1,294 +0,0 @@
-// Copyright 2018 Joyent, Inc.
-
-module.exports = Key;
-
-var assert = require('assert-plus');
-var algs = require('./algs');
-var crypto = require('crypto');
-var Fingerprint = require('./fingerprint');
-var Signature = require('./signature');
-var DiffieHellman = require('./dhe').DiffieHellman;
-var errs = require('./errors');
-var utils = require('./utils');
-var PrivateKey = require('./private-key');
-var edCompat;
-
-try {
- edCompat = require('./ed-compat');
-} catch (e) {
- /* Just continue through, and bail out if we try to use it. */
-}
-
-var InvalidAlgorithmError = errs.InvalidAlgorithmError;
-var KeyParseError = errs.KeyParseError;
-
-var formats = {};
-formats['auto'] = require('./formats/auto');
-formats['pem'] = require('./formats/pem');
-formats['pkcs1'] = require('./formats/pkcs1');
-formats['pkcs8'] = require('./formats/pkcs8');
-formats['rfc4253'] = require('./formats/rfc4253');
-formats['ssh'] = require('./formats/ssh');
-formats['ssh-private'] = require('./formats/ssh-private');
-formats['openssh'] = formats['ssh-private'];
-formats['dnssec'] = require('./formats/dnssec');
-formats['putty'] = require('./formats/putty');
-formats['ppk'] = formats['putty'];
-
-function Key(opts) {
- assert.object(opts, 'options');
- assert.arrayOfObject(opts.parts, 'options.parts');
- assert.string(opts.type, 'options.type');
- assert.optionalString(opts.comment, 'options.comment');
-
- var algInfo = algs.info[opts.type];
- if (typeof (algInfo) !== 'object')
- throw (new InvalidAlgorithmError(opts.type));
-
- var partLookup = {};
- for (var i = 0; i < opts.parts.length; ++i) {
- var part = opts.parts[i];
- partLookup[part.name] = part;
- }
-
- this.type = opts.type;
- this.parts = opts.parts;
- this.part = partLookup;
- this.comment = undefined;
- this.source = opts.source;
-
- /* for speeding up hashing/fingerprint operations */
- this._rfc4253Cache = opts._rfc4253Cache;
- this._hashCache = {};
-
- var sz;
- this.curve = undefined;
- if (this.type === 'ecdsa') {
- var curve = this.part.curve.data.toString();
- this.curve = curve;
- sz = algs.curves[curve].size;
- } else if (this.type === 'ed25519' || this.type === 'curve25519') {
- sz = 256;
- this.curve = 'curve25519';
- } else {
- var szPart = this.part[algInfo.sizePart];
- sz = szPart.data.length;
- sz = sz * 8 - utils.countZeros(szPart.data);
- }
- this.size = sz;
-}
-
-Key.formats = formats;
-
-Key.prototype.toBuffer = function (format, options) {
- if (format === undefined)
- format = 'ssh';
- assert.string(format, 'format');
- assert.object(formats[format], 'formats[format]');
- assert.optionalObject(options, 'options');
-
- if (format === 'rfc4253') {
- if (this._rfc4253Cache === undefined)
- this._rfc4253Cache = formats['rfc4253'].write(this);
- return (this._rfc4253Cache);
- }
-
- return (formats[format].write(this, options));
-};
-
-Key.prototype.toString = function (format, options) {
- return (this.toBuffer(format, options).toString());
-};
-
-Key.prototype.hash = function (algo, type) {
- assert.string(algo, 'algorithm');
- assert.optionalString(type, 'type');
- if (type === undefined)
- type = 'ssh';
- algo = algo.toLowerCase();
- if (algs.hashAlgs[algo] === undefined)
- throw (new InvalidAlgorithmError(algo));
-
- var cacheKey = algo + '||' + type;
- if (this._hashCache[cacheKey])
- return (this._hashCache[cacheKey]);
-
- var buf;
- if (type === 'ssh') {
- buf = this.toBuffer('rfc4253');
- } else if (type === 'spki') {
- buf = formats.pkcs8.pkcs8ToBuffer(this);
- } else {
- throw (new Error('Hash type ' + type + ' not supported'));
- }
- var hash = crypto.createHash(algo).update(buf).digest();
- this._hashCache[cacheKey] = hash;
- return (hash);
-};
-
-Key.prototype.fingerprint = function (algo, type) {
- if (algo === undefined)
- algo = 'sha256';
- if (type === undefined)
- type = 'ssh';
- assert.string(algo, 'algorithm');
- assert.string(type, 'type');
- var opts = {
- type: 'key',
- hash: this.hash(algo, type),
- algorithm: algo,
- hashType: type
- };
- return (new Fingerprint(opts));
-};
-
-Key.prototype.defaultHashAlgorithm = function () {
- var hashAlgo = 'sha1';
- if (this.type === 'rsa')
- hashAlgo = 'sha256';
- if (this.type === 'dsa' && this.size > 1024)
- hashAlgo = 'sha256';
- if (this.type === 'ed25519')
- hashAlgo = 'sha512';
- if (this.type === 'ecdsa') {
- if (this.size <= 256)
- hashAlgo = 'sha256';
- else if (this.size <= 384)
- hashAlgo = 'sha384';
- else
- hashAlgo = 'sha512';
- }
- return (hashAlgo);
-};
-
-Key.prototype.createVerify = function (hashAlgo) {
- if (hashAlgo === undefined)
- hashAlgo = this.defaultHashAlgorithm();
- assert.string(hashAlgo, 'hash algorithm');
-
- /* ED25519 is not supported by OpenSSL, use a javascript impl. */
- if (this.type === 'ed25519' && edCompat !== undefined)
- return (new edCompat.Verifier(this, hashAlgo));
- if (this.type === 'curve25519')
- throw (new Error('Curve25519 keys are not suitable for ' +
- 'signing or verification'));
-
- var v, nm, err;
- try {
- nm = hashAlgo.toUpperCase();
- v = crypto.createVerify(nm);
- } catch (e) {
- err = e;
- }
- if (v === undefined || (err instanceof Error &&
- err.message.match(/Unknown message digest/))) {
- nm = 'RSA-';
- nm += hashAlgo.toUpperCase();
- v = crypto.createVerify(nm);
- }
- assert.ok(v, 'failed to create verifier');
- var oldVerify = v.verify.bind(v);
- var key = this.toBuffer('pkcs8');
- var curve = this.curve;
- var self = this;
- v.verify = function (signature, fmt) {
- if (Signature.isSignature(signature, [2, 0])) {
- if (signature.type !== self.type)
- return (false);
- if (signature.hashAlgorithm &&
- signature.hashAlgorithm !== hashAlgo)
- return (false);
- if (signature.curve && self.type === 'ecdsa' &&
- signature.curve !== curve)
- return (false);
- return (oldVerify(key, signature.toBuffer('asn1')));
-
- } else if (typeof (signature) === 'string' ||
- Buffer.isBuffer(signature)) {
- return (oldVerify(key, signature, fmt));
-
- /*
- * Avoid doing this on valid arguments, walking the prototype
- * chain can be quite slow.
- */
- } else if (Signature.isSignature(signature, [1, 0])) {
- throw (new Error('signature was created by too old ' +
- 'a version of sshpk and cannot be verified'));
-
- } else {
- throw (new TypeError('signature must be a string, ' +
- 'Buffer, or Signature object'));
- }
- };
- return (v);
-};
-
-Key.prototype.createDiffieHellman = function () {
- if (this.type === 'rsa')
- throw (new Error('RSA keys do not support Diffie-Hellman'));
-
- return (new DiffieHellman(this));
-};
-Key.prototype.createDH = Key.prototype.createDiffieHellman;
-
-Key.parse = function (data, format, options) {
- if (typeof (data) !== 'string')
- assert.buffer(data, 'data');
- if (format === undefined)
- format = 'auto';
- assert.string(format, 'format');
- if (typeof (options) === 'string')
- options = { filename: options };
- assert.optionalObject(options, 'options');
- if (options === undefined)
- options = {};
- assert.optionalString(options.filename, 'options.filename');
- if (options.filename === undefined)
- options.filename = '(unnamed)';
-
- assert.object(formats[format], 'formats[format]');
-
- try {
- var k = formats[format].read(data, options);
- if (k instanceof PrivateKey)
- k = k.toPublic();
- if (!k.comment)
- k.comment = options.filename;
- return (k);
- } catch (e) {
- if (e.name === 'KeyEncryptedError')
- throw (e);
- throw (new KeyParseError(options.filename, format, e));
- }
-};
-
-Key.isKey = function (obj, ver) {
- return (utils.isCompatible(obj, Key, ver));
-};
-
-/*
- * API versions for Key:
- * [1,0] -- initial ver, may take Signature for createVerify or may not
- * [1,1] -- added pkcs1, pkcs8 formats
- * [1,2] -- added auto, ssh-private, openssh formats
- * [1,3] -- added defaultHashAlgorithm
- * [1,4] -- added ed support, createDH
- * [1,5] -- first explicitly tagged version
- * [1,6] -- changed ed25519 part names
- * [1,7] -- spki hash types
- */
-Key.prototype._sshpkApiVersion = [1, 7];
-
-Key._oldVersionDetect = function (obj) {
- assert.func(obj.toBuffer);
- assert.func(obj.fingerprint);
- if (obj.createDH)
- return ([1, 4]);
- if (obj.defaultHashAlgorithm)
- return ([1, 3]);
- if (obj.formats['auto'])
- return ([1, 2]);
- if (obj.formats['pkcs1'])
- return ([1, 1]);
- return ([1, 0]);
-};
diff --git a/deps/npm/node_modules/sshpk/lib/private-key.js b/deps/npm/node_modules/sshpk/lib/private-key.js
deleted file mode 100644
index 560083801ec..00000000000
--- a/deps/npm/node_modules/sshpk/lib/private-key.js
+++ /dev/null
@@ -1,246 +0,0 @@
-// Copyright 2017 Joyent, Inc.
-
-module.exports = PrivateKey;
-
-var assert = require('assert-plus');
-var Buffer = require('safer-buffer').Buffer;
-var algs = require('./algs');
-var crypto = require('crypto');
-var Fingerprint = require('./fingerprint');
-var Signature = require('./signature');
-var errs = require('./errors');
-var util = require('util');
-var utils = require('./utils');
-var dhe = require('./dhe');
-var generateECDSA = dhe.generateECDSA;
-var generateED25519 = dhe.generateED25519;
-var edCompat = require('./ed-compat');
-var nacl = require('tweetnacl');
-
-var Key = require('./key');
-
-var InvalidAlgorithmError = errs.InvalidAlgorithmError;
-var KeyParseError = errs.KeyParseError;
-var KeyEncryptedError = errs.KeyEncryptedError;
-
-var formats = {};
-formats['auto'] = require('./formats/auto');
-formats['pem'] = require('./formats/pem');
-formats['pkcs1'] = require('./formats/pkcs1');
-formats['pkcs8'] = require('./formats/pkcs8');
-formats['rfc4253'] = require('./formats/rfc4253');
-formats['ssh-private'] = require('./formats/ssh-private');
-formats['openssh'] = formats['ssh-private'];
-formats['ssh'] = formats['ssh-private'];
-formats['dnssec'] = require('./formats/dnssec');
-
-function PrivateKey(opts) {
- assert.object(opts, 'options');
- Key.call(this, opts);
-
- this._pubCache = undefined;
-}
-util.inherits(PrivateKey, Key);
-
-PrivateKey.formats = formats;
-
-PrivateKey.prototype.toBuffer = function (format, options) {
- if (format === undefined)
- format = 'pkcs1';
- assert.string(format, 'format');
- assert.object(formats[format], 'formats[format]');
- assert.optionalObject(options, 'options');
-
- return (formats[format].write(this, options));
-};
-
-PrivateKey.prototype.hash = function (algo, type) {
- return (this.toPublic().hash(algo, type));
-};
-
-PrivateKey.prototype.fingerprint = function (algo, type) {
- return (this.toPublic().fingerprint(algo, type));
-};
-
-PrivateKey.prototype.toPublic = function () {
- if (this._pubCache)
- return (this._pubCache);
-
- var algInfo = algs.info[this.type];
- var pubParts = [];
- for (var i = 0; i < algInfo.parts.length; ++i) {
- var p = algInfo.parts[i];
- pubParts.push(this.part[p]);
- }
-
- this._pubCache = new Key({
- type: this.type,
- source: this,
- parts: pubParts
- });
- if (this.comment)
- this._pubCache.comment = this.comment;
- return (this._pubCache);
-};
-
-PrivateKey.prototype.derive = function (newType) {
- assert.string(newType, 'type');
- var priv, pub, pair;
-
- if (this.type === 'ed25519' && newType === 'curve25519') {
- priv = this.part.k.data;
- if (priv[0] === 0x00)
- priv = priv.slice(1);
-
- pair = nacl.box.keyPair.fromSecretKey(new Uint8Array(priv));
- pub = Buffer.from(pair.publicKey);
-
- return (new PrivateKey({
- type: 'curve25519',
- parts: [
- { name: 'A', data: utils.mpNormalize(pub) },
- { name: 'k', data: utils.mpNormalize(priv) }
- ]
- }));
- } else if (this.type === 'curve25519' && newType === 'ed25519') {
- priv = this.part.k.data;
- if (priv[0] === 0x00)
- priv = priv.slice(1);
-
- pair = nacl.sign.keyPair.fromSeed(new Uint8Array(priv));
- pub = Buffer.from(pair.publicKey);
-
- return (new PrivateKey({
- type: 'ed25519',
- parts: [
- { name: 'A', data: utils.mpNormalize(pub) },
- { name: 'k', data: utils.mpNormalize(priv) }
- ]
- }));
- }
- throw (new Error('Key derivation not supported from ' + this.type +
- ' to ' + newType));
-};
-
-PrivateKey.prototype.createVerify = function (hashAlgo) {
- return (this.toPublic().createVerify(hashAlgo));
-};
-
-PrivateKey.prototype.createSign = function (hashAlgo) {
- if (hashAlgo === undefined)
- hashAlgo = this.defaultHashAlgorithm();
- assert.string(hashAlgo, 'hash algorithm');
-
- /* ED25519 is not supported by OpenSSL, use a javascript impl. */
- if (this.type === 'ed25519' && edCompat !== undefined)
- return (new edCompat.Signer(this, hashAlgo));
- if (this.type === 'curve25519')
- throw (new Error('Curve25519 keys are not suitable for ' +
- 'signing or verification'));
-
- var v, nm, err;
- try {
- nm = hashAlgo.toUpperCase();
- v = crypto.createSign(nm);
- } catch (e) {
- err = e;
- }
- if (v === undefined || (err instanceof Error &&
- err.message.match(/Unknown message digest/))) {
- nm = 'RSA-';
- nm += hashAlgo.toUpperCase();
- v = crypto.createSign(nm);
- }
- assert.ok(v, 'failed to create verifier');
- var oldSign = v.sign.bind(v);
- var key = this.toBuffer('pkcs1');
- var type = this.type;
- var curve = this.curve;
- v.sign = function () {
- var sig = oldSign(key);
- if (typeof (sig) === 'string')
- sig = Buffer.from(sig, 'binary');
- sig = Signature.parse(sig, type, 'asn1');
- sig.hashAlgorithm = hashAlgo;
- sig.curve = curve;
- return (sig);
- };
- return (v);
-};
-
-PrivateKey.parse = function (data, format, options) {
- if (typeof (data) !== 'string')
- assert.buffer(data, 'data');
- if (format === undefined)
- format = 'auto';
- assert.string(format, 'format');
- if (typeof (options) === 'string')
- options = { filename: options };
- assert.optionalObject(options, 'options');
- if (options === undefined)
- options = {};
- assert.optionalString(options.filename, 'options.filename');
- if (options.filename === undefined)
- options.filename = '(unnamed)';
-
- assert.object(formats[format], 'formats[format]');
-
- try {
- var k = formats[format].read(data, options);
- assert.ok(k instanceof PrivateKey, 'key is not a private key');
- if (!k.comment)
- k.comment = options.filename;
- return (k);
- } catch (e) {
- if (e.name === 'KeyEncryptedError')
- throw (e);
- throw (new KeyParseError(options.filename, format, e));
- }
-};
-
-PrivateKey.isPrivateKey = function (obj, ver) {
- return (utils.isCompatible(obj, PrivateKey, ver));
-};
-
-PrivateKey.generate = function (type, options) {
- if (options === undefined)
- options = {};
- assert.object(options, 'options');
-
- switch (type) {
- case 'ecdsa':
- if (options.curve === undefined)
- options.curve = 'nistp256';
- assert.string(options.curve, 'options.curve');
- return (generateECDSA(options.curve));
- case 'ed25519':
- return (generateED25519());
- default:
- throw (new Error('Key generation not supported with key ' +
- 'type "' + type + '"'));
- }
-};
-
-/*
- * API versions for PrivateKey:
- * [1,0] -- initial ver
- * [1,1] -- added auto, pkcs[18], openssh/ssh-private formats
- * [1,2] -- added defaultHashAlgorithm
- * [1,3] -- added derive, ed, createDH
- * [1,4] -- first tagged version
- * [1,5] -- changed ed25519 part names and format
- * [1,6] -- type arguments for hash() and fingerprint()
- */
-PrivateKey.prototype._sshpkApiVersion = [1, 6];
-
-PrivateKey._oldVersionDetect = function (obj) {
- assert.func(obj.toPublic);
- assert.func(obj.createSign);
- if (obj.derive)
- return ([1, 3]);
- if (obj.defaultHashAlgorithm)
- return ([1, 2]);
- if (obj.formats['auto'])
- return ([1, 1]);
- return ([1, 0]);
-};
diff --git a/deps/npm/node_modules/sshpk/lib/signature.js b/deps/npm/node_modules/sshpk/lib/signature.js
deleted file mode 100644
index aa8fdbb8782..00000000000
--- a/deps/npm/node_modules/sshpk/lib/signature.js
+++ /dev/null
@@ -1,314 +0,0 @@
-// Copyright 2015 Joyent, Inc.
-
-module.exports = Signature;
-
-var assert = require('assert-plus');
-var Buffer = require('safer-buffer').Buffer;
-var algs = require('./algs');
-var crypto = require('crypto');
-var errs = require('./errors');
-var utils = require('./utils');
-var asn1 = require('asn1');
-var SSHBuffer = require('./ssh-buffer');
-
-var InvalidAlgorithmError = errs.InvalidAlgorithmError;
-var SignatureParseError = errs.SignatureParseError;
-
-function Signature(opts) {
- assert.object(opts, 'options');
- assert.arrayOfObject(opts.parts, 'options.parts');
- assert.string(opts.type, 'options.type');
-
- var partLookup = {};
- for (var i = 0; i < opts.parts.length; ++i) {
- var part = opts.parts[i];
- partLookup[part.name] = part;
- }
-
- this.type = opts.type;
- this.hashAlgorithm = opts.hashAlgo;
- this.curve = opts.curve;
- this.parts = opts.parts;
- this.part = partLookup;
-}
-
-Signature.prototype.toBuffer = function (format) {
- if (format === undefined)
- format = 'asn1';
- assert.string(format, 'format');
-
- var buf;
- var stype = 'ssh-' + this.type;
-
- switch (this.type) {
- case 'rsa':
- switch (this.hashAlgorithm) {
- case 'sha256':
- stype = 'rsa-sha2-256';
- break;
- case 'sha512':
- stype = 'rsa-sha2-512';
- break;
- case 'sha1':
- case undefined:
- break;
- default:
- throw (new Error('SSH signature ' +
- 'format does not support hash ' +
- 'algorithm ' + this.hashAlgorithm));
- }
- if (format === 'ssh') {
- buf = new SSHBuffer({});
- buf.writeString(stype);
- buf.writePart(this.part.sig);
- return (buf.toBuffer());
- } else {
- return (this.part.sig.data);
- }
- break;
-
- case 'ed25519':
- if (format === 'ssh') {
- buf = new SSHBuffer({});
- buf.writeString(stype);
- buf.writePart(this.part.sig);
- return (buf.toBuffer());
- } else {
- return (this.part.sig.data);
- }
- break;
-
- case 'dsa':
- case 'ecdsa':
- var r, s;
- if (format === 'asn1') {
- var der = new asn1.BerWriter();
- der.startSequence();
- r = utils.mpNormalize(this.part.r.data);
- s = utils.mpNormalize(this.part.s.data);
- der.writeBuffer(r, asn1.Ber.Integer);
- der.writeBuffer(s, asn1.Ber.Integer);
- der.endSequence();
- return (der.buffer);
- } else if (format === 'ssh' && this.type === 'dsa') {
- buf = new SSHBuffer({});
- buf.writeString('ssh-dss');
- r = this.part.r.data;
- if (r.length > 20 && r[0] === 0x00)
- r = r.slice(1);
- s = this.part.s.data;
- if (s.length > 20 && s[0] === 0x00)
- s = s.slice(1);
- if ((this.hashAlgorithm &&
- this.hashAlgorithm !== 'sha1') ||
- r.length + s.length !== 40) {
- throw (new Error('OpenSSH only supports ' +
- 'DSA signatures with SHA1 hash'));
- }
- buf.writeBuffer(Buffer.concat([r, s]));
- return (buf.toBuffer());
- } else if (format === 'ssh' && this.type === 'ecdsa') {
- var inner = new SSHBuffer({});
- r = this.part.r.data;
- inner.writeBuffer(r);
- inner.writePart(this.part.s);
-
- buf = new SSHBuffer({});
- /* XXX: find a more proper way to do this? */
- var curve;
- if (r[0] === 0x00)
- r = r.slice(1);
- var sz = r.length * 8;
- if (sz === 256)
- curve = 'nistp256';
- else if (sz === 384)
- curve = 'nistp384';
- else if (sz === 528)
- curve = 'nistp521';
- buf.writeString('ecdsa-sha2-' + curve);
- buf.writeBuffer(inner.toBuffer());
- return (buf.toBuffer());
- }
- throw (new Error('Invalid signature format'));
- default:
- throw (new Error('Invalid signature data'));
- }
-};
-
-Signature.prototype.toString = function (format) {
- assert.optionalString(format, 'format');
- return (this.toBuffer(format).toString('base64'));
-};
-
-Signature.parse = function (data, type, format) {
- if (typeof (data) === 'string')
- data = Buffer.from(data, 'base64');
- assert.buffer(data, 'data');
- assert.string(format, 'format');
- assert.string(type, 'type');
-
- var opts = {};
- opts.type = type.toLowerCase();
- opts.parts = [];
-
- try {
- assert.ok(data.length > 0, 'signature must not be empty');
- switch (opts.type) {
- case 'rsa':
- return (parseOneNum(data, type, format, opts));
- case 'ed25519':
- return (parseOneNum(data, type, format, opts));
-
- case 'dsa':
- case 'ecdsa':
- if (format === 'asn1')
- return (parseDSAasn1(data, type, format, opts));
- else if (opts.type === 'dsa')
- return (parseDSA(data, type, format, opts));
- else
- return (parseECDSA(data, type, format, opts));
-
- default:
- throw (new InvalidAlgorithmError(type));
- }
-
- } catch (e) {
- if (e instanceof InvalidAlgorithmError)
- throw (e);
- throw (new SignatureParseError(type, format, e));
- }
-};
-
-function parseOneNum(data, type, format, opts) {
- if (format === 'ssh') {
- try {
- var buf = new SSHBuffer({buffer: data});
- var head = buf.readString();
- } catch (e) {
- /* fall through */
- }
- if (buf !== undefined) {
- var msg = 'SSH signature does not match expected ' +
- 'type (expected ' + type + ', got ' + head + ')';
- switch (head) {
- case 'ssh-rsa':
- assert.strictEqual(type, 'rsa', msg);
- opts.hashAlgo = 'sha1';
- break;
- case 'rsa-sha2-256':
- assert.strictEqual(type, 'rsa', msg);
- opts.hashAlgo = 'sha256';
- break;
- case 'rsa-sha2-512':
- assert.strictEqual(type, 'rsa', msg);
- opts.hashAlgo = 'sha512';
- break;
- case 'ssh-ed25519':
- assert.strictEqual(type, 'ed25519', msg);
- opts.hashAlgo = 'sha512';
- break;
- default:
- throw (new Error('Unknown SSH signature ' +
- 'type: ' + head));
- }
- var sig = buf.readPart();
- assert.ok(buf.atEnd(), 'extra trailing bytes');
- sig.name = 'sig';
- opts.parts.push(sig);
- return (new Signature(opts));
- }
- }
- opts.parts.push({name: 'sig', data: data});
- return (new Signature(opts));
-}
-
-function parseDSAasn1(data, type, format, opts) {
- var der = new asn1.BerReader(data);
- der.readSequence();
- var r = der.readString(asn1.Ber.Integer, true);
- var s = der.readString(asn1.Ber.Integer, true);
-
- opts.parts.push({name: 'r', data: utils.mpNormalize(r)});
- opts.parts.push({name: 's', data: utils.mpNormalize(s)});
-
- return (new Signature(opts));
-}
-
-function parseDSA(data, type, format, opts) {
- if (data.length != 40) {
- var buf = new SSHBuffer({buffer: data});
- var d = buf.readBuffer();
- if (d.toString('ascii') === 'ssh-dss')
- d = buf.readBuffer();
- assert.ok(buf.atEnd(), 'extra trailing bytes');
- assert.strictEqual(d.length, 40, 'invalid inner length');
- data = d;
- }
- opts.parts.push({name: 'r', data: data.slice(0, 20)});
- opts.parts.push({name: 's', data: data.slice(20, 40)});
- return (new Signature(opts));
-}
-
-function parseECDSA(data, type, format, opts) {
- var buf = new SSHBuffer({buffer: data});
-
- var r, s;
- var inner = buf.readBuffer();
- var stype = inner.toString('ascii');
- if (stype.slice(0, 6) === 'ecdsa-') {
- var parts = stype.split('-');
- assert.strictEqual(parts[0], 'ecdsa');
- assert.strictEqual(parts[1], 'sha2');
- opts.curve = parts[2];
- switch (opts.curve) {
- case 'nistp256':
- opts.hashAlgo = 'sha256';
- break;
- case 'nistp384':
- opts.hashAlgo = 'sha384';
- break;
- case 'nistp521':
- opts.hashAlgo = 'sha512';
- break;
- default:
- throw (new Error('Unsupported ECDSA curve: ' +
- opts.curve));
- }
- inner = buf.readBuffer();
- assert.ok(buf.atEnd(), 'extra trailing bytes on outer');
- buf = new SSHBuffer({buffer: inner});
- r = buf.readPart();
- } else {
- r = {data: inner};
- }
-
- s = buf.readPart();
- assert.ok(buf.atEnd(), 'extra trailing bytes');
-
- r.name = 'r';
- s.name = 's';
-
- opts.parts.push(r);
- opts.parts.push(s);
- return (new Signature(opts));
-}
-
-Signature.isSignature = function (obj, ver) {
- return (utils.isCompatible(obj, Signature, ver));
-};
-
-/*
- * API versions for Signature:
- * [1,0] -- initial ver
- * [2,0] -- support for rsa in full ssh format, compat with sshpk-agent
- * hashAlgorithm property
- * [2,1] -- first tagged version
- */
-Signature.prototype._sshpkApiVersion = [2, 1];
-
-Signature._oldVersionDetect = function (obj) {
- assert.func(obj.toBuffer);
- if (obj.hasOwnProperty('hashAlgorithm'))
- return ([2, 0]);
- return ([1, 0]);
-};
diff --git a/deps/npm/node_modules/sshpk/lib/ssh-buffer.js b/deps/npm/node_modules/sshpk/lib/ssh-buffer.js
deleted file mode 100644
index 1dd286c8d2c..00000000000
--- a/deps/npm/node_modules/sshpk/lib/ssh-buffer.js
+++ /dev/null
@@ -1,149 +0,0 @@
-// Copyright 2015 Joyent, Inc.
-
-module.exports = SSHBuffer;
-
-var assert = require('assert-plus');
-var Buffer = require('safer-buffer').Buffer;
-
-function SSHBuffer(opts) {
- assert.object(opts, 'options');
- if (opts.buffer !== undefined)
- assert.buffer(opts.buffer, 'options.buffer');
-
- this._size = opts.buffer ? opts.buffer.length : 1024;
- this._buffer = opts.buffer || Buffer.alloc(this._size);
- this._offset = 0;
-}
-
-SSHBuffer.prototype.toBuffer = function () {
- return (this._buffer.slice(0, this._offset));
-};
-
-SSHBuffer.prototype.atEnd = function () {
- return (this._offset >= this._buffer.length);
-};
-
-SSHBuffer.prototype.remainder = function () {
- return (this._buffer.slice(this._offset));
-};
-
-SSHBuffer.prototype.skip = function (n) {
- this._offset += n;
-};
-
-SSHBuffer.prototype.expand = function () {
- this._size *= 2;
- var buf = Buffer.alloc(this._size);
- this._buffer.copy(buf, 0);
- this._buffer = buf;
-};
-
-SSHBuffer.prototype.readPart = function () {
- return ({data: this.readBuffer()});
-};
-
-SSHBuffer.prototype.readBuffer = function () {
- var len = this._buffer.readUInt32BE(this._offset);
- this._offset += 4;
- assert.ok(this._offset + len <= this._buffer.length,
- 'length out of bounds at +0x' + this._offset.toString(16) +
- ' (data truncated?)');
- var buf = this._buffer.slice(this._offset, this._offset + len);
- this._offset += len;
- return (buf);
-};
-
-SSHBuffer.prototype.readString = function () {
- return (this.readBuffer().toString());
-};
-
-SSHBuffer.prototype.readCString = function () {
- var offset = this._offset;
- while (offset < this._buffer.length &&
- this._buffer[offset] !== 0x00)
- offset++;
- assert.ok(offset < this._buffer.length, 'c string does not terminate');
- var str = this._buffer.slice(this._offset, offset).toString();
- this._offset = offset + 1;
- return (str);
-};
-
-SSHBuffer.prototype.readInt = function () {
- var v = this._buffer.readUInt32BE(this._offset);
- this._offset += 4;
- return (v);
-};
-
-SSHBuffer.prototype.readInt64 = function () {
- assert.ok(this._offset + 8 < this._buffer.length,
- 'buffer not long enough to read Int64');
- var v = this._buffer.slice(this._offset, this._offset + 8);
- this._offset += 8;
- return (v);
-};
-
-SSHBuffer.prototype.readChar = function () {
- var v = this._buffer[this._offset++];
- return (v);
-};
-
-SSHBuffer.prototype.writeBuffer = function (buf) {
- while (this._offset + 4 + buf.length > this._size)
- this.expand();
- this._buffer.writeUInt32BE(buf.length, this._offset);
- this._offset += 4;
- buf.copy(this._buffer, this._offset);
- this._offset += buf.length;
-};
-
-SSHBuffer.prototype.writeString = function (str) {
- this.writeBuffer(Buffer.from(str, 'utf8'));
-};
-
-SSHBuffer.prototype.writeCString = function (str) {
- while (this._offset + 1 + str.length > this._size)
- this.expand();
- this._buffer.write(str, this._offset);
- this._offset += str.length;
- this._buffer[this._offset++] = 0;
-};
-
-SSHBuffer.prototype.writeInt = function (v) {
- while (this._offset + 4 > this._size)
- this.expand();
- this._buffer.writeUInt32BE(v, this._offset);
- this._offset += 4;
-};
-
-SSHBuffer.prototype.writeInt64 = function (v) {
- assert.buffer(v, 'value');
- if (v.length > 8) {
- var lead = v.slice(0, v.length - 8);
- for (var i = 0; i < lead.length; ++i) {
- assert.strictEqual(lead[i], 0,
- 'must fit in 64 bits of precision');
- }
- v = v.slice(v.length - 8, v.length);
- }
- while (this._offset + 8 > this._size)
- this.expand();
- v.copy(this._buffer, this._offset);
- this._offset += 8;
-};
-
-SSHBuffer.prototype.writeChar = function (v) {
- while (this._offset + 1 > this._size)
- this.expand();
- this._buffer[this._offset++] = v;
-};
-
-SSHBuffer.prototype.writePart = function (p) {
- this.writeBuffer(p.data);
-};
-
-SSHBuffer.prototype.write = function (buf) {
- while (this._offset + buf.length > this._size)
- this.expand();
- buf.copy(this._buffer, this._offset);
- this._offset += buf.length;
-};
diff --git a/deps/npm/node_modules/sshpk/lib/utils.js b/deps/npm/node_modules/sshpk/lib/utils.js
deleted file mode 100644
index 6b83a322d15..00000000000
--- a/deps/npm/node_modules/sshpk/lib/utils.js
+++ /dev/null
@@ -1,404 +0,0 @@
-// Copyright 2015 Joyent, Inc.
-
-module.exports = {
- bufferSplit: bufferSplit,
- addRSAMissing: addRSAMissing,
- calculateDSAPublic: calculateDSAPublic,
- calculateED25519Public: calculateED25519Public,
- calculateX25519Public: calculateX25519Public,
- mpNormalize: mpNormalize,
- mpDenormalize: mpDenormalize,
- ecNormalize: ecNormalize,
- countZeros: countZeros,
- assertCompatible: assertCompatible,
- isCompatible: isCompatible,
- opensslKeyDeriv: opensslKeyDeriv,
- opensshCipherInfo: opensshCipherInfo,
- publicFromPrivateECDSA: publicFromPrivateECDSA,
- zeroPadToLength: zeroPadToLength,
- writeBitString: writeBitString,
- readBitString: readBitString,
- pbkdf2: pbkdf2
-};
-
-var assert = require('assert-plus');
-var Buffer = require('safer-buffer').Buffer;
-var PrivateKey = require('./private-key');
-var Key = require('./key');
-var crypto = require('crypto');
-var algs = require('./algs');
-var asn1 = require('asn1');
-
-var ec = require('ecc-jsbn/lib/ec');
-var jsbn = require('jsbn').BigInteger;
-var nacl = require('tweetnacl');
-
-var MAX_CLASS_DEPTH = 3;
-
-function isCompatible(obj, klass, needVer) {
- if (obj === null || typeof (obj) !== 'object')
- return (false);
- if (needVer === undefined)
- needVer = klass.prototype._sshpkApiVersion;
- if (obj instanceof klass &&
- klass.prototype._sshpkApiVersion[0] == needVer[0])
- return (true);
- var proto = Object.getPrototypeOf(obj);
- var depth = 0;
- while (proto.constructor.name !== klass.name) {
- proto = Object.getPrototypeOf(proto);
- if (!proto || ++depth > MAX_CLASS_DEPTH)
- return (false);
- }
- if (proto.constructor.name !== klass.name)
- return (false);
- var ver = proto._sshpkApiVersion;
- if (ver === undefined)
- ver = klass._oldVersionDetect(obj);
- if (ver[0] != needVer[0] || ver[1] < needVer[1])
- return (false);
- return (true);
-}
-
-function assertCompatible(obj, klass, needVer, name) {
- if (name === undefined)
- name = 'object';
- assert.ok(obj, name + ' must not be null');
- assert.object(obj, name + ' must be an object');
- if (needVer === undefined)
- needVer = klass.prototype._sshpkApiVersion;
- if (obj instanceof klass &&
- klass.prototype._sshpkApiVersion[0] == needVer[0])
- return;
- var proto = Object.getPrototypeOf(obj);
- var depth = 0;
- while (proto.constructor.name !== klass.name) {
- proto = Object.getPrototypeOf(proto);
- assert.ok(proto && ++depth <= MAX_CLASS_DEPTH,
- name + ' must be a ' + klass.name + ' instance');
- }
- assert.strictEqual(proto.constructor.name, klass.name,
- name + ' must be a ' + klass.name + ' instance');
- var ver = proto._sshpkApiVersion;
- if (ver === undefined)
- ver = klass._oldVersionDetect(obj);
- assert.ok(ver[0] == needVer[0] && ver[1] >= needVer[1],
- name + ' must be compatible with ' + klass.name + ' klass ' +
- 'version ' + needVer[0] + '.' + needVer[1]);
-}
-
-var CIPHER_LEN = {
- 'des-ede3-cbc': { key: 24, iv: 8 },
- 'aes-128-cbc': { key: 16, iv: 16 },
- 'aes-256-cbc': { key: 32, iv: 16 }
-};
-var PKCS5_SALT_LEN = 8;
-
-function opensslKeyDeriv(cipher, salt, passphrase, count) {
- assert.buffer(salt, 'salt');
- assert.buffer(passphrase, 'passphrase');
- assert.number(count, 'iteration count');
-
- var clen = CIPHER_LEN[cipher];
- assert.object(clen, 'supported cipher');
-
- salt = salt.slice(0, PKCS5_SALT_LEN);
-
- var D, D_prev, bufs;
- var material = Buffer.alloc(0);
- while (material.length < clen.key + clen.iv) {
- bufs = [];
- if (D_prev)
- bufs.push(D_prev);
- bufs.push(passphrase);
- bufs.push(salt);
- D = Buffer.concat(bufs);
- for (var j = 0; j < count; ++j)
- D = crypto.createHash('md5').update(D).digest();
- material = Buffer.concat([material, D]);
- D_prev = D;
- }
-
- return ({
- key: material.slice(0, clen.key),
- iv: material.slice(clen.key, clen.key + clen.iv)
- });
-}
-
-/* See: RFC2898 */
-function pbkdf2(hashAlg, salt, iterations, size, passphrase) {
- var hkey = Buffer.alloc(salt.length + 4);
- salt.copy(hkey);
-
- var gen = 0, ts = [];
- var i = 1;
- while (gen < size) {
- var t = T(i++);
- gen += t.length;
- ts.push(t);
- }
- return (Buffer.concat(ts).slice(0, size));
-
- function T(I) {
- hkey.writeUInt32BE(I, hkey.length - 4);
-
- var hmac = crypto.createHmac(hashAlg, passphrase);
- hmac.update(hkey);
-
- var Ti = hmac.digest();
- var Uc = Ti;
- var c = 1;
- while (c++ < iterations) {
- hmac = crypto.createHmac(hashAlg, passphrase);
- hmac.update(Uc);
- Uc = hmac.digest();
- for (var x = 0; x < Ti.length; ++x)
- Ti[x] ^= Uc[x];
- }
- return (Ti);
- }
-}
-
-/* Count leading zero bits on a buffer */
-function countZeros(buf) {
- var o = 0, obit = 8;
- while (o < buf.length) {
- var mask = (1 << obit);
- if ((buf[o] & mask) === mask)
- break;
- obit--;
- if (obit < 0) {
- o++;
- obit = 8;
- }
- }
- return (o*8 + (8 - obit) - 1);
-}
-
-function bufferSplit(buf, chr) {
- assert.buffer(buf);
- assert.string(chr);
-
- var parts = [];
- var lastPart = 0;
- var matches = 0;
- for (var i = 0; i < buf.length; ++i) {
- if (buf[i] === chr.charCodeAt(matches))
- ++matches;
- else if (buf[i] === chr.charCodeAt(0))
- matches = 1;
- else
- matches = 0;
-
- if (matches >= chr.length) {
- var newPart = i + 1;
- parts.push(buf.slice(lastPart, newPart - matches));
- lastPart = newPart;
- matches = 0;
- }
- }
- if (lastPart <= buf.length)
- parts.push(buf.slice(lastPart, buf.length));
-
- return (parts);
-}
-
-function ecNormalize(buf, addZero) {
- assert.buffer(buf);
- if (buf[0] === 0x00 && buf[1] === 0x04) {
- if (addZero)
- return (buf);
- return (buf.slice(1));
- } else if (buf[0] === 0x04) {
- if (!addZero)
- return (buf);
- } else {
- while (buf[0] === 0x00)
- buf = buf.slice(1);
- if (buf[0] === 0x02 || buf[0] === 0x03)
- throw (new Error('Compressed elliptic curve points ' +
- 'are not supported'));
- if (buf[0] !== 0x04)
- throw (new Error('Not a valid elliptic curve point'));
- if (!addZero)
- return (buf);
- }
- var b = Buffer.alloc(buf.length + 1);
- b[0] = 0x0;
- buf.copy(b, 1);
- return (b);
-}
-
-function readBitString(der, tag) {
- if (tag === undefined)
- tag = asn1.Ber.BitString;
- var buf = der.readString(tag, true);
- assert.strictEqual(buf[0], 0x00, 'bit strings with unused bits are ' +
- 'not supported (0x' + buf[0].toString(16) + ')');
- return (buf.slice(1));
-}
-
-function writeBitString(der, buf, tag) {
- if (tag === undefined)
- tag = asn1.Ber.BitString;
- var b = Buffer.alloc(buf.length + 1);
- b[0] = 0x00;
- buf.copy(b, 1);
- der.writeBuffer(b, tag);
-}
-
-function mpNormalize(buf) {
- assert.buffer(buf);
- while (buf.length > 1 && buf[0] === 0x00 && (buf[1] & 0x80) === 0x00)
- buf = buf.slice(1);
- if ((buf[0] & 0x80) === 0x80) {
- var b = Buffer.alloc(buf.length + 1);
- b[0] = 0x00;
- buf.copy(b, 1);
- buf = b;
- }
- return (buf);
-}
-
-function mpDenormalize(buf) {
- assert.buffer(buf);
- while (buf.length > 1 && buf[0] === 0x00)
- buf = buf.slice(1);
- return (buf);
-}
-
-function zeroPadToLength(buf, len) {
- assert.buffer(buf);
- assert.number(len);
- while (buf.length > len) {
- assert.equal(buf[0], 0x00);
- buf = buf.slice(1);
- }
- while (buf.length < len) {
- var b = Buffer.alloc(buf.length + 1);
- b[0] = 0x00;
- buf.copy(b, 1);
- buf = b;
- }
- return (buf);
-}
-
-function bigintToMpBuf(bigint) {
- var buf = Buffer.from(bigint.toByteArray());
- buf = mpNormalize(buf);
- return (buf);
-}
-
-function calculateDSAPublic(g, p, x) {
- assert.buffer(g);
- assert.buffer(p);
- assert.buffer(x);
- g = new jsbn(g);
- p = new jsbn(p);
- x = new jsbn(x);
- var y = g.modPow(x, p);
- var ybuf = bigintToMpBuf(y);
- return (ybuf);
-}
-
-function calculateED25519Public(k) {
- assert.buffer(k);
-
- var kp = nacl.sign.keyPair.fromSeed(new Uint8Array(k));
- return (Buffer.from(kp.publicKey));
-}
-
-function calculateX25519Public(k) {
- assert.buffer(k);
-
- var kp = nacl.box.keyPair.fromSeed(new Uint8Array(k));
- return (Buffer.from(kp.publicKey));
-}
-
-function addRSAMissing(key) {
- assert.object(key);
- assertCompatible(key, PrivateKey, [1, 1]);
-
- var d = new jsbn(key.part.d.data);
- var buf;
-
- if (!key.part.dmodp) {
- var p = new jsbn(key.part.p.data);
- var dmodp = d.mod(p.subtract(1));
-
- buf = bigintToMpBuf(dmodp);
- key.part.dmodp = {name: 'dmodp', data: buf};
- key.parts.push(key.part.dmodp);
- }
- if (!key.part.dmodq) {
- var q = new jsbn(key.part.q.data);
- var dmodq = d.mod(q.subtract(1));
-
- buf = bigintToMpBuf(dmodq);
- key.part.dmodq = {name: 'dmodq', data: buf};
- key.parts.push(key.part.dmodq);
- }
-}
-
-function publicFromPrivateECDSA(curveName, priv) {
- assert.string(curveName, 'curveName');
- assert.buffer(priv);
- var params = algs.curves[curveName];
- var p = new jsbn(params.p);
- var a = new jsbn(params.a);
- var b = new jsbn(params.b);
- var curve = new ec.ECCurveFp(p, a, b);
- var G = curve.decodePointHex(params.G.toString('hex'));
-
- var d = new jsbn(mpNormalize(priv));
- var pub = G.multiply(d);
- pub = Buffer.from(curve.encodePointHex(pub), 'hex');
-
- var parts = [];
- parts.push({name: 'curve', data: Buffer.from(curveName)});
- parts.push({name: 'Q', data: pub});
-
- var key = new Key({type: 'ecdsa', curve: curve, parts: parts});
- return (key);
-}
-
-function opensshCipherInfo(cipher) {
- var inf = {};
- switch (cipher) {
- case '3des-cbc':
- inf.keySize = 24;
- inf.blockSize = 8;
- inf.opensslName = 'des-ede3-cbc';
- break;
- case 'blowfish-cbc':
- inf.keySize = 16;
- inf.blockSize = 8;
- inf.opensslName = 'bf-cbc';
- break;
- case 'aes128-cbc':
- case 'aes128-ctr':
- case 'aes128-gcm@openssh.com':
- inf.keySize = 16;
- inf.blockSize = 16;
- inf.opensslName = 'aes-128-' + cipher.slice(7, 10);
- break;
- case 'aes192-cbc':
- case 'aes192-ctr':
- case 'aes192-gcm@openssh.com':
- inf.keySize = 24;
- inf.blockSize = 16;
- inf.opensslName = 'aes-192-' + cipher.slice(7, 10);
- break;
- case 'aes256-cbc':
- case 'aes256-ctr':
- case 'aes256-gcm@openssh.com':
- inf.keySize = 32;
- inf.blockSize = 16;
- inf.opensslName = 'aes-256-' + cipher.slice(7, 10);
- break;
- default:
- throw (new Error(
- 'Unsupported openssl cipher "' + cipher + '"'));
- }
- return (inf);
-}
diff --git a/deps/npm/node_modules/sshpk/man/man1/sshpk-conv.1 b/deps/npm/node_modules/sshpk/man/man1/sshpk-conv.1
deleted file mode 100644
index 0887dce2728..00000000000
--- a/deps/npm/node_modules/sshpk/man/man1/sshpk-conv.1
+++ /dev/null
@@ -1,135 +0,0 @@
-.TH sshpk\-conv 1 "Jan 2016" sshpk "sshpk Commands"
-.SH NAME
-.PP
-sshpk\-conv \- convert between key formats
-.SH SYNOPSYS
-.PP
-\fB\fCsshpk\-conv\fR \-t FORMAT [FILENAME] [OPTIONS...]
-.PP
-\fB\fCsshpk\-conv\fR \-i [FILENAME] [OPTIONS...]
-.SH DESCRIPTION
-.PP
-Reads in a public or private key and converts it between different formats,
-particularly formats used in the SSH protocol and the well\-known PEM PKCS#1/7
-formats.
-.PP
-In the second form, with the \fB\fC\-i\fR option given, identifies a key and prints to
-stderr information about its nature, size and fingerprint.
-.SH EXAMPLES
-.PP
-Assume the following SSH\-format public key in \fB\fCid_ecdsa.pub\fR:
-.PP
-.RS
-.nf
-ecdsa\-sha2\-nistp256 AAAAE2VjZHNhLXNoYTI...9M/4c4= user@host
-.fi
-.RE
-.PP
-Identify it with \fB\fC\-i\fR:
-.PP
-.RS
-.nf
-$ sshpk\-conv \-i id_ecdsa.pub
-id_ecdsa: a 256 bit ECDSA public key
-ECDSA curve: nistp256
-Comment: user@host
-Fingerprint:
- SHA256:vCNX7eUkdvqqW0m4PoxQAZRv+CM4P4fS8+CbliAvS4k
- 81:ad:d5:57:e5:6f:7d:a2:93:79:56:af:d7:c0:38:51
-.fi
-.RE
-.PP
-Convert it to \fB\fCpkcs8\fR format, for use with e.g. OpenSSL:
-.PP
-.RS
-.nf
-$ sshpk\-conv \-t pkcs8 id_ecdsa
-\-\-\-\-\-BEGIN PUBLIC KEY\-\-\-\-\-
-MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEAsA4R6N6AS3gzaPBeLjG2ObSgUsR
-zOt+kWJoijLnw3ZMYUKmAx+lD0I5XUxdrPcs1vH5f3cn9TvRvO9L0z/hzg==
-\-\-\-\-\-END PUBLIC KEY\-\-\-\-\-
-.fi
-.RE
-.PP
-Retrieve the public half of a private key:
-.PP
-.RS
-.nf
-$ openssl genrsa 2048 | sshpk\-conv \-t ssh \-c foo@bar
-ssh\-rsa AAAAB3NzaC1yc2EAAA...koK7 foo@bar
-.fi
-.RE
-.PP
-Convert a private key to PKCS#1 (OpenSSL) format from a new\-style OpenSSH key
-format (the \fB\fCssh\-keygen \-o\fR format):
-.PP
-.RS
-.nf
-$ ssh\-keygen \-o \-f foobar
-\&...
-$ sshpk\-conv \-p \-t pkcs1 foobar
-\-\-\-\-\-BEGIN RSA PRIVATE KEY\-\-\-\-\-
-MIIDpAIBAAKCAQEA6T/GYJndb1TRH3+NL....
-\-\-\-\-\-END RSA PRIVATE KEY\-\-\-\-\-
-.fi
-.RE
-.SH OPTIONS
-.TP
-\fB\fC\-i, \-\-identify\fR
-Instead of converting the key, output identifying information about it to
-stderr, including its type, size and fingerprints.
-.TP
-\fB\fC\-p, \-\-private\fR
-Treat the key as a private key instead of a public key (the default). If you
-supply \fB\fCsshpk\-conv\fR with a private key and do not give this option, it will
-extract only the public half of the key from it and work with that.
-.TP
-\fB\fC\-f PATH, \-\-file=PATH\fR
-Input file to take the key from instead of stdin. If a filename is supplied
-as a positional argument, it is equivalent to using this option.
-.TP
-\fB\fC\-o PATH, \-\-out=PATH\fR
-Output file name to use instead of stdout.
-.PP
-\fB\fC\-T FORMAT, \-\-informat=FORMAT\fR
-.TP
-\fB\fC\-t FORMAT, \-\-outformat=FORMAT\fR
-Selects the input and output formats to be used (see FORMATS, below).
-.TP
-\fB\fC\-c TEXT, \-\-comment=TEXT\fR
-Sets the key comment for the output file, if supported.
-.SH FORMATS
-.PP
-Currently supported formats:
-.TP
-\fB\fCpem, pkcs1\fR
-The standard PEM format used by older OpenSSH and most TLS libraries such as
-OpenSSL. The classic \fB\fCid_rsa\fR file is usually in this format. It is an ASN.1
-encoded structure, base64\-encoded and placed between PEM headers.
-.TP
-\fB\fCssh\fR
-The SSH public key text format (the format of an \fB\fCid_rsa.pub\fR file). A single
-line, containing 3 space separated parts: the key type, key body and optional
-key comment.
-.TP
-\fB\fCpkcs8\fR
-A newer PEM format, usually used only for public keys by TLS libraries such
-as OpenSSL. The ASN.1 structure is more generic than that of \fB\fCpkcs1\fR\&.
-.TP
-\fB\fCopenssh\fR
-The new \fB\fCssh\-keygen \-o\fR format from OpenSSH. This can be mistaken for a PEM
-encoding but is actually an OpenSSH internal format.
-.TP
-\fB\fCrfc4253\fR
-The internal binary format of keys when sent over the wire in the SSH
-protocol. This is also the format that the \fB\fCssh\-agent\fR uses in its protocol.
-.SH SEE ALSO
-.PP
-.BR ssh-keygen (1),
-.BR openssl (1)
-.SH BUGS
-.PP
-Encrypted (password\-protected) keys are not supported.
-.PP
-Report bugs at Github
-\[la]https://github.com/arekinath/node-sshpk/issues\[ra]
diff --git a/deps/npm/node_modules/sshpk/man/man1/sshpk-sign.1 b/deps/npm/node_modules/sshpk/man/man1/sshpk-sign.1
deleted file mode 100644
index 749916ba887..00000000000
--- a/deps/npm/node_modules/sshpk/man/man1/sshpk-sign.1
+++ /dev/null
@@ -1,81 +0,0 @@
-.TH sshpk\-sign 1 "Jan 2016" sshpk "sshpk Commands"
-.SH NAME
-.PP
-sshpk\-sign \- sign data using an SSH key
-.SH SYNOPSYS
-.PP
-\fB\fCsshpk\-sign\fR \-i KEYPATH [OPTION...]
-.SH DESCRIPTION
-.PP
-Takes in arbitrary bytes, and signs them using an SSH private key. The key can
-be of any type or format supported by the \fB\fCsshpk\fR library, including the
-standard OpenSSH formats, as well as PEM PKCS#1 and PKCS#8.
-.PP
-The signature is printed out in Base64 encoding, unless the \fB\fC\-\-binary\fR or \fB\fC\-b\fR
-option is given.
-.SH EXAMPLES
-.PP
-Signing with default settings:
-.PP
-.RS
-.nf
-$ printf 'foo' | sshpk\-sign \-i ~/.ssh/id_ecdsa
-MEUCIAMdLS/vXrrtWFepwe...
-.fi
-.RE
-.PP
-Signing in SSH (RFC 4253) format (rather than the default ASN.1):
-.PP
-.RS
-.nf
-$ printf 'foo' | sshpk\-sign \-i ~/.ssh/id_ecdsa \-t ssh
-AAAAFGVjZHNhLXNoYTIt...
-.fi
-.RE
-.PP
-Saving the binary signature to a file:
-.PP
-.RS
-.nf
-$ printf 'foo' | sshpk\-sign \-i ~/.ssh/id_ecdsa \\
- \-o signature.bin \-b
-$ cat signature.bin | base64
-MEUCIAMdLS/vXrrtWFepwe...
-.fi
-.RE
-.SH OPTIONS
-.TP
-\fB\fC\-v, \-\-verbose\fR
-Print extra information about the key and signature to stderr when signing.
-.TP
-\fB\fC\-b, \-\-binary\fR
-Don't base64\-encode the signature before outputting it.
-.TP
-\fB\fC\-i KEY, \-\-identity=KEY\fR
-Select the key to be used for signing. \fB\fCKEY\fR must be a relative or absolute
-filesystem path to the key file. Any format supported by the \fB\fCsshpk\fR library
-is supported, including OpenSSH formats and standard PEM PKCS.
-.TP
-\fB\fC\-f PATH, \-\-file=PATH\fR
-Input file to sign instead of stdin.
-.TP
-\fB\fC\-o PATH, \-\-out=PATH\fR
-Output file to save signature in instead of stdout.
-.TP
-\fB\fC\-H HASH, \-\-hash=HASH\fR
-Set the hash algorithm to be used for signing. This should be one of \fB\fCsha1\fR,
-\fB\fCsha256\fR or \fB\fCsha512\fR\&. Some key types may place restrictions on which hash
-algorithms may be used (e.g. ED25519 keys can only use SHA\-512).
-.TP
-\fB\fC\-t FORMAT, \-\-format=FORMAT\fR
-Choose the signature format to use, from \fB\fCasn1\fR, \fB\fCssh\fR or \fB\fCraw\fR (only for
-ED25519 signatures). The \fB\fCasn1\fR format is the default, as it is the format
-used with TLS and typically the standard in most non\-SSH libraries (e.g.
-OpenSSL). The \fB\fCssh\fR format is used in the SSH protocol and by the ssh\-agent.
-.SH SEE ALSO
-.PP
-.BR sshpk-verify (1)
-.SH BUGS
-.PP
-Report bugs at Github
-\[la]https://github.com/arekinath/node-sshpk/issues\[ra]
diff --git a/deps/npm/node_modules/sshpk/man/man1/sshpk-verify.1 b/deps/npm/node_modules/sshpk/man/man1/sshpk-verify.1
deleted file mode 100644
index f79169d2753..00000000000
--- a/deps/npm/node_modules/sshpk/man/man1/sshpk-verify.1
+++ /dev/null
@@ -1,68 +0,0 @@
-.TH sshpk\-verify 1 "Jan 2016" sshpk "sshpk Commands"
-.SH NAME
-.PP
-sshpk\-verify \- verify a signature on data using an SSH key
-.SH SYNOPSYS
-.PP
-\fB\fCsshpk\-verify\fR \-i KEYPATH \-s SIGNATURE [OPTION...]
-.SH DESCRIPTION
-.PP
-Takes in arbitrary bytes and a Base64\-encoded signature, and verifies that the
-signature was produced by the private half of the given SSH public key.
-.SH EXAMPLES
-.PP
-.RS
-.nf
-$ printf 'foo' | sshpk\-verify \-i ~/.ssh/id_ecdsa \-s MEUCIQCYp...
-OK
-$ printf 'foo' | sshpk\-verify \-i ~/.ssh/id_ecdsa \-s GARBAGE...
-NOT OK
-.fi
-.RE
-.SH EXIT STATUS
-.TP
-\fB\fC0\fR
-Signature validates and matches the key.
-.TP
-\fB\fC1\fR
-Signature is parseable and the correct length but does not match the key or
-otherwise is invalid.
-.TP
-\fB\fC2\fR
-The signature or key could not be parsed.
-.TP
-\fB\fC3\fR
-Invalid commandline options were supplied.
-.SH OPTIONS
-.TP
-\fB\fC\-v, \-\-verbose\fR
-Print extra information about the key and signature to stderr when verifying.
-.TP
-\fB\fC\-i KEY, \-\-identity=KEY\fR
-Select the key to be used for verification. \fB\fCKEY\fR must be a relative or
-absolute filesystem path to the key file. Any format supported by the \fB\fCsshpk\fR
-library is supported, including OpenSSH formats and standard PEM PKCS.
-.TP
-\fB\fC\-s BASE64, \-\-signature=BASE64\fR
-Supplies the base64\-encoded signature to be verified.
-.TP
-\fB\fC\-f PATH, \-\-file=PATH\fR
-Input file to verify instead of stdin.
-.TP
-\fB\fC\-H HASH, \-\-hash=HASH\fR
-Set the hash algorithm to be used for signing. This should be one of \fB\fCsha1\fR,
-\fB\fCsha256\fR or \fB\fCsha512\fR\&. Some key types may place restrictions on which hash
-algorithms may be used (e.g. ED25519 keys can only use SHA\-512).
-.TP
-\fB\fC\-t FORMAT, \-\-format=FORMAT\fR
-Choose the signature format to use, from \fB\fCasn1\fR, \fB\fCssh\fR or \fB\fCraw\fR (only for
-ED25519 signatures). The \fB\fCasn1\fR format is the default, as it is the format
-used with TLS and typically the standard in most non\-SSH libraries (e.g.
-OpenSSL). The \fB\fCssh\fR format is used in the SSH protocol and by the ssh\-agent.
-.SH SEE ALSO
-.PP
-.BR sshpk-sign (1)
-.SH BUGS
-.PP
-Report bugs at Github
-\[la]https://github.com/arekinath/node-sshpk/issues\[ra]
diff --git a/deps/npm/node_modules/sshpk/package.json b/deps/npm/node_modules/sshpk/package.json
deleted file mode 100644
index cc78787f8c2..00000000000
--- a/deps/npm/node_modules/sshpk/package.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{
- "name": "sshpk",
- "version": "1.16.1",
- "description": "A library for finding and using SSH public keys",
- "main": "lib/index.js",
- "scripts": {
- "test": "tape test/*.js"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/joyent/node-sshpk.git"
- },
- "author": "Joyent, Inc",
- "contributors": [
- {
- "name": "Dave Eddy",
- "email": "dave@daveeddy.com"
- },
- {
- "name": "Mark Cavage",
- "email": "mcavage@gmail.com"
- },
- {
- "name": "Alex Wilson",
- "email": "alex@cooperi.net"
- }
- ],
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/arekinath/node-sshpk/issues"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "directories": {
- "bin": "./bin",
- "lib": "./lib",
- "man": "./man/man1"
- },
- "homepage": "https://github.com/arekinath/node-sshpk#readme",
- "dependencies": {
- "asn1": "~0.2.3",
- "assert-plus": "^1.0.0",
- "dashdash": "^1.12.0",
- "getpass": "^0.1.1",
- "safer-buffer": "^2.0.2",
- "jsbn": "~0.1.0",
- "tweetnacl": "~0.14.0",
- "ecc-jsbn": "~0.1.1",
- "bcrypt-pbkdf": "^1.0.0"
- },
- "optionalDependencies": {
- },
- "devDependencies": {
- "tape": "^3.5.0",
- "benchmark": "^1.0.0",
- "sinon": "^1.17.2",
- "temp": "^0.8.2"
- }
-}
diff --git a/deps/npm/node_modules/tunnel-agent/LICENSE b/deps/npm/node_modules/tunnel-agent/LICENSE
deleted file mode 100644
index a4a9aee0c2f..00000000000
--- a/deps/npm/node_modules/tunnel-agent/LICENSE
+++ /dev/null
@@ -1,55 +0,0 @@
-Apache License
-
-Version 2.0, January 2004
-
-http://www.apache.org/licenses/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
-"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
-
-"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
-
-"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
-
-"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
-
-"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
-
-"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
-
-"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
-
-"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
-
-"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
-
-"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
-
-2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
-
-You must give any other recipients of the Work or Derivative Works a copy of this License; and
-
-You must cause any modified files to carry prominent notices stating that You changed the files; and
-
-You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
-
-If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
-
-5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS \ No newline at end of file
diff --git a/deps/npm/node_modules/tunnel-agent/index.js b/deps/npm/node_modules/tunnel-agent/index.js
deleted file mode 100644
index 3ee9abc5075..00000000000
--- a/deps/npm/node_modules/tunnel-agent/index.js
+++ /dev/null
@@ -1,244 +0,0 @@
-'use strict'
-
-var net = require('net')
- , tls = require('tls')
- , http = require('http')
- , https = require('https')
- , events = require('events')
- , assert = require('assert')
- , util = require('util')
- , Buffer = require('safe-buffer').Buffer
- ;
-
-exports.httpOverHttp = httpOverHttp
-exports.httpsOverHttp = httpsOverHttp
-exports.httpOverHttps = httpOverHttps
-exports.httpsOverHttps = httpsOverHttps
-
-
-function httpOverHttp(options) {
- var agent = new TunnelingAgent(options)
- agent.request = http.request
- return agent
-}
-
-function httpsOverHttp(options) {
- var agent = new TunnelingAgent(options)
- agent.request = http.request
- agent.createSocket = createSecureSocket
- agent.defaultPort = 443
- return agent
-}
-
-function httpOverHttps(options) {
- var agent = new TunnelingAgent(options)
- agent.request = https.request
- return agent
-}
-
-function httpsOverHttps(options) {
- var agent = new TunnelingAgent(options)
- agent.request = https.request
- agent.createSocket = createSecureSocket
- agent.defaultPort = 443
- return agent
-}
-
-
-function TunnelingAgent(options) {
- var self = this
- self.options = options || {}
- self.proxyOptions = self.options.proxy || {}
- self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets
- self.requests = []
- self.sockets = []
-
- self.on('free', function onFree(socket, host, port) {
- for (var i = 0, len = self.requests.length; i < len; ++i) {
- var pending = self.requests[i]
- if (pending.host === host && pending.port === port) {
- // Detect the request to connect same origin server,
- // reuse the connection.
- self.requests.splice(i, 1)
- pending.request.onSocket(socket)
- return
- }
- }
- socket.destroy()
- self.removeSocket(socket)
- })
-}
-util.inherits(TunnelingAgent, events.EventEmitter)
-
-TunnelingAgent.prototype.addRequest = function addRequest(req, options) {
- var self = this
-
- // Legacy API: addRequest(req, host, port, path)
- if (typeof options === 'string') {
- options = {
- host: options,
- port: arguments[2],
- path: arguments[3]
- };
- }
-
- if (self.sockets.length >= this.maxSockets) {
- // We are over limit so we'll add it to the queue.
- self.requests.push({host: options.host, port: options.port, request: req})
- return
- }
-
- // If we are under maxSockets create a new one.
- self.createConnection({host: options.host, port: options.port, request: req})
-}
-
-TunnelingAgent.prototype.createConnection = function createConnection(pending) {
- var self = this
-
- self.createSocket(pending, function(socket) {
- socket.on('free', onFree)
- socket.on('close', onCloseOrRemove)
- socket.on('agentRemove', onCloseOrRemove)
- pending.request.onSocket(socket)
-
- function onFree() {
- self.emit('free', socket, pending.host, pending.port)
- }
-
- function onCloseOrRemove(err) {
- self.removeSocket(socket)
- socket.removeListener('free', onFree)
- socket.removeListener('close', onCloseOrRemove)
- socket.removeListener('agentRemove', onCloseOrRemove)
- }
- })
-}
-
-TunnelingAgent.prototype.createSocket = function createSocket(options, cb) {
- var self = this
- var placeholder = {}
- self.sockets.push(placeholder)
-
- var connectOptions = mergeOptions({}, self.proxyOptions,
- { method: 'CONNECT'
- , path: options.host + ':' + options.port
- , agent: false
- }
- )
- if (connectOptions.proxyAuth) {
- connectOptions.headers = connectOptions.headers || {}
- connectOptions.headers['Proxy-Authorization'] = 'Basic ' +
- Buffer.from(connectOptions.proxyAuth).toString('base64')
- }
-
- debug('making CONNECT request')
- var connectReq = self.request(connectOptions)
- connectReq.useChunkedEncodingByDefault = false // for v0.6
- connectReq.once('response', onResponse) // for v0.6
- connectReq.once('upgrade', onUpgrade) // for v0.6
- connectReq.once('connect', onConnect) // for v0.7 or later
- connectReq.once('error', onError)
- connectReq.end()
-
- function onResponse(res) {
- // Very hacky. This is necessary to avoid http-parser leaks.
- res.upgrade = true
- }
-
- function onUpgrade(res, socket, head) {
- // Hacky.
- process.nextTick(function() {
- onConnect(res, socket, head)
- })
- }
-
- function onConnect(res, socket, head) {
- connectReq.removeAllListeners()
- socket.removeAllListeners()
-
- if (res.statusCode === 200) {
- assert.equal(head.length, 0)
- debug('tunneling connection has established')
- self.sockets[self.sockets.indexOf(placeholder)] = socket
- cb(socket)
- } else {
- debug('tunneling socket could not be established, statusCode=%d', res.statusCode)
- var error = new Error('tunneling socket could not be established, ' + 'statusCode=' + res.statusCode)
- error.code = 'ECONNRESET'
- options.request.emit('error', error)
- self.removeSocket(placeholder)
- }
- }
-
- function onError(cause) {
- connectReq.removeAllListeners()
-
- debug('tunneling socket could not be established, cause=%s\n', cause.message, cause.stack)
- var error = new Error('tunneling socket could not be established, ' + 'cause=' + cause.message)
- error.code = 'ECONNRESET'
- options.request.emit('error', error)
- self.removeSocket(placeholder)
- }
-}
-
-TunnelingAgent.prototype.removeSocket = function removeSocket(socket) {
- var pos = this.sockets.indexOf(socket)
- if (pos === -1) return
-
- this.sockets.splice(pos, 1)
-
- var pending = this.requests.shift()
- if (pending) {
- // If we have pending requests and a socket gets closed a new one
- // needs to be created to take over in the pool for the one that closed.
- this.createConnection(pending)
- }
-}
-
-function createSecureSocket(options, cb) {
- var self = this
- TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {
- // 0 is dummy port for v0.6
- var secureSocket = tls.connect(0, mergeOptions({}, self.options,
- { servername: options.host
- , socket: socket
- }
- ))
- self.sockets[self.sockets.indexOf(socket)] = secureSocket
- cb(secureSocket)
- })
-}
-
-
-function mergeOptions(target) {
- for (var i = 1, len = arguments.length; i < len; ++i) {
- var overrides = arguments[i]
- if (typeof overrides === 'object') {
- var keys = Object.keys(overrides)
- for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {
- var k = keys[j]
- if (overrides[k] !== undefined) {
- target[k] = overrides[k]
- }
- }
- }
- }
- return target
-}
-
-
-var debug
-if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) {
- debug = function() {
- var args = Array.prototype.slice.call(arguments)
- if (typeof args[0] === 'string') {
- args[0] = 'TUNNEL: ' + args[0]
- } else {
- args.unshift('TUNNEL:')
- }
- console.error.apply(console, args)
- }
-} else {
- debug = function() {}
-}
-exports.debug = debug // for test
diff --git a/deps/npm/node_modules/tunnel-agent/package.json b/deps/npm/node_modules/tunnel-agent/package.json
deleted file mode 100644
index a271fda91ae..00000000000
--- a/deps/npm/node_modules/tunnel-agent/package.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "author": "Mikeal Rogers <mikeal.rogers@gmail.com> (http://www.futurealoof.com)",
- "name": "tunnel-agent",
- "license": "Apache-2.0",
- "description": "HTTP proxy tunneling agent. Formerly part of mikeal/request, now a standalone module.",
- "version": "0.6.0",
- "repository": {
- "url": "https://github.com/mikeal/tunnel-agent"
- },
- "main": "index.js",
- "files": [
- "index.js"
- ],
- "dependencies": {
- "safe-buffer": "^5.0.1"
- },
- "devDependencies": {},
- "optionalDependencies": {},
- "engines": {
- "node": "*"
- }
-}
diff --git a/deps/npm/node_modules/tweetnacl/AUTHORS.md b/deps/npm/node_modules/tweetnacl/AUTHORS.md
deleted file mode 100644
index 6d74d40694c..00000000000
--- a/deps/npm/node_modules/tweetnacl/AUTHORS.md
+++ /dev/null
@@ -1,28 +0,0 @@
-List of TweetNaCl.js authors
-============================
-
- Alphabetical order by first name.
- Format: Name (GitHub username or URL)
-
-* AndSDev (@AndSDev)
-* Devi Mandiri (@devi)
-* Dmitry Chestnykh (@dchest)
-
-List of authors of third-party public domain code from which TweetNaCl.js code was derived
-==========================================================================================
-
-[TweetNaCl](http://tweetnacl.cr.yp.to/)
---------------------------------------
-
-* Bernard van Gastel
-* Daniel J. Bernstein <http://cr.yp.to/djb.html>
-* Peter Schwabe <http://www.cryptojedi.org/users/peter/>
-* Sjaak Smetsers <http://www.cs.ru.nl/~sjakie/>
-* Tanja Lange <http://hyperelliptic.org/tanja>
-* Wesley Janssen
-
-
-[Poly1305-donna](https://github.com/floodyberry/poly1305-donna)
---------------------------------------------------------------
-
-* Andrew Moon (@floodyberry)
diff --git a/deps/npm/node_modules/tweetnacl/LICENSE b/deps/npm/node_modules/tweetnacl/LICENSE
deleted file mode 100644
index cf1ab25da03..00000000000
--- a/deps/npm/node_modules/tweetnacl/LICENSE
+++ /dev/null
@@ -1,24 +0,0 @@
-This is free and unencumbered software released into the public domain.
-
-Anyone is free to copy, modify, publish, use, compile, sell, or
-distribute this software, either in source code form or as a compiled
-binary, for any purpose, commercial or non-commercial, and by any
-means.
-
-In jurisdictions that recognize copyright laws, the author or authors
-of this software dedicate any and all copyright interest in the
-software to the public domain. We make this dedication for the benefit
-of the public at large and to the detriment of our heirs and
-successors. We intend this dedication to be an overt act of
-relinquishment in perpetuity of all present and future rights to this
-software under copyright law.
-
-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 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.
-
-For more information, please refer to <http://unlicense.org>
diff --git a/deps/npm/node_modules/tweetnacl/PULL_REQUEST_TEMPLATE.md b/deps/npm/node_modules/tweetnacl/PULL_REQUEST_TEMPLATE.md
deleted file mode 100644
index a8eb4a9a9a7..00000000000
--- a/deps/npm/node_modules/tweetnacl/PULL_REQUEST_TEMPLATE.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# Important!
-
-If your contribution is not trivial (not a typo fix, etc.), we can only accept
-it if you dedicate your copyright for the contribution to the public domain.
-Make sure you understand what it means (see http://unlicense.org/)! If you
-agree, please add yourself to AUTHORS.md file, and include the following text
-to your pull request description or a comment in it:
-
-------------------------------------------------------------------------------
-
- I dedicate any and all copyright interest in this software to the
- public domain. I make this dedication for the benefit of the public at
- large and to the detriment of my heirs and successors. I intend this
- dedication to be an overt act of relinquishment in perpetuity of all
- present and future rights to this software under copyright law.
-
- Anyone is free to copy, modify, publish, use, compile, sell, or
- distribute this software, either in source code form or as a compiled
- binary, for any purpose, commercial or non-commercial, and by any
- means.
diff --git a/deps/npm/node_modules/tweetnacl/nacl-fast.js b/deps/npm/node_modules/tweetnacl/nacl-fast.js
deleted file mode 100644
index 5e4562fe89a..00000000000
--- a/deps/npm/node_modules/tweetnacl/nacl-fast.js
+++ /dev/null
@@ -1,2388 +0,0 @@
-(function(nacl) {
-'use strict';
-
-// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.
-// Public domain.
-//
-// Implementation derived from TweetNaCl version 20140427.
-// See for details: http://tweetnacl.cr.yp.to/
-
-var gf = function(init) {
- var i, r = new Float64Array(16);
- if (init) for (i = 0; i < init.length; i++) r[i] = init[i];
- return r;
-};
-
-// Pluggable, initialized in high-level API below.
-var randombytes = function(/* x, n */) { throw new Error('no PRNG'); };
-
-var _0 = new Uint8Array(16);
-var _9 = new Uint8Array(32); _9[0] = 9;
-
-var gf0 = gf(),
- gf1 = gf([1]),
- _121665 = gf([0xdb41, 1]),
- D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),
- D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),
- X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),
- Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),
- I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);
-
-function ts64(x, i, h, l) {
- x[i] = (h >> 24) & 0xff;
- x[i+1] = (h >> 16) & 0xff;
- x[i+2] = (h >> 8) & 0xff;
- x[i+3] = h & 0xff;
- x[i+4] = (l >> 24) & 0xff;
- x[i+5] = (l >> 16) & 0xff;
- x[i+6] = (l >> 8) & 0xff;
- x[i+7] = l & 0xff;
-}
-
-function vn(x, xi, y, yi, n) {
- var i,d = 0;
- for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];
- return (1 & ((d - 1) >>> 8)) - 1;
-}
-
-function crypto_verify_16(x, xi, y, yi) {
- return vn(x,xi,y,yi,16);
-}
-
-function crypto_verify_32(x, xi, y, yi) {
- return vn(x,xi,y,yi,32);
-}
-
-function core_salsa20(o, p, k, c) {
- var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,
- j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,
- j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,
- j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,
- j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,
- j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,
- j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,
- j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,
- j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,
- j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,
- j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,
- j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,
- j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,
- j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,
- j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,
- j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;
-
- var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,
- x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,
- x15 = j15, u;
-
- for (var i = 0; i < 20; i += 2) {
- u = x0 + x12 | 0;
- x4 ^= u<<7 | u>>>(32-7);
- u = x4 + x0 | 0;
- x8 ^= u<<9 | u>>>(32-9);
- u = x8 + x4 | 0;
- x12 ^= u<<13 | u>>>(32-13);
- u = x12 + x8 | 0;
- x0 ^= u<<18 | u>>>(32-18);
-
- u = x5 + x1 | 0;
- x9 ^= u<<7 | u>>>(32-7);
- u = x9 + x5 | 0;
- x13 ^= u<<9 | u>>>(32-9);
- u = x13 + x9 | 0;
- x1 ^= u<<13 | u>>>(32-13);
- u = x1 + x13 | 0;
- x5 ^= u<<18 | u>>>(32-18);
-
- u = x10 + x6 | 0;
- x14 ^= u<<7 | u>>>(32-7);
- u = x14 + x10 | 0;
- x2 ^= u<<9 | u>>>(32-9);
- u = x2 + x14 | 0;
- x6 ^= u<<13 | u>>>(32-13);
- u = x6 + x2 | 0;
- x10 ^= u<<18 | u>>>(32-18);
-
- u = x15 + x11 | 0;
- x3 ^= u<<7 | u>>>(32-7);
- u = x3 + x15 | 0;
- x7 ^= u<<9 | u>>>(32-9);
- u = x7 + x3 | 0;
- x11 ^= u<<13 | u>>>(32-13);
- u = x11 + x7 | 0;
- x15 ^= u<<18 | u>>>(32-18);
-
- u = x0 + x3 | 0;
- x1 ^= u<<7 | u>>>(32-7);
- u = x1 + x0 | 0;
- x2 ^= u<<9 | u>>>(32-9);
- u = x2 + x1 | 0;
- x3 ^= u<<13 | u>>>(32-13);
- u = x3 + x2 | 0;
- x0 ^= u<<18 | u>>>(32-18);
-
- u = x5 + x4 | 0;
- x6 ^= u<<7 | u>>>(32-7);
- u = x6 + x5 | 0;
- x7 ^= u<<9 | u>>>(32-9);
- u = x7 + x6 | 0;
- x4 ^= u<<13 | u>>>(32-13);
- u = x4 + x7 | 0;
- x5 ^= u<<18 | u>>>(32-18);
-
- u = x10 + x9 | 0;
- x11 ^= u<<7 | u>>>(32-7);
- u = x11 + x10 | 0;
- x8 ^= u<<9 | u>>>(32-9);
- u = x8 + x11 | 0;
- x9 ^= u<<13 | u>>>(32-13);
- u = x9 + x8 | 0;
- x10 ^= u<<18 | u>>>(32-18);
-
- u = x15 + x14 | 0;
- x12 ^= u<<7 | u>>>(32-7);
- u = x12 + x15 | 0;
- x13 ^= u<<9 | u>>>(32-9);
- u = x13 + x12 | 0;
- x14 ^= u<<13 | u>>>(32-13);
- u = x14 + x13 | 0;
- x15 ^= u<<18 | u>>>(32-18);
- }
- x0 = x0 + j0 | 0;
- x1 = x1 + j1 | 0;
- x2 = x2 + j2 | 0;
- x3 = x3 + j3 | 0;
- x4 = x4 + j4 | 0;
- x5 = x5 + j5 | 0;
- x6 = x6 + j6 | 0;
- x7 = x7 + j7 | 0;
- x8 = x8 + j8 | 0;
- x9 = x9 + j9 | 0;
- x10 = x10 + j10 | 0;
- x11 = x11 + j11 | 0;
- x12 = x12 + j12 | 0;
- x13 = x13 + j13 | 0;
- x14 = x14 + j14 | 0;
- x15 = x15 + j15 | 0;
-
- o[ 0] = x0 >>> 0 & 0xff;
- o[ 1] = x0 >>> 8 & 0xff;
- o[ 2] = x0 >>> 16 & 0xff;
- o[ 3] = x0 >>> 24 & 0xff;
-
- o[ 4] = x1 >>> 0 & 0xff;
- o[ 5] = x1 >>> 8 & 0xff;
- o[ 6] = x1 >>> 16 & 0xff;
- o[ 7] = x1 >>> 24 & 0xff;
-
- o[ 8] = x2 >>> 0 & 0xff;
- o[ 9] = x2 >>> 8 & 0xff;
- o[10] = x2 >>> 16 & 0xff;
- o[11] = x2 >>> 24 & 0xff;
-
- o[12] = x3 >>> 0 & 0xff;
- o[13] = x3 >>> 8 & 0xff;
- o[14] = x3 >>> 16 & 0xff;
- o[15] = x3 >>> 24 & 0xff;
-
- o[16] = x4 >>> 0 & 0xff;
- o[17] = x4 >>> 8 & 0xff;
- o[18] = x4 >>> 16 & 0xff;
- o[19] = x4 >>> 24 & 0xff;
-
- o[20] = x5 >>> 0 & 0xff;
- o[21] = x5 >>> 8 & 0xff;
- o[22] = x5 >>> 16 & 0xff;
- o[23] = x5 >>> 24 & 0xff;
-
- o[24] = x6 >>> 0 & 0xff;
- o[25] = x6 >>> 8 & 0xff;
- o[26] = x6 >>> 16 & 0xff;
- o[27] = x6 >>> 24 & 0xff;
-
- o[28] = x7 >>> 0 & 0xff;
- o[29] = x7 >>> 8 & 0xff;
- o[30] = x7 >>> 16 & 0xff;
- o[31] = x7 >>> 24 & 0xff;
-
- o[32] = x8 >>> 0 & 0xff;
- o[33] = x8 >>> 8 & 0xff;
- o[34] = x8 >>> 16 & 0xff;
- o[35] = x8 >>> 24 & 0xff;
-
- o[36] = x9 >>> 0 & 0xff;
- o[37] = x9 >>> 8 & 0xff;
- o[38] = x9 >>> 16 & 0xff;
- o[39] = x9 >>> 24 & 0xff;
-
- o[40] = x10 >>> 0 & 0xff;
- o[41] = x10 >>> 8 & 0xff;
- o[42] = x10 >>> 16 & 0xff;
- o[43] = x10 >>> 24 & 0xff;
-
- o[44] = x11 >>> 0 & 0xff;
- o[45] = x11 >>> 8 & 0xff;
- o[46] = x11 >>> 16 & 0xff;
- o[47] = x11 >>> 24 & 0xff;
-
- o[48] = x12 >>> 0 & 0xff;
- o[49] = x12 >>> 8 & 0xff;
- o[50] = x12 >>> 16 & 0xff;
- o[51] = x12 >>> 24 & 0xff;
-
- o[52] = x13 >>> 0 & 0xff;
- o[53] = x13 >>> 8 & 0xff;
- o[54] = x13 >>> 16 & 0xff;
- o[55] = x13 >>> 24 & 0xff;
-
- o[56] = x14 >>> 0 & 0xff;
- o[57] = x14 >>> 8 & 0xff;
- o[58] = x14 >>> 16 & 0xff;
- o[59] = x14 >>> 24 & 0xff;
-
- o[60] = x15 >>> 0 & 0xff;
- o[61] = x15 >>> 8 & 0xff;
- o[62] = x15 >>> 16 & 0xff;
- o[63] = x15 >>> 24 & 0xff;
-}
-
-function core_hsalsa20(o,p,k,c) {
- var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,
- j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,
- j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,
- j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,
- j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,
- j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,
- j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,
- j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,
- j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,
- j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,
- j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,
- j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,
- j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,
- j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,
- j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,
- j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;
-
- var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,
- x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,
- x15 = j15, u;
-
- for (var i = 0; i < 20; i += 2) {
- u = x0 + x12 | 0;
- x4 ^= u<<7 | u>>>(32-7);
- u = x4 + x0 | 0;
- x8 ^= u<<9 | u>>>(32-9);
- u = x8 + x4 | 0;
- x12 ^= u<<13 | u>>>(32-13);
- u = x12 + x8 | 0;
- x0 ^= u<<18 | u>>>(32-18);
-
- u = x5 + x1 | 0;
- x9 ^= u<<7 | u>>>(32-7);
- u = x9 + x5 | 0;
- x13 ^= u<<9 | u>>>(32-9);
- u = x13 + x9 | 0;
- x1 ^= u<<13 | u>>>(32-13);
- u = x1 + x13 | 0;
- x5 ^= u<<18 | u>>>(32-18);
-
- u = x10 + x6 | 0;
- x14 ^= u<<7 | u>>>(32-7);
- u = x14 + x10 | 0;
- x2 ^= u<<9 | u>>>(32-9);
- u = x2 + x14 | 0;
- x6 ^= u<<13 | u>>>(32-13);
- u = x6 + x2 | 0;
- x10 ^= u<<18 | u>>>(32-18);
-
- u = x15 + x11 | 0;
- x3 ^= u<<7 | u>>>(32-7);
- u = x3 + x15 | 0;
- x7 ^= u<<9 | u>>>(32-9);
- u = x7 + x3 | 0;
- x11 ^= u<<13 | u>>>(32-13);
- u = x11 + x7 | 0;
- x15 ^= u<<18 | u>>>(32-18);
-
- u = x0 + x3 | 0;
- x1 ^= u<<7 | u>>>(32-7);
- u = x1 + x0 | 0;
- x2 ^= u<<9 | u>>>(32-9);
- u = x2 + x1 | 0;
- x3 ^= u<<13 | u>>>(32-13);
- u = x3 + x2 | 0;
- x0 ^= u<<18 | u>>>(32-18);
-
- u = x5 + x4 | 0;
- x6 ^= u<<7 | u>>>(32-7);
- u = x6 + x5 | 0;
- x7 ^= u<<9 | u>>>(32-9);
- u = x7 + x6 | 0;
- x4 ^= u<<13 | u>>>(32-13);
- u = x4 + x7 | 0;
- x5 ^= u<<18 | u>>>(32-18);
-
- u = x10 + x9 | 0;
- x11 ^= u<<7 | u>>>(32-7);
- u = x11 + x10 | 0;
- x8 ^= u<<9 | u>>>(32-9);
- u = x8 + x11 | 0;
- x9 ^= u<<13 | u>>>(32-13);
- u = x9 + x8 | 0;
- x10 ^= u<<18 | u>>>(32-18);
-
- u = x15 + x14 | 0;
- x12 ^= u<<7 | u>>>(32-7);
- u = x12 + x15 | 0;
- x13 ^= u<<9 | u>>>(32-9);
- u = x13 + x12 | 0;
- x14 ^= u<<13 | u>>>(32-13);
- u = x14 + x13 | 0;
- x15 ^= u<<18 | u>>>(32-18);
- }
-
- o[ 0] = x0 >>> 0 & 0xff;
- o[ 1] = x0 >>> 8 & 0xff;
- o[ 2] = x0 >>> 16 & 0xff;
- o[ 3] = x0 >>> 24 & 0xff;
-
- o[ 4] = x5 >>> 0 & 0xff;
- o[ 5] = x5 >>> 8 & 0xff;
- o[ 6] = x5 >>> 16 & 0xff;
- o[ 7] = x5 >>> 24 & 0xff;
-
- o[ 8] = x10 >>> 0 & 0xff;
- o[ 9] = x10 >>> 8 & 0xff;
- o[10] = x10 >>> 16 & 0xff;
- o[11] = x10 >>> 24 & 0xff;
-
- o[12] = x15 >>> 0 & 0xff;
- o[13] = x15 >>> 8 & 0xff;
- o[14] = x15 >>> 16 & 0xff;
- o[15] = x15 >>> 24 & 0xff;
-
- o[16] = x6 >>> 0 & 0xff;
- o[17] = x6 >>> 8 & 0xff;
- o[18] = x6 >>> 16 & 0xff;
- o[19] = x6 >>> 24 & 0xff;
-
- o[20] = x7 >>> 0 & 0xff;
- o[21] = x7 >>> 8 & 0xff;
- o[22] = x7 >>> 16 & 0xff;
- o[23] = x7 >>> 24 & 0xff;
-
- o[24] = x8 >>> 0 & 0xff;
- o[25] = x8 >>> 8 & 0xff;
- o[26] = x8 >>> 16 & 0xff;
- o[27] = x8 >>> 24 & 0xff;
-
- o[28] = x9 >>> 0 & 0xff;
- o[29] = x9 >>> 8 & 0xff;
- o[30] = x9 >>> 16 & 0xff;
- o[31] = x9 >>> 24 & 0xff;
-}
-
-function crypto_core_salsa20(out,inp,k,c) {
- core_salsa20(out,inp,k,c);
-}
-
-function crypto_core_hsalsa20(out,inp,k,c) {
- core_hsalsa20(out,inp,k,c);
-}
-
-var sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);
- // "expand 32-byte k"
-
-function crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) {
- var z = new Uint8Array(16), x = new Uint8Array(64);
- var u, i;
- for (i = 0; i < 16; i++) z[i] = 0;
- for (i = 0; i < 8; i++) z[i] = n[i];
- while (b >= 64) {
- crypto_core_salsa20(x,z,k,sigma);
- for (i = 0; i < 64; i++) c[cpos+i] = m[mpos+i] ^ x[i];
- u = 1;
- for (i = 8; i < 16; i++) {
- u = u + (z[i] & 0xff) | 0;
- z[i] = u & 0xff;
- u >>>= 8;
- }
- b -= 64;
- cpos += 64;
- mpos += 64;
- }
- if (b > 0) {
- crypto_core_salsa20(x,z,k,sigma);
- for (i = 0; i < b; i++) c[cpos+i] = m[mpos+i] ^ x[i];
- }
- return 0;
-}
-
-function crypto_stream_salsa20(c,cpos,b,n,k) {
- var z = new Uint8Array(16), x = new Uint8Array(64);
- var u, i;
- for (i = 0; i < 16; i++) z[i] = 0;
- for (i = 0; i < 8; i++) z[i] = n[i];
- while (b >= 64) {
- crypto_core_salsa20(x,z,k,sigma);
- for (i = 0; i < 64; i++) c[cpos+i] = x[i];
- u = 1;
- for (i = 8; i < 16; i++) {
- u = u + (z[i] & 0xff) | 0;
- z[i] = u & 0xff;
- u >>>= 8;
- }
- b -= 64;
- cpos += 64;
- }
- if (b > 0) {
- crypto_core_salsa20(x,z,k,sigma);
- for (i = 0; i < b; i++) c[cpos+i] = x[i];
- }
- return 0;
-}
-
-function crypto_stream(c,cpos,d,n,k) {
- var s = new Uint8Array(32);
- crypto_core_hsalsa20(s,n,k,sigma);
- var sn = new Uint8Array(8);
- for (var i = 0; i < 8; i++) sn[i] = n[i+16];
- return crypto_stream_salsa20(c,cpos,d,sn,s);
-}
-
-function crypto_stream_xor(c,cpos,m,mpos,d,n,k) {
- var s = new Uint8Array(32);
- crypto_core_hsalsa20(s,n,k,sigma);
- var sn = new Uint8Array(8);
- for (var i = 0; i < 8; i++) sn[i] = n[i+16];
- return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s);
-}
-
-/*
-* Port of Andrew Moon's Poly1305-donna-16. Public domain.
-* https://github.com/floodyberry/poly1305-donna
-*/
-
-var poly1305 = function(key) {
- this.buffer = new Uint8Array(16);
- this.r = new Uint16Array(10);
- this.h = new Uint16Array(10);
- this.pad = new Uint16Array(8);
- this.leftover = 0;
- this.fin = 0;
-
- var t0, t1, t2, t3, t4, t5, t6, t7;
-
- t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0 ) & 0x1fff;
- t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;
- t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;
- t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;
- t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;
- this.r[5] = ((t4 >>> 1)) & 0x1ffe;
- t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;
- t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;
- t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;
- this.r[9] = ((t7 >>> 5)) & 0x007f;
-
- this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8;
- this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8;
- this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8;
- this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8;
- this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8;
- this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8;
- this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8;
- this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8;
-};
-
-poly1305.prototype.blocks = function(m, mpos, bytes) {
- var hibit = this.fin ? 0 : (1 << 11);
- var t0, t1, t2, t3, t4, t5, t6, t7, c;
- var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;
-
- var h0 = this.h[0],
- h1 = this.h[1],
- h2 = this.h[2],
- h3 = this.h[3],
- h4 = this.h[4],
- h5 = this.h[5],
- h6 = this.h[6],
- h7 = this.h[7],
- h8 = this.h[8],
- h9 = this.h[9];
-
- var r0 = this.r[0],
- r1 = this.r[1],
- r2 = this.r[2],
- r3 = this.r[3],
- r4 = this.r[4],
- r5 = this.r[5],
- r6 = this.r[6],
- r7 = this.r[7],
- r8 = this.r[8],
- r9 = this.r[9];
-
- while (bytes >= 16) {
- t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0 ) & 0x1fff;
- t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;
- t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;
- t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;
- t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;
- h5 += ((t4 >>> 1)) & 0x1fff;
- t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;
- t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;
- t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;
- h9 += ((t7 >>> 5)) | hibit;
-
- c = 0;
-
- d0 = c;
- d0 += h0 * r0;
- d0 += h1 * (5 * r9);
- d0 += h2 * (5 * r8);
- d0 += h3 * (5 * r7);
- d0 += h4 * (5 * r6);
- c = (d0 >>> 13); d0 &= 0x1fff;
- d0 += h5 * (5 * r5);
- d0 += h6 * (5 * r4);
- d0 += h7 * (5 * r3);
- d0 += h8 * (5 * r2);
- d0 += h9 * (5 * r1);
- c += (d0 >>> 13); d0 &= 0x1fff;
-
- d1 = c;
- d1 += h0 * r1;
- d1 += h1 * r0;
- d1 += h2 * (5 * r9);
- d1 += h3 * (5 * r8);
- d1 += h4 * (5 * r7);
- c = (d1 >>> 13); d1 &= 0x1fff;
- d1 += h5 * (5 * r6);
- d1 += h6 * (5 * r5);
- d1 += h7 * (5 * r4);
- d1 += h8 * (5 * r3);
- d1 += h9 * (5 * r2);
- c += (d1 >>> 13); d1 &= 0x1fff;
-
- d2 = c;
- d2 += h0 * r2;
- d2 += h1 * r1;
- d2 += h2 * r0;
- d2 += h3 * (5 * r9);
- d2 += h4 * (5 * r8);
- c = (d2 >>> 13); d2 &= 0x1fff;
- d2 += h5 * (5 * r7);
- d2 += h6 * (5 * r6);
- d2 += h7 * (5 * r5);
- d2 += h8 * (5 * r4);
- d2 += h9 * (5 * r3);
- c += (d2 >>> 13); d2 &= 0x1fff;
-
- d3 = c;
- d3 += h0 * r3;
- d3 += h1 * r2;
- d3 += h2 * r1;
- d3 += h3 * r0;
- d3 += h4 * (5 * r9);
- c = (d3 >>> 13); d3 &= 0x1fff;
- d3 += h5 * (5 * r8);
- d3 += h6 * (5 * r7);
- d3 += h7 * (5 * r6);
- d3 += h8 * (5 * r5);
- d3 += h9 * (5 * r4);
- c += (d3 >>> 13); d3 &= 0x1fff;
-
- d4 = c;
- d4 += h0 * r4;
- d4 += h1 * r3;
- d4 += h2 * r2;
- d4 += h3 * r1;
- d4 += h4 * r0;
- c = (d4 >>> 13); d4 &= 0x1fff;
- d4 += h5 * (5 * r9);
- d4 += h6 * (5 * r8);
- d4 += h7 * (5 * r7);
- d4 += h8 * (5 * r6);
- d4 += h9 * (5 * r5);
- c += (d4 >>> 13); d4 &= 0x1fff;
-
- d5 = c;
- d5 += h0 * r5;
- d5 += h1 * r4;
- d5 += h2 * r3;
- d5 += h3 * r2;
- d5 += h4 * r1;
- c = (d5 >>> 13); d5 &= 0x1fff;
- d5 += h5 * r0;
- d5 += h6 * (5 * r9);
- d5 += h7 * (5 * r8);
- d5 += h8 * (5 * r7);
- d5 += h9 * (5 * r6);
- c += (d5 >>> 13); d5 &= 0x1fff;
-
- d6 = c;
- d6 += h0 * r6;
- d6 += h1 * r5;
- d6 += h2 * r4;
- d6 += h3 * r3;
- d6 += h4 * r2;
- c = (d6 >>> 13); d6 &= 0x1fff;
- d6 += h5 * r1;
- d6 += h6 * r0;
- d6 += h7 * (5 * r9);
- d6 += h8 * (5 * r8);
- d6 += h9 * (5 * r7);
- c += (d6 >>> 13); d6 &= 0x1fff;
-
- d7 = c;
- d7 += h0 * r7;
- d7 += h1 * r6;
- d7 += h2 * r5;
- d7 += h3 * r4;
- d7 += h4 * r3;
- c = (d7 >>> 13); d7 &= 0x1fff;
- d7 += h5 * r2;
- d7 += h6 * r1;
- d7 += h7 * r0;
- d7 += h8 * (5 * r9);
- d7 += h9 * (5 * r8);
- c += (d7 >>> 13); d7 &= 0x1fff;
-
- d8 = c;
- d8 += h0 * r8;
- d8 += h1 * r7;
- d8 += h2 * r6;
- d8 += h3 * r5;
- d8 += h4 * r4;
- c = (d8 >>> 13); d8 &= 0x1fff;
- d8 += h5 * r3;
- d8 += h6 * r2;
- d8 += h7 * r1;
- d8 += h8 * r0;
- d8 += h9 * (5 * r9);
- c += (d8 >>> 13); d8 &= 0x1fff;
-
- d9 = c;
- d9 += h0 * r9;
- d9 += h1 * r8;
- d9 += h2 * r7;
- d9 += h3 * r6;
- d9 += h4 * r5;
- c = (d9 >>> 13); d9 &= 0x1fff;
- d9 += h5 * r4;
- d9 += h6 * r3;
- d9 += h7 * r2;
- d9 += h8 * r1;
- d9 += h9 * r0;
- c += (d9 >>> 13); d9 &= 0x1fff;
-
- c = (((c << 2) + c)) | 0;
- c = (c + d0) | 0;
- d0 = c & 0x1fff;
- c = (c >>> 13);
- d1 += c;
-
- h0 = d0;
- h1 = d1;
- h2 = d2;
- h3 = d3;
- h4 = d4;
- h5 = d5;
- h6 = d6;
- h7 = d7;
- h8 = d8;
- h9 = d9;
-
- mpos += 16;
- bytes -= 16;
- }
- this.h[0] = h0;
- this.h[1] = h1;
- this.h[2] = h2;
- this.h[3] = h3;
- this.h[4] = h4;
- this.h[5] = h5;
- this.h[6] = h6;
- this.h[7] = h7;
- this.h[8] = h8;
- this.h[9] = h9;
-};
-
-poly1305.prototype.finish = function(mac, macpos) {
- var g = new Uint16Array(10);
- var c, mask, f, i;
-
- if (this.leftover) {
- i = this.leftover;
- this.buffer[i++] = 1;
- for (; i < 16; i++) this.buffer[i] = 0;
- this.fin = 1;
- this.blocks(this.buffer, 0, 16);
- }
-
- c = this.h[1] >>> 13;
- this.h[1] &= 0x1fff;
- for (i = 2; i < 10; i++) {
- this.h[i] += c;
- c = this.h[i] >>> 13;
- this.h[i] &= 0x1fff;
- }
- this.h[0] += (c * 5);
- c = this.h[0] >>> 13;
- this.h[0] &= 0x1fff;
- this.h[1] += c;
- c = this.h[1] >>> 13;
- this.h[1] &= 0x1fff;
- this.h[2] += c;
-
- g[0] = this.h[0] + 5;
- c = g[0] >>> 13;
- g[0] &= 0x1fff;
- for (i = 1; i < 10; i++) {
- g[i] = this.h[i] + c;
- c = g[i] >>> 13;
- g[i] &= 0x1fff;
- }
- g[9] -= (1 << 13);
-
- mask = (c ^ 1) - 1;
- for (i = 0; i < 10; i++) g[i] &= mask;
- mask = ~mask;
- for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i];
-
- this.h[0] = ((this.h[0] ) | (this.h[1] << 13) ) & 0xffff;
- this.h[1] = ((this.h[1] >>> 3) | (this.h[2] << 10) ) & 0xffff;
- this.h[2] = ((this.h[2] >>> 6) | (this.h[3] << 7) ) & 0xffff;
- this.h[3] = ((this.h[3] >>> 9) | (this.h[4] << 4) ) & 0xffff;
- this.h[4] = ((this.h[4] >>> 12) | (this.h[5] << 1) | (this.h[6] << 14)) & 0xffff;
- this.h[5] = ((this.h[6] >>> 2) | (this.h[7] << 11) ) & 0xffff;
- this.h[6] = ((this.h[7] >>> 5) | (this.h[8] << 8) ) & 0xffff;
- this.h[7] = ((this.h[8] >>> 8) | (this.h[9] << 5) ) & 0xffff;
-
- f = this.h[0] + this.pad[0];
- this.h[0] = f & 0xffff;
- for (i = 1; i < 8; i++) {
- f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0;
- this.h[i] = f & 0xffff;
- }
-
- mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff;
- mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff;
- mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff;
- mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff;
- mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff;
- mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff;
- mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff;
- mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff;
- mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff;
- mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff;
- mac[macpos+10] = (this.h[5] >>> 0) & 0xff;
- mac[macpos+11] = (this.h[5] >>> 8) & 0xff;
- mac[macpos+12] = (this.h[6] >>> 0) & 0xff;
- mac[macpos+13] = (this.h[6] >>> 8) & 0xff;
- mac[macpos+14] = (this.h[7] >>> 0) & 0xff;
- mac[macpos+15] = (this.h[7] >>> 8) & 0xff;
-};
-
-poly1305.prototype.update = function(m, mpos, bytes) {
- var i, want;
-
- if (this.leftover) {
- want = (16 - this.leftover);
- if (want > bytes)
- want = bytes;
- for (i = 0; i < want; i++)
- this.buffer[this.leftover + i] = m[mpos+i];
- bytes -= want;
- mpos += want;
- this.leftover += want;
- if (this.leftover < 16)
- return;
- this.blocks(this.buffer, 0, 16);
- this.leftover = 0;
- }
-
- if (bytes >= 16) {
- want = bytes - (bytes % 16);
- this.blocks(m, mpos, want);
- mpos += want;
- bytes -= want;
- }
-
- if (bytes) {
- for (i = 0; i < bytes; i++)
- this.buffer[this.leftover + i] = m[mpos+i];
- this.leftover += bytes;
- }
-};
-
-function crypto_onetimeauth(out, outpos, m, mpos, n, k) {
- var s = new poly1305(k);
- s.update(m, mpos, n);
- s.finish(out, outpos);
- return 0;
-}
-
-function crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {
- var x = new Uint8Array(16);
- crypto_onetimeauth(x,0,m,mpos,n,k);
- return crypto_verify_16(h,hpos,x,0);
-}
-
-function crypto_secretbox(c,m,d,n,k) {
- var i;
- if (d < 32) return -1;
- crypto_stream_xor(c,0,m,0,d,n,k);
- crypto_onetimeauth(c, 16, c, 32, d - 32, c);
- for (i = 0; i < 16; i++) c[i] = 0;
- return 0;
-}
-
-function crypto_secretbox_open(m,c,d,n,k) {
- var i;
- var x = new Uint8Array(32);
- if (d < 32) return -1;
- crypto_stream(x,0,32,n,k);
- if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1;
- crypto_stream_xor(m,0,c,0,d,n,k);
- for (i = 0; i < 32; i++) m[i] = 0;
- return 0;
-}
-
-function set25519(r, a) {
- var i;
- for (i = 0; i < 16; i++) r[i] = a[i]|0;
-}
-
-function car25519(o) {
- var i, v, c = 1;
- for (i = 0; i < 16; i++) {
- v = o[i] + c + 65535;
- c = Math.floor(v / 65536);
- o[i] = v - c * 65536;
- }
- o[0] += c-1 + 37 * (c-1);
-}
-
-function sel25519(p, q, b) {
- var t, c = ~(b-1);
- for (var i = 0; i < 16; i++) {
- t = c & (p[i] ^ q[i]);
- p[i] ^= t;
- q[i] ^= t;
- }
-}
-
-function pack25519(o, n) {
- var i, j, b;
- var m = gf(), t = gf();
- for (i = 0; i < 16; i++) t[i] = n[i];
- car25519(t);
- car25519(t);
- car25519(t);
- for (j = 0; j < 2; j++) {
- m[0] = t[0] - 0xffed;
- for (i = 1; i < 15; i++) {
- m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);
- m[i-1] &= 0xffff;
- }
- m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);
- b = (m[15]>>16) & 1;
- m[14] &= 0xffff;
- sel25519(t, m, 1-b);
- }
- for (i = 0; i < 16; i++) {
- o[2*i] = t[i] & 0xff;
- o[2*i+1] = t[i]>>8;
- }
-}
-
-function neq25519(a, b) {
- var c = new Uint8Array(32), d = new Uint8Array(32);
- pack25519(c, a);
- pack25519(d, b);
- return crypto_verify_32(c, 0, d, 0);
-}
-
-function par25519(a) {
- var d = new Uint8Array(32);
- pack25519(d, a);
- return d[0] & 1;
-}
-
-function unpack25519(o, n) {
- var i;
- for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);
- o[15] &= 0x7fff;
-}
-
-function A(o, a, b) {
- for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];
-}
-
-function Z(o, a, b) {
- for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];
-}
-
-function M(o, a, b) {
- var v, c,
- t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,
- t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,
- t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,
- t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,
- b0 = b[0],
- b1 = b[1],
- b2 = b[2],
- b3 = b[3],
- b4 = b[4],
- b5 = b[5],
- b6 = b[6],
- b7 = b[7],
- b8 = b[8],
- b9 = b[9],
- b10 = b[10],
- b11 = b[11],
- b12 = b[12],
- b13 = b[13],
- b14 = b[14],
- b15 = b[15];
-
- v = a[0];
- t0 += v * b0;
- t1 += v * b1;
- t2 += v * b2;
- t3 += v * b3;
- t4 += v * b4;
- t5 += v * b5;
- t6 += v * b6;
- t7 += v * b7;
- t8 += v * b8;
- t9 += v * b9;
- t10 += v * b10;
- t11 += v * b11;
- t12 += v * b12;
- t13 += v * b13;
- t14 += v * b14;
- t15 += v * b15;
- v = a[1];
- t1 += v * b0;
- t2 += v * b1;
- t3 += v * b2;
- t4 += v * b3;
- t5 += v * b4;
- t6 += v * b5;
- t7 += v * b6;
- t8 += v * b7;
- t9 += v * b8;
- t10 += v * b9;
- t11 += v * b10;
- t12 += v * b11;
- t13 += v * b12;
- t14 += v * b13;
- t15 += v * b14;
- t16 += v * b15;
- v = a[2];
- t2 += v * b0;
- t3 += v * b1;
- t4 += v * b2;
- t5 += v * b3;
- t6 += v * b4;
- t7 += v * b5;
- t8 += v * b6;
- t9 += v * b7;
- t10 += v * b8;
- t11 += v * b9;
- t12 += v * b10;
- t13 += v * b11;
- t14 += v * b12;
- t15 += v * b13;
- t16 += v * b14;
- t17 += v * b15;
- v = a[3];
- t3 += v * b0;
- t4 += v * b1;
- t5 += v * b2;
- t6 += v * b3;
- t7 += v * b4;
- t8 += v * b5;
- t9 += v * b6;
- t10 += v * b7;
- t11 += v * b8;
- t12 += v * b9;
- t13 += v * b10;
- t14 += v * b11;
- t15 += v * b12;
- t16 += v * b13;
- t17 += v * b14;
- t18 += v * b15;
- v = a[4];
- t4 += v * b0;
- t5 += v * b1;
- t6 += v * b2;
- t7 += v * b3;
- t8 += v * b4;
- t9 += v * b5;
- t10 += v * b6;
- t11 += v * b7;
- t12 += v * b8;
- t13 += v * b9;
- t14 += v * b10;
- t15 += v * b11;
- t16 += v * b12;
- t17 += v * b13;
- t18 += v * b14;
- t19 += v * b15;
- v = a[5];
- t5 += v * b0;
- t6 += v * b1;
- t7 += v * b2;
- t8 += v * b3;
- t9 += v * b4;
- t10 += v * b5;
- t11 += v * b6;
- t12 += v * b7;
- t13 += v * b8;
- t14 += v * b9;
- t15 += v * b10;
- t16 += v * b11;
- t17 += v * b12;
- t18 += v * b13;
- t19 += v * b14;
- t20 += v * b15;
- v = a[6];
- t6 += v * b0;
- t7 += v * b1;
- t8 += v * b2;
- t9 += v * b3;
- t10 += v * b4;
- t11 += v * b5;
- t12 += v * b6;
- t13 += v * b7;
- t14 += v * b8;
- t15 += v * b9;
- t16 += v * b10;
- t17 += v * b11;
- t18 += v * b12;
- t19 += v * b13;
- t20 += v * b14;
- t21 += v * b15;
- v = a[7];
- t7 += v * b0;
- t8 += v * b1;
- t9 += v * b2;
- t10 += v * b3;
- t11 += v * b4;
- t12 += v * b5;
- t13 += v * b6;
- t14 += v * b7;
- t15 += v * b8;
- t16 += v * b9;
- t17 += v * b10;
- t18 += v * b11;
- t19 += v * b12;
- t20 += v * b13;
- t21 += v * b14;
- t22 += v * b15;
- v = a[8];
- t8 += v * b0;
- t9 += v * b1;
- t10 += v * b2;
- t11 += v * b3;
- t12 += v * b4;
- t13 += v * b5;
- t14 += v * b6;
- t15 += v * b7;
- t16 += v * b8;
- t17 += v * b9;
- t18 += v * b10;
- t19 += v * b11;
- t20 += v * b12;
- t21 += v * b13;
- t22 += v * b14;
- t23 += v * b15;
- v = a[9];
- t9 += v * b0;
- t10 += v * b1;
- t11 += v * b2;
- t12 += v * b3;
- t13 += v * b4;
- t14 += v * b5;
- t15 += v * b6;
- t16 += v * b7;
- t17 += v * b8;
- t18 += v * b9;
- t19 += v * b10;
- t20 += v * b11;
- t21 += v * b12;
- t22 += v * b13;
- t23 += v * b14;
- t24 += v * b15;
- v = a[10];
- t10 += v * b0;
- t11 += v * b1;
- t12 += v * b2;
- t13 += v * b3;
- t14 += v * b4;
- t15 += v * b5;
- t16 += v * b6;
- t17 += v * b7;
- t18 += v * b8;
- t19 += v * b9;
- t20 += v * b10;
- t21 += v * b11;
- t22 += v * b12;
- t23 += v * b13;
- t24 += v * b14;
- t25 += v * b15;
- v = a[11];
- t11 += v * b0;
- t12 += v * b1;
- t13 += v * b2;
- t14 += v * b3;
- t15 += v * b4;
- t16 += v * b5;
- t17 += v * b6;
- t18 += v * b7;
- t19 += v * b8;
- t20 += v * b9;
- t21 += v * b10;
- t22 += v * b11;
- t23 += v * b12;
- t24 += v * b13;
- t25 += v * b14;
- t26 += v * b15;
- v = a[12];
- t12 += v * b0;
- t13 += v * b1;
- t14 += v * b2;
- t15 += v * b3;
- t16 += v * b4;
- t17 += v * b5;
- t18 += v * b6;
- t19 += v * b7;
- t20 += v * b8;
- t21 += v * b9;
- t22 += v * b10;
- t23 += v * b11;
- t24 += v * b12;
- t25 += v * b13;
- t26 += v * b14;
- t27 += v * b15;
- v = a[13];
- t13 += v * b0;
- t14 += v * b1;
- t15 += v * b2;
- t16 += v * b3;
- t17 += v * b4;
- t18 += v * b5;
- t19 += v * b6;
- t20 += v * b7;
- t21 += v * b8;
- t22 += v * b9;
- t23 += v * b10;
- t24 += v * b11;
- t25 += v * b12;
- t26 += v * b13;
- t27 += v * b14;
- t28 += v * b15;
- v = a[14];
- t14 += v * b0;
- t15 += v * b1;
- t16 += v * b2;
- t17 += v * b3;
- t18 += v * b4;
- t19 += v * b5;
- t20 += v * b6;
- t21 += v * b7;
- t22 += v * b8;
- t23 += v * b9;
- t24 += v * b10;
- t25 += v * b11;
- t26 += v * b12;
- t27 += v * b13;
- t28 += v * b14;
- t29 += v * b15;
- v = a[15];
- t15 += v * b0;
- t16 += v * b1;
- t17 += v * b2;
- t18 += v * b3;
- t19 += v * b4;
- t20 += v * b5;
- t21 += v * b6;
- t22 += v * b7;
- t23 += v * b8;
- t24 += v * b9;
- t25 += v * b10;
- t26 += v * b11;
- t27 += v * b12;
- t28 += v * b13;
- t29 += v * b14;
- t30 += v * b15;
-
- t0 += 38 * t16;
- t1 += 38 * t17;
- t2 += 38 * t18;
- t3 += 38 * t19;
- t4 += 38 * t20;
- t5 += 38 * t21;
- t6 += 38 * t22;
- t7 += 38 * t23;
- t8 += 38 * t24;
- t9 += 38 * t25;
- t10 += 38 * t26;
- t11 += 38 * t27;
- t12 += 38 * t28;
- t13 += 38 * t29;
- t14 += 38 * t30;
- // t15 left as is
-
- // first car
- c = 1;
- v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;
- v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;
- v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;
- v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;
- v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;
- v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;
- v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;
- v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;
- v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;
- v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;
- v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;
- v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;
- v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;
- v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;
- v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;
- v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;
- t0 += c-1 + 37 * (c-1);
-
- // second car
- c = 1;
- v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;
- v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;
- v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;
- v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;
- v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;
- v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;
- v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;
- v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;
- v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;
- v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;
- v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;
- v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;
- v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;
- v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;
- v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;
- v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;
- t0 += c-1 + 37 * (c-1);
-
- o[ 0] = t0;
- o[ 1] = t1;
- o[ 2] = t2;
- o[ 3] = t3;
- o[ 4] = t4;
- o[ 5] = t5;
- o[ 6] = t6;
- o[ 7] = t7;
- o[ 8] = t8;
- o[ 9] = t9;
- o[10] = t10;
- o[11] = t11;
- o[12] = t12;
- o[13] = t13;
- o[14] = t14;
- o[15] = t15;
-}
-
-function S(o, a) {
- M(o, a, a);
-}
-
-function inv25519(o, i) {
- var c = gf();
- var a;
- for (a = 0; a < 16; a++) c[a] = i[a];
- for (a = 253; a >= 0; a--) {
- S(c, c);
- if(a !== 2 && a !== 4) M(c, c, i);
- }
- for (a = 0; a < 16; a++) o[a] = c[a];
-}
-
-function pow2523(o, i) {
- var c = gf();
- var a;
- for (a = 0; a < 16; a++) c[a] = i[a];
- for (a = 250; a >= 0; a--) {
- S(c, c);
- if(a !== 1) M(c, c, i);
- }
- for (a = 0; a < 16; a++) o[a] = c[a];
-}
-
-function crypto_scalarmult(q, n, p) {
- var z = new Uint8Array(32);
- var x = new Float64Array(80), r, i;
- var a = gf(), b = gf(), c = gf(),
- d = gf(), e = gf(), f = gf();
- for (i = 0; i < 31; i++) z[i] = n[i];
- z[31]=(n[31]&127)|64;
- z[0]&=248;
- unpack25519(x,p);
- for (i = 0; i < 16; i++) {
- b[i]=x[i];
- d[i]=a[i]=c[i]=0;
- }
- a[0]=d[0]=1;
- for (i=254; i>=0; --i) {
- r=(z[i>>>3]>>>(i&7))&1;
- sel25519(a,b,r);
- sel25519(c,d,r);
- A(e,a,c);
- Z(a,a,c);
- A(c,b,d);
- Z(b,b,d);
- S(d,e);
- S(f,a);
- M(a,c,a);
- M(c,b,e);
- A(e,a,c);
- Z(a,a,c);
- S(b,a);
- Z(c,d,f);
- M(a,c,_121665);
- A(a,a,d);
- M(c,c,a);
- M(a,d,f);
- M(d,b,x);
- S(b,e);
- sel25519(a,b,r);
- sel25519(c,d,r);
- }
- for (i = 0; i < 16; i++) {
- x[i+16]=a[i];
- x[i+32]=c[i];
- x[i+48]=b[i];
- x[i+64]=d[i];
- }
- var x32 = x.subarray(32);
- var x16 = x.subarray(16);
- inv25519(x32,x32);
- M(x16,x16,x32);
- pack25519(q,x16);
- return 0;
-}
-
-function crypto_scalarmult_base(q, n) {
- return crypto_scalarmult(q, n, _9);
-}
-
-function crypto_box_keypair(y, x) {
- randombytes(x, 32);
- return crypto_scalarmult_base(y, x);
-}
-
-function crypto_box_beforenm(k, y, x) {
- var s = new Uint8Array(32);
- crypto_scalarmult(s, x, y);
- return crypto_core_hsalsa20(k, _0, s, sigma);
-}
-
-var crypto_box_afternm = crypto_secretbox;
-var crypto_box_open_afternm = crypto_secretbox_open;
-
-function crypto_box(c, m, d, n, y, x) {
- var k = new Uint8Array(32);
- crypto_box_beforenm(k, y, x);
- return crypto_box_afternm(c, m, d, n, k);
-}
-
-function crypto_box_open(m, c, d, n, y, x) {
- var k = new Uint8Array(32);
- crypto_box_beforenm(k, y, x);
- return crypto_box_open_afternm(m, c, d, n, k);
-}
-
-var K = [
- 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,
- 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,
- 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,
- 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,
- 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,
- 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,
- 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,
- 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,
- 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,
- 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,
- 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,
- 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,
- 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,
- 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,
- 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,
- 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,
- 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,
- 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,
- 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,
- 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,
- 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,
- 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,
- 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,
- 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,
- 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,
- 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,
- 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,
- 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,
- 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,
- 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,
- 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,
- 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,
- 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,
- 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,
- 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,
- 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,
- 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,
- 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,
- 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,
- 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817
-];
-
-function crypto_hashblocks_hl(hh, hl, m, n) {
- var wh = new Int32Array(16), wl = new Int32Array(16),
- bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,
- bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,
- th, tl, i, j, h, l, a, b, c, d;
-
- var ah0 = hh[0],
- ah1 = hh[1],
- ah2 = hh[2],
- ah3 = hh[3],
- ah4 = hh[4],
- ah5 = hh[5],
- ah6 = hh[6],
- ah7 = hh[7],
-
- al0 = hl[0],
- al1 = hl[1],
- al2 = hl[2],
- al3 = hl[3],
- al4 = hl[4],
- al5 = hl[5],
- al6 = hl[6],
- al7 = hl[7];
-
- var pos = 0;
- while (n >= 128) {
- for (i = 0; i < 16; i++) {
- j = 8 * i + pos;
- wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];
- wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];
- }
- for (i = 0; i < 80; i++) {
- bh0 = ah0;
- bh1 = ah1;
- bh2 = ah2;
- bh3 = ah3;
- bh4 = ah4;
- bh5 = ah5;
- bh6 = ah6;
- bh7 = ah7;
-
- bl0 = al0;
- bl1 = al1;
- bl2 = al2;
- bl3 = al3;
- bl4 = al4;
- bl5 = al5;
- bl6 = al6;
- bl7 = al7;
-
- // add
- h = ah7;
- l = al7;
-
- a = l & 0xffff; b = l >>> 16;
- c = h & 0xffff; d = h >>> 16;
-
- // Sigma1
- h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));
- l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));
-
- a += l & 0xffff; b += l >>> 16;
- c += h & 0xffff; d += h >>> 16;
-
- // Ch
- h = (ah4 & ah5) ^ (~ah4 & ah6);
- l = (al4 & al5) ^ (~al4 & al6);
-
- a += l & 0xffff; b += l >>> 16;
- c += h & 0xffff; d += h >>> 16;
-
- // K
- h = K[i*2];
- l = K[i*2+1];
-
- a += l & 0xffff; b += l >>> 16;
- c += h & 0xffff; d += h >>> 16;
-
- // w
- h = wh[i%16];
- l = wl[i%16];
-
- a += l & 0xffff; b += l >>> 16;
- c += h & 0xffff; d += h >>> 16;
-
- b += a >>> 16;
- c += b >>> 16;
- d += c >>> 16;
-
- th = c & 0xffff | d << 16;
- tl = a & 0xffff | b << 16;
-
- // add
- h = th;
- l = tl;
-
- a = l & 0xffff; b = l >>> 16;
- c = h & 0xffff; d = h >>> 16;
-
- // Sigma0
- h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));
- l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));
-
- a += l & 0xffff; b += l >>> 16;
- c += h & 0xffff; d += h >>> 16;
-
- // Maj
- h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);
- l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);
-
- a += l & 0xffff; b += l >>> 16;
- c += h & 0xffff; d += h >>> 16;
-
- b += a >>> 16;
- c += b >>> 16;
- d += c >>> 16;
-
- bh7 = (c & 0xffff) | (d << 16);
- bl7 = (a & 0xffff) | (b << 16);
-
- // add
- h = bh3;
- l = bl3;
-
- a = l & 0xffff; b = l >>> 16;
- c = h & 0xffff; d = h >>> 16;
-
- h = th;
- l = tl;
-
- a += l & 0xffff; b += l >>> 16;
- c += h & 0xffff; d += h >>> 16;
-
- b += a >>> 16;
- c += b >>> 16;
- d += c >>> 16;
-
- bh3 = (c & 0xffff) | (d << 16);
- bl3 = (a & 0xffff) | (b << 16);
-
- ah1 = bh0;
- ah2 = bh1;
- ah3 = bh2;
- ah4 = bh3;
- ah5 = bh4;
- ah6 = bh5;
- ah7 = bh6;
- ah0 = bh7;
-
- al1 = bl0;
- al2 = bl1;
- al3 = bl2;
- al4 = bl3;
- al5 = bl4;
- al6 = bl5;
- al7 = bl6;
- al0 = bl7;
-
- if (i%16 === 15) {
- for (j = 0; j < 16; j++) {
- // add
- h = wh[j];
- l = wl[j];
-
- a = l & 0xffff; b = l >>> 16;
- c = h & 0xffff; d = h >>> 16;
-
- h = wh[(j+9)%16];
- l = wl[(j+9)%16];
-
- a += l & 0xffff; b += l >>> 16;
- c += h & 0xffff; d += h >>> 16;
-
- // sigma0
- th = wh[(j+1)%16];
- tl = wl[(j+1)%16];
- h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);
- l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));
-
- a += l & 0xffff; b += l >>> 16;
- c += h & 0xffff; d += h >>> 16;
-
- // sigma1
- th = wh[(j+14)%16];
- tl = wl[(j+14)%16];
- h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);
- l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));
-
- a += l & 0xffff; b += l >>> 16;
- c += h & 0xffff; d += h >>> 16;
-
- b += a >>> 16;
- c += b >>> 16;
- d += c >>> 16;
-
- wh[j] = (c & 0xffff) | (d << 16);
- wl[j] = (a & 0xffff) | (b << 16);
- }
- }
- }
-
- // add
- h = ah0;
- l = al0;
-
- a = l & 0xffff; b = l >>> 16;
- c = h & 0xffff; d = h >>> 16;
-
- h = hh[0];
- l = hl[0];
-
- a += l & 0xffff; b += l >>> 16;
- c += h & 0xffff; d += h >>> 16;
-
- b += a >>> 16;
- c += b >>> 16;
- d += c >>> 16;
-
- hh[0] = ah0 = (c & 0xffff) | (d << 16);
- hl[0] = al0 = (a & 0xffff) | (b << 16);
-
- h = ah1;
- l = al1;
-
- a = l & 0xffff; b = l >>> 16;
- c = h & 0xffff; d = h >>> 16;
-
- h = hh[1];
- l = hl[1];
-
- a += l & 0xffff; b += l >>> 16;
- c += h & 0xffff; d += h >>> 16;
-
- b += a >>> 16;
- c += b >>> 16;
- d += c >>> 16;
-
- hh[1] = ah1 = (c & 0xffff) | (d << 16);
- hl[1] = al1 = (a & 0xffff) | (b << 16);
-
- h = ah2;
- l = al2;
-
- a = l & 0xffff; b = l >>> 16;
- c = h & 0xffff; d = h >>> 16;
-
- h = hh[2];
- l = hl[2];
-
- a += l & 0xffff; b += l >>> 16;
- c += h & 0xffff; d += h >>> 16;
-
- b += a >>> 16;
- c += b >>> 16;
- d += c >>> 16;
-
- hh[2] = ah2 = (c & 0xffff) | (d << 16);
- hl[2] = al2 = (a & 0xffff) | (b << 16);
-
- h = ah3;
- l = al3;
-
- a = l & 0xffff; b = l >>> 16;
- c = h & 0xffff; d = h >>> 16;
-
- h = hh[3];
- l = hl[3];
-
- a += l & 0xffff; b += l >>> 16;
- c += h & 0xffff; d += h >>> 16;
-
- b += a >>> 16;
- c += b >>> 16;
- d += c >>> 16;
-
- hh[3] = ah3 = (c & 0xffff) | (d << 16);
- hl[3] = al3 = (a & 0xffff) | (b << 16);
-
- h = ah4;
- l = al4;
-
- a = l & 0xffff; b = l >>> 16;
- c = h & 0xffff; d = h >>> 16;
-
- h = hh[4];
- l = hl[4];
-
- a += l & 0xffff; b += l >>> 16;
- c += h & 0xffff; d += h >>> 16;
-
- b += a >>> 16;
- c += b >>> 16;
- d += c >>> 16;
-
- hh[4] = ah4 = (c & 0xffff) | (d << 16);
- hl[4] = al4 = (a & 0xffff) | (b << 16);
-
- h = ah5;
- l = al5;
-
- a = l & 0xffff; b = l >>> 16;
- c = h & 0xffff; d = h >>> 16;
-
- h = hh[5];
- l = hl[5];
-
- a += l & 0xffff; b += l >>> 16;
- c += h & 0xffff; d += h >>> 16;
-
- b += a >>> 16;
- c += b >>> 16;
- d += c >>> 16;
-
- hh[5] = ah5 = (c & 0xffff) | (d << 16);
- hl[5] = al5 = (a & 0xffff) | (b << 16);
-
- h = ah6;
- l = al6;
-
- a = l & 0xffff; b = l >>> 16;
- c = h & 0xffff; d = h >>> 16;
-
- h = hh[6];
- l = hl[6];
-
- a += l & 0xffff; b += l >>> 16;
- c += h & 0xffff; d += h >>> 16;
-
- b += a >>> 16;
- c += b >>> 16;
- d += c >>> 16;
-
- hh[6] = ah6 = (c & 0xffff) | (d << 16);
- hl[6] = al6 = (a & 0xffff) | (b << 16);
-
- h = ah7;
- l = al7;
-
- a = l & 0xffff; b = l >>> 16;
- c = h & 0xffff; d = h >>> 16;
-
- h = hh[7];
- l = hl[7];
-
- a += l & 0xffff; b += l >>> 16;
- c += h & 0xffff; d += h >>> 16;
-
- b += a >>> 16;
- c += b >>> 16;
- d += c >>> 16;
-
- hh[7] = ah7 = (c & 0xffff) | (d << 16);
- hl[7] = al7 = (a & 0xffff) | (b << 16);
-
- pos += 128;
- n -= 128;
- }
-
- return n;
-}
-
-function crypto_hash(out, m, n) {
- var hh = new Int32Array(8),
- hl = new Int32Array(8),
- x = new Uint8Array(256),
- i, b = n;
-
- hh[0] = 0x6a09e667;
- hh[1] = 0xbb67ae85;
- hh[2] = 0x3c6ef372;
- hh[3] = 0xa54ff53a;
- hh[4] = 0x510e527f;
- hh[5] = 0x9b05688c;
- hh[6] = 0x1f83d9ab;
- hh[7] = 0x5be0cd19;
-
- hl[0] = 0xf3bcc908;
- hl[1] = 0x84caa73b;
- hl[2] = 0xfe94f82b;
- hl[3] = 0x5f1d36f1;
- hl[4] = 0xade682d1;
- hl[5] = 0x2b3e6c1f;
- hl[6] = 0xfb41bd6b;
- hl[7] = 0x137e2179;
-
- crypto_hashblocks_hl(hh, hl, m, n);
- n %= 128;
-
- for (i = 0; i < n; i++) x[i] = m[b-n+i];
- x[n] = 128;
-
- n = 256-128*(n<112?1:0);
- x[n-9] = 0;
- ts64(x, n-8, (b / 0x20000000) | 0, b << 3);
- crypto_hashblocks_hl(hh, hl, x, n);
-
- for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);
-
- return 0;
-}
-
-function add(p, q) {
- var a = gf(), b = gf(), c = gf(),
- d = gf(), e = gf(), f = gf(),
- g = gf(), h = gf(), t = gf();
-
- Z(a, p[1], p[0]);
- Z(t, q[1], q[0]);
- M(a, a, t);
- A(b, p[0], p[1]);
- A(t, q[0], q[1]);
- M(b, b, t);
- M(c, p[3], q[3]);
- M(c, c, D2);
- M(d, p[2], q[2]);
- A(d, d, d);
- Z(e, b, a);
- Z(f, d, c);
- A(g, d, c);
- A(h, b, a);
-
- M(p[0], e, f);
- M(p[1], h, g);
- M(p[2], g, f);
- M(p[3], e, h);
-}
-
-function cswap(p, q, b) {
- var i;
- for (i = 0; i < 4; i++) {
- sel25519(p[i], q[i], b);
- }
-}
-
-function pack(r, p) {
- var tx = gf(), ty = gf(), zi = gf();
- inv25519(zi, p[2]);
- M(tx, p[0], zi);
- M(ty, p[1], zi);
- pack25519(r, ty);
- r[31] ^= par25519(tx) << 7;
-}
-
-function scalarmult(p, q, s) {
- var b, i;
- set25519(p[0], gf0);
- set25519(p[1], gf1);
- set25519(p[2], gf1);
- set25519(p[3], gf0);
- for (i = 255; i >= 0; --i) {
- b = (s[(i/8)|0] >> (i&7)) & 1;
- cswap(p, q, b);
- add(q, p);
- add(p, p);
- cswap(p, q, b);
- }
-}
-
-function scalarbase(p, s) {
- var q = [gf(), gf(), gf(), gf()];
- set25519(q[0], X);
- set25519(q[1], Y);
- set25519(q[2], gf1);
- M(q[3], X, Y);
- scalarmult(p, q, s);
-}
-
-function crypto_sign_keypair(pk, sk, seeded) {
- var d = new Uint8Array(64);
- var p = [gf(), gf(), gf(), gf()];
- var i;
-
- if (!seeded) randombytes(sk, 32);
- crypto_hash(d, sk, 32);
- d[0] &= 248;
- d[31] &= 127;
- d[31] |= 64;
-
- scalarbase(p, d);
- pack(pk, p);
-
- for (i = 0; i < 32; i++) sk[i+32] = pk[i];
- return 0;
-}
-
-var L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);
-
-function modL(r, x) {
- var carry, i, j, k;
- for (i = 63; i >= 32; --i) {
- carry = 0;
- for (j = i - 32, k = i - 12; j < k; ++j) {
- x[j] += carry - 16 * x[i] * L[j - (i - 32)];
- carry = (x[j] + 128) >> 8;
- x[j] -= carry * 256;
- }
- x[j] += carry;
- x[i] = 0;
- }
- carry = 0;
- for (j = 0; j < 32; j++) {
- x[j] += carry - (x[31] >> 4) * L[j];
- carry = x[j] >> 8;
- x[j] &= 255;
- }
- for (j = 0; j < 32; j++) x[j] -= carry * L[j];
- for (i = 0; i < 32; i++) {
- x[i+1] += x[i] >> 8;
- r[i] = x[i] & 255;
- }
-}
-
-function reduce(r) {
- var x = new Float64Array(64), i;
- for (i = 0; i < 64; i++) x[i] = r[i];
- for (i = 0; i < 64; i++) r[i] = 0;
- modL(r, x);
-}
-
-// Note: difference from C - smlen returned, not passed as argument.
-function crypto_sign(sm, m, n, sk) {
- var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);
- var i, j, x = new Float64Array(64);
- var p = [gf(), gf(), gf(), gf()];
-
- crypto_hash(d, sk, 32);
- d[0] &= 248;
- d[31] &= 127;
- d[31] |= 64;
-
- var smlen = n + 64;
- for (i = 0; i < n; i++) sm[64 + i] = m[i];
- for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];
-
- crypto_hash(r, sm.subarray(32), n+32);
- reduce(r);
- scalarbase(p, r);
- pack(sm, p);
-
- for (i = 32; i < 64; i++) sm[i] = sk[i];
- crypto_hash(h, sm, n + 64);
- reduce(h);
-
- for (i = 0; i < 64; i++) x[i] = 0;
- for (i = 0; i < 32; i++) x[i] = r[i];
- for (i = 0; i < 32; i++) {
- for (j = 0; j < 32; j++) {
- x[i+j] += h[i] * d[j];
- }
- }
-
- modL(sm.subarray(32), x);
- return smlen;
-}
-
-function unpackneg(r, p) {
- var t = gf(), chk = gf(), num = gf(),
- den = gf(), den2 = gf(), den4 = gf(),
- den6 = gf();
-
- set25519(r[2], gf1);
- unpack25519(r[1], p);
- S(num, r[1]);
- M(den, num, D);
- Z(num, num, r[2]);
- A(den, r[2], den);
-
- S(den2, den);
- S(den4, den2);
- M(den6, den4, den2);
- M(t, den6, num);
- M(t, t, den);
-
- pow2523(t, t);
- M(t, t, num);
- M(t, t, den);
- M(t, t, den);
- M(r[0], t, den);
-
- S(chk, r[0]);
- M(chk, chk, den);
- if (neq25519(chk, num)) M(r[0], r[0], I);
-
- S(chk, r[0]);
- M(chk, chk, den);
- if (neq25519(chk, num)) return -1;
-
- if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);
-
- M(r[3], r[0], r[1]);
- return 0;
-}
-
-function crypto_sign_open(m, sm, n, pk) {
- var i, mlen;
- var t = new Uint8Array(32), h = new Uint8Array(64);
- var p = [gf(), gf(), gf(), gf()],
- q = [gf(), gf(), gf(), gf()];
-
- mlen = -1;
- if (n < 64) return -1;
-
- if (unpackneg(q, pk)) return -1;
-
- for (i = 0; i < n; i++) m[i] = sm[i];
- for (i = 0; i < 32; i++) m[i+32] = pk[i];
- crypto_hash(h, m, n);
- reduce(h);
- scalarmult(p, q, h);
-
- scalarbase(q, sm.subarray(32));
- add(p, q);
- pack(t, p);
-
- n -= 64;
- if (crypto_verify_32(sm, 0, t, 0)) {
- for (i = 0; i < n; i++) m[i] = 0;
- return -1;
- }
-
- for (i = 0; i < n; i++) m[i] = sm[i + 64];
- mlen = n;
- return mlen;
-}
-
-var crypto_secretbox_KEYBYTES = 32,
- crypto_secretbox_NONCEBYTES = 24,
- crypto_secretbox_ZEROBYTES = 32,
- crypto_secretbox_BOXZEROBYTES = 16,
- crypto_scalarmult_BYTES = 32,
- crypto_scalarmult_SCALARBYTES = 32,
- crypto_box_PUBLICKEYBYTES = 32,
- crypto_box_SECRETKEYBYTES = 32,
- crypto_box_BEFORENMBYTES = 32,
- crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES,
- crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES,
- crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES,
- crypto_sign_BYTES = 64,
- crypto_sign_PUBLICKEYBYTES = 32,
- crypto_sign_SECRETKEYBYTES = 64,
- crypto_sign_SEEDBYTES = 32,
- crypto_hash_BYTES = 64;
-
-nacl.lowlevel = {
- crypto_core_hsalsa20: crypto_core_hsalsa20,
- crypto_stream_xor: crypto_stream_xor,
- crypto_stream: crypto_stream,
- crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,
- crypto_stream_salsa20: crypto_stream_salsa20,
- crypto_onetimeauth: crypto_onetimeauth,
- crypto_onetimeauth_verify: crypto_onetimeauth_verify,
- crypto_verify_16: crypto_verify_16,
- crypto_verify_32: crypto_verify_32,
- crypto_secretbox: crypto_secretbox,
- crypto_secretbox_open: crypto_secretbox_open,
- crypto_scalarmult: crypto_scalarmult,
- crypto_scalarmult_base: crypto_scalarmult_base,
- crypto_box_beforenm: crypto_box_beforenm,
- crypto_box_afternm: crypto_box_afternm,
- crypto_box: crypto_box,
- crypto_box_open: crypto_box_open,
- crypto_box_keypair: crypto_box_keypair,
- crypto_hash: crypto_hash,
- crypto_sign: crypto_sign,
- crypto_sign_keypair: crypto_sign_keypair,
- crypto_sign_open: crypto_sign_open,
-
- crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,
- crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,
- crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,
- crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,
- crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,
- crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,
- crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,
- crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,
- crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,
- crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,
- crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,
- crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,
- crypto_sign_BYTES: crypto_sign_BYTES,
- crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,
- crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,
- crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,
- crypto_hash_BYTES: crypto_hash_BYTES
-};
-
-/* High-level API */
-
-function checkLengths(k, n) {
- if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');
- if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');
-}
-
-function checkBoxLengths(pk, sk) {
- if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');
- if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');
-}
-
-function checkArrayTypes() {
- var t, i;
- for (i = 0; i < arguments.length; i++) {
- if ((t = Object.prototype.toString.call(arguments[i])) !== '[object Uint8Array]')
- throw new TypeError('unexpected type ' + t + ', use Uint8Array');
- }
-}
-
-function cleanup(arr) {
- for (var i = 0; i < arr.length; i++) arr[i] = 0;
-}
-
-// TODO: Completely remove this in v0.15.
-if (!nacl.util) {
- nacl.util = {};
- nacl.util.decodeUTF8 = nacl.util.encodeUTF8 = nacl.util.encodeBase64 = nacl.util.decodeBase64 = function() {
- throw new Error('nacl.util moved into separate package: https://github.com/dchest/tweetnacl-util-js');
- };
-}
-
-nacl.randomBytes = function(n) {
- var b = new Uint8Array(n);
- randombytes(b, n);
- return b;
-};
-
-nacl.secretbox = function(msg, nonce, key) {
- checkArrayTypes(msg, nonce, key);
- checkLengths(key, nonce);
- var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);
- var c = new Uint8Array(m.length);
- for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i];
- crypto_secretbox(c, m, m.length, nonce, key);
- return c.subarray(crypto_secretbox_BOXZEROBYTES);
-};
-
-nacl.secretbox.open = function(box, nonce, key) {
- checkArrayTypes(box, nonce, key);
- checkLengths(key, nonce);
- var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);
- var m = new Uint8Array(c.length);
- for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i];
- if (c.length < 32) return false;
- if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return false;
- return m.subarray(crypto_secretbox_ZEROBYTES);
-};
-
-nacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;
-nacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;
-nacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;
-
-nacl.scalarMult = function(n, p) {
- checkArrayTypes(n, p);
- if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');
- if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');
- var q = new Uint8Array(crypto_scalarmult_BYTES);
- crypto_scalarmult(q, n, p);
- return q;
-};
-
-nacl.scalarMult.base = function(n) {
- checkArrayTypes(n);
- if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');
- var q = new Uint8Array(crypto_scalarmult_BYTES);
- crypto_scalarmult_base(q, n);
- return q;
-};
-
-nacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;
-nacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;
-
-nacl.box = function(msg, nonce, publicKey, secretKey) {
- var k = nacl.box.before(publicKey, secretKey);
- return nacl.secretbox(msg, nonce, k);
-};
-
-nacl.box.before = function(publicKey, secretKey) {
- checkArrayTypes(publicKey, secretKey);
- checkBoxLengths(publicKey, secretKey);
- var k = new Uint8Array(crypto_box_BEFORENMBYTES);
- crypto_box_beforenm(k, publicKey, secretKey);
- return k;
-};
-
-nacl.box.after = nacl.secretbox;
-
-nacl.box.open = function(msg, nonce, publicKey, secretKey) {
- var k = nacl.box.before(publicKey, secretKey);
- return nacl.secretbox.open(msg, nonce, k);
-};
-
-nacl.box.open.after = nacl.secretbox.open;
-
-nacl.box.keyPair = function() {
- var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);
- var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);
- crypto_box_keypair(pk, sk);
- return {publicKey: pk, secretKey: sk};
-};
-
-nacl.box.keyPair.fromSecretKey = function(secretKey) {
- checkArrayTypes(secretKey);
- if (secretKey.length !== crypto_box_SECRETKEYBYTES)
- throw new Error('bad secret key size');
- var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);
- crypto_scalarmult_base(pk, secretKey);
- return {publicKey: pk, secretKey: new Uint8Array(secretKey)};
-};
-
-nacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;
-nacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;
-nacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;
-nacl.box.nonceLength = crypto_box_NONCEBYTES;
-nacl.box.overheadLength = nacl.secretbox.overheadLength;
-
-nacl.sign = function(msg, secretKey) {
- checkArrayTypes(msg, secretKey);
- if (secretKey.length !== crypto_sign_SECRETKEYBYTES)
- throw new Error('bad secret key size');
- var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);
- crypto_sign(signedMsg, msg, msg.length, secretKey);
- return signedMsg;
-};
-
-nacl.sign.open = function(signedMsg, publicKey) {
- if (arguments.length !== 2)
- throw new Error('nacl.sign.open accepts 2 arguments; did you mean to use nacl.sign.detached.verify?');
- checkArrayTypes(signedMsg, publicKey);
- if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)
- throw new Error('bad public key size');
- var tmp = new Uint8Array(signedMsg.length);
- var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);
- if (mlen < 0) return null;
- var m = new Uint8Array(mlen);
- for (var i = 0; i < m.length; i++) m[i] = tmp[i];
- return m;
-};
-
-nacl.sign.detached = function(msg, secretKey) {
- var signedMsg = nacl.sign(msg, secretKey);
- var sig = new Uint8Array(crypto_sign_BYTES);
- for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];
- return sig;
-};
-
-nacl.sign.detached.verify = function(msg, sig, publicKey) {
- checkArrayTypes(msg, sig, publicKey);
- if (sig.length !== crypto_sign_BYTES)
- throw new Error('bad signature size');
- if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)
- throw new Error('bad public key size');
- var sm = new Uint8Array(crypto_sign_BYTES + msg.length);
- var m = new Uint8Array(crypto_sign_BYTES + msg.length);
- var i;
- for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];
- for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];
- return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);
-};
-
-nacl.sign.keyPair = function() {
- var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);
- var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);
- crypto_sign_keypair(pk, sk);
- return {publicKey: pk, secretKey: sk};
-};
-
-nacl.sign.keyPair.fromSecretKey = function(secretKey) {
- checkArrayTypes(secretKey);
- if (secretKey.length !== crypto_sign_SECRETKEYBYTES)
- throw new Error('bad secret key size');
- var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);
- for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];
- return {publicKey: pk, secretKey: new Uint8Array(secretKey)};
-};
-
-nacl.sign.keyPair.fromSeed = function(seed) {
- checkArrayTypes(seed);
- if (seed.length !== crypto_sign_SEEDBYTES)
- throw new Error('bad seed size');
- var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);
- var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);
- for (var i = 0; i < 32; i++) sk[i] = seed[i];
- crypto_sign_keypair(pk, sk, true);
- return {publicKey: pk, secretKey: sk};
-};
-
-nacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;
-nacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;
-nacl.sign.seedLength = crypto_sign_SEEDBYTES;
-nacl.sign.signatureLength = crypto_sign_BYTES;
-
-nacl.hash = function(msg) {
- checkArrayTypes(msg);
- var h = new Uint8Array(crypto_hash_BYTES);
- crypto_hash(h, msg, msg.length);
- return h;
-};
-
-nacl.hash.hashLength = crypto_hash_BYTES;
-
-nacl.verify = function(x, y) {
- checkArrayTypes(x, y);
- // Zero length arguments are considered not equal.
- if (x.length === 0 || y.length === 0) return false;
- if (x.length !== y.length) return false;
- return (vn(x, 0, y, 0, x.length) === 0) ? true : false;
-};
-
-nacl.setPRNG = function(fn) {
- randombytes = fn;
-};
-
-(function() {
- // Initialize PRNG if environment provides CSPRNG.
- // If not, methods calling randombytes will throw.
- var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null;
- if (crypto && crypto.getRandomValues) {
- // Browsers.
- var QUOTA = 65536;
- nacl.setPRNG(function(x, n) {
- var i, v = new Uint8Array(n);
- for (i = 0; i < n; i += QUOTA) {
- crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));
- }
- for (i = 0; i < n; i++) x[i] = v[i];
- cleanup(v);
- });
- } else if (typeof require !== 'undefined') {
- // Node.js.
- crypto = require('crypto');
- if (crypto && crypto.randomBytes) {
- nacl.setPRNG(function(x, n) {
- var i, v = crypto.randomBytes(n);
- for (i = 0; i < n; i++) x[i] = v[i];
- cleanup(v);
- });
- }
- }
-})();
-
-})(typeof module !== 'undefined' && module.exports ? module.exports : (self.nacl = self.nacl || {}));
diff --git a/deps/npm/node_modules/tweetnacl/nacl-fast.min.js b/deps/npm/node_modules/tweetnacl/nacl-fast.min.js
deleted file mode 100644
index 8bc47daa036..00000000000
--- a/deps/npm/node_modules/tweetnacl/nacl-fast.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-!function(r){"use strict";function t(r,t,n,e){r[t]=n>>24&255,r[t+1]=n>>16&255,r[t+2]=n>>8&255,r[t+3]=255&n,r[t+4]=e>>24&255,r[t+5]=e>>16&255,r[t+6]=e>>8&255,r[t+7]=255&e}function n(r,t,n,e,o){var i,h=0;for(i=0;i<o;i++)h|=r[t+i]^n[e+i];return(1&h-1>>>8)-1}function e(r,t,e,o){return n(r,t,e,o,16)}function o(r,t,e,o){return n(r,t,e,o,32)}function i(r,t,n,e){for(var o,i=255&e[0]|(255&e[1])<<8|(255&e[2])<<16|(255&e[3])<<24,h=255&n[0]|(255&n[1])<<8|(255&n[2])<<16|(255&n[3])<<24,a=255&n[4]|(255&n[5])<<8|(255&n[6])<<16|(255&n[7])<<24,f=255&n[8]|(255&n[9])<<8|(255&n[10])<<16|(255&n[11])<<24,s=255&n[12]|(255&n[13])<<8|(255&n[14])<<16|(255&n[15])<<24,c=255&e[4]|(255&e[5])<<8|(255&e[6])<<16|(255&e[7])<<24,u=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,y=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,l=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,w=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,p=255&e[8]|(255&e[9])<<8|(255&e[10])<<16|(255&e[11])<<24,v=255&n[16]|(255&n[17])<<8|(255&n[18])<<16|(255&n[19])<<24,b=255&n[20]|(255&n[21])<<8|(255&n[22])<<16|(255&n[23])<<24,g=255&n[24]|(255&n[25])<<8|(255&n[26])<<16|(255&n[27])<<24,_=255&n[28]|(255&n[29])<<8|(255&n[30])<<16|(255&n[31])<<24,A=255&e[12]|(255&e[13])<<8|(255&e[14])<<16|(255&e[15])<<24,d=i,U=h,E=a,x=f,M=s,m=c,B=u,S=y,K=l,T=w,Y=p,k=v,L=b,z=g,R=_,P=A,O=0;O<20;O+=2)o=d+L|0,M^=o<<7|o>>>25,o=M+d|0,K^=o<<9|o>>>23,o=K+M|0,L^=o<<13|o>>>19,o=L+K|0,d^=o<<18|o>>>14,o=m+U|0,T^=o<<7|o>>>25,o=T+m|0,z^=o<<9|o>>>23,o=z+T|0,U^=o<<13|o>>>19,o=U+z|0,m^=o<<18|o>>>14,o=Y+B|0,R^=o<<7|o>>>25,o=R+Y|0,E^=o<<9|o>>>23,o=E+R|0,B^=o<<13|o>>>19,o=B+E|0,Y^=o<<18|o>>>14,o=P+k|0,x^=o<<7|o>>>25,o=x+P|0,S^=o<<9|o>>>23,o=S+x|0,k^=o<<13|o>>>19,o=k+S|0,P^=o<<18|o>>>14,o=d+x|0,U^=o<<7|o>>>25,o=U+d|0,E^=o<<9|o>>>23,o=E+U|0,x^=o<<13|o>>>19,o=x+E|0,d^=o<<18|o>>>14,o=m+M|0,B^=o<<7|o>>>25,o=B+m|0,S^=o<<9|o>>>23,o=S+B|0,M^=o<<13|o>>>19,o=M+S|0,m^=o<<18|o>>>14,o=Y+T|0,k^=o<<7|o>>>25,o=k+Y|0,K^=o<<9|o>>>23,o=K+k|0,T^=o<<13|o>>>19,o=T+K|0,Y^=o<<18|o>>>14,o=P+R|0,L^=o<<7|o>>>25,o=L+P|0,z^=o<<9|o>>>23,o=z+L|0,R^=o<<13|o>>>19,o=R+z|0,P^=o<<18|o>>>14;d=d+i|0,U=U+h|0,E=E+a|0,x=x+f|0,M=M+s|0,m=m+c|0,B=B+u|0,S=S+y|0,K=K+l|0,T=T+w|0,Y=Y+p|0,k=k+v|0,L=L+b|0,z=z+g|0,R=R+_|0,P=P+A|0,r[0]=d>>>0&255,r[1]=d>>>8&255,r[2]=d>>>16&255,r[3]=d>>>24&255,r[4]=U>>>0&255,r[5]=U>>>8&255,r[6]=U>>>16&255,r[7]=U>>>24&255,r[8]=E>>>0&255,r[9]=E>>>8&255,r[10]=E>>>16&255,r[11]=E>>>24&255,r[12]=x>>>0&255,r[13]=x>>>8&255,r[14]=x>>>16&255,r[15]=x>>>24&255,r[16]=M>>>0&255,r[17]=M>>>8&255,r[18]=M>>>16&255,r[19]=M>>>24&255,r[20]=m>>>0&255,r[21]=m>>>8&255,r[22]=m>>>16&255,r[23]=m>>>24&255,r[24]=B>>>0&255,r[25]=B>>>8&255,r[26]=B>>>16&255,r[27]=B>>>24&255,r[28]=S>>>0&255,r[29]=S>>>8&255,r[30]=S>>>16&255,r[31]=S>>>24&255,r[32]=K>>>0&255,r[33]=K>>>8&255,r[34]=K>>>16&255,r[35]=K>>>24&255,r[36]=T>>>0&255,r[37]=T>>>8&255,r[38]=T>>>16&255,r[39]=T>>>24&255,r[40]=Y>>>0&255,r[41]=Y>>>8&255,r[42]=Y>>>16&255,r[43]=Y>>>24&255,r[44]=k>>>0&255,r[45]=k>>>8&255,r[46]=k>>>16&255,r[47]=k>>>24&255,r[48]=L>>>0&255,r[49]=L>>>8&255,r[50]=L>>>16&255,r[51]=L>>>24&255,r[52]=z>>>0&255,r[53]=z>>>8&255,r[54]=z>>>16&255,r[55]=z>>>24&255,r[56]=R>>>0&255,r[57]=R>>>8&255,r[58]=R>>>16&255,r[59]=R>>>24&255,r[60]=P>>>0&255,r[61]=P>>>8&255,r[62]=P>>>16&255,r[63]=P>>>24&255}function h(r,t,n,e){for(var o,i=255&e[0]|(255&e[1])<<8|(255&e[2])<<16|(255&e[3])<<24,h=255&n[0]|(255&n[1])<<8|(255&n[2])<<16|(255&n[3])<<24,a=255&n[4]|(255&n[5])<<8|(255&n[6])<<16|(255&n[7])<<24,f=255&n[8]|(255&n[9])<<8|(255&n[10])<<16|(255&n[11])<<24,s=255&n[12]|(255&n[13])<<8|(255&n[14])<<16|(255&n[15])<<24,c=255&e[4]|(255&e[5])<<8|(255&e[6])<<16|(255&e[7])<<24,u=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,y=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,l=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,w=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,p=255&e[8]|(255&e[9])<<8|(255&e[10])<<16|(255&e[11])<<24,v=255&n[16]|(255&n[17])<<8|(255&n[18])<<16|(255&n[19])<<24,b=255&n[20]|(255&n[21])<<8|(255&n[22])<<16|(255&n[23])<<24,g=255&n[24]|(255&n[25])<<8|(255&n[26])<<16|(255&n[27])<<24,_=255&n[28]|(255&n[29])<<8|(255&n[30])<<16|(255&n[31])<<24,A=255&e[12]|(255&e[13])<<8|(255&e[14])<<16|(255&e[15])<<24,d=i,U=h,E=a,x=f,M=s,m=c,B=u,S=y,K=l,T=w,Y=p,k=v,L=b,z=g,R=_,P=A,O=0;O<20;O+=2)o=d+L|0,M^=o<<7|o>>>25,o=M+d|0,K^=o<<9|o>>>23,o=K+M|0,L^=o<<13|o>>>19,o=L+K|0,d^=o<<18|o>>>14,o=m+U|0,T^=o<<7|o>>>25,o=T+m|0,z^=o<<9|o>>>23,o=z+T|0,U^=o<<13|o>>>19,o=U+z|0,m^=o<<18|o>>>14,o=Y+B|0,R^=o<<7|o>>>25,o=R+Y|0,E^=o<<9|o>>>23,o=E+R|0,B^=o<<13|o>>>19,o=B+E|0,Y^=o<<18|o>>>14,o=P+k|0,x^=o<<7|o>>>25,o=x+P|0,S^=o<<9|o>>>23,o=S+x|0,k^=o<<13|o>>>19,o=k+S|0,P^=o<<18|o>>>14,o=d+x|0,U^=o<<7|o>>>25,o=U+d|0,E^=o<<9|o>>>23,o=E+U|0,x^=o<<13|o>>>19,o=x+E|0,d^=o<<18|o>>>14,o=m+M|0,B^=o<<7|o>>>25,o=B+m|0,S^=o<<9|o>>>23,o=S+B|0,M^=o<<13|o>>>19,o=M+S|0,m^=o<<18|o>>>14,o=Y+T|0,k^=o<<7|o>>>25,o=k+Y|0,K^=o<<9|o>>>23,o=K+k|0,T^=o<<13|o>>>19,o=T+K|0,Y^=o<<18|o>>>14,o=P+R|0,L^=o<<7|o>>>25,o=L+P|0,z^=o<<9|o>>>23,o=z+L|0,R^=o<<13|o>>>19,o=R+z|0,P^=o<<18|o>>>14;r[0]=d>>>0&255,r[1]=d>>>8&255,r[2]=d>>>16&255,r[3]=d>>>24&255,r[4]=m>>>0&255,r[5]=m>>>8&255,r[6]=m>>>16&255,r[7]=m>>>24&255,r[8]=Y>>>0&255,r[9]=Y>>>8&255,r[10]=Y>>>16&255,r[11]=Y>>>24&255,r[12]=P>>>0&255,r[13]=P>>>8&255,r[14]=P>>>16&255,r[15]=P>>>24&255,r[16]=B>>>0&255,r[17]=B>>>8&255,r[18]=B>>>16&255,r[19]=B>>>24&255,r[20]=S>>>0&255,r[21]=S>>>8&255,r[22]=S>>>16&255,r[23]=S>>>24&255,r[24]=K>>>0&255,r[25]=K>>>8&255,r[26]=K>>>16&255,r[27]=K>>>24&255,r[28]=T>>>0&255,r[29]=T>>>8&255,r[30]=T>>>16&255,r[31]=T>>>24&255}function a(r,t,n,e){i(r,t,n,e)}function f(r,t,n,e){h(r,t,n,e)}function s(r,t,n,e,o,i,h){var f,s,c=new Uint8Array(16),u=new Uint8Array(64);for(s=0;s<16;s++)c[s]=0;for(s=0;s<8;s++)c[s]=i[s];for(;o>=64;){for(a(u,c,h,ur),s=0;s<64;s++)r[t+s]=n[e+s]^u[s];for(f=1,s=8;s<16;s++)f=f+(255&c[s])|0,c[s]=255&f,f>>>=8;o-=64,t+=64,e+=64}if(o>0)for(a(u,c,h,ur),s=0;s<o;s++)r[t+s]=n[e+s]^u[s];return 0}function c(r,t,n,e,o){var i,h,f=new Uint8Array(16),s=new Uint8Array(64);for(h=0;h<16;h++)f[h]=0;for(h=0;h<8;h++)f[h]=e[h];for(;n>=64;){for(a(s,f,o,ur),h=0;h<64;h++)r[t+h]=s[h];for(i=1,h=8;h<16;h++)i=i+(255&f[h])|0,f[h]=255&i,i>>>=8;n-=64,t+=64}if(n>0)for(a(s,f,o,ur),h=0;h<n;h++)r[t+h]=s[h];return 0}function u(r,t,n,e,o){var i=new Uint8Array(32);f(i,e,o,ur);for(var h=new Uint8Array(8),a=0;a<8;a++)h[a]=e[a+16];return c(r,t,n,h,i)}function y(r,t,n,e,o,i,h){var a=new Uint8Array(32);f(a,i,h,ur);for(var c=new Uint8Array(8),u=0;u<8;u++)c[u]=i[u+16];return s(r,t,n,e,o,c,a)}function l(r,t,n,e,o,i){var h=new yr(i);return h.update(n,e,o),h.finish(r,t),0}function w(r,t,n,o,i,h){var a=new Uint8Array(16);return l(a,0,n,o,i,h),e(r,t,a,0)}function p(r,t,n,e,o){var i;if(n<32)return-1;for(y(r,0,t,0,n,e,o),l(r,16,r,32,n-32,r),i=0;i<16;i++)r[i]=0;return 0}function v(r,t,n,e,o){var i,h=new Uint8Array(32);if(n<32)return-1;if(u(h,0,32,e,o),0!==w(t,16,t,32,n-32,h))return-1;for(y(r,0,t,0,n,e,o),i=0;i<32;i++)r[i]=0;return 0}function b(r,t){var n;for(n=0;n<16;n++)r[n]=0|t[n]}function g(r){var t,n,e=1;for(t=0;t<16;t++)n=r[t]+e+65535,e=Math.floor(n/65536),r[t]=n-65536*e;r[0]+=e-1+37*(e-1)}function _(r,t,n){for(var e,o=~(n-1),i=0;i<16;i++)e=o&(r[i]^t[i]),r[i]^=e,t[i]^=e}function A(r,t){var n,e,o,i=$(),h=$();for(n=0;n<16;n++)h[n]=t[n];for(g(h),g(h),g(h),e=0;e<2;e++){for(i[0]=h[0]-65517,n=1;n<15;n++)i[n]=h[n]-65535-(i[n-1]>>16&1),i[n-1]&=65535;i[15]=h[15]-32767-(i[14]>>16&1),o=i[15]>>16&1,i[14]&=65535,_(h,i,1-o)}for(n=0;n<16;n++)r[2*n]=255&h[n],r[2*n+1]=h[n]>>8}function d(r,t){var n=new Uint8Array(32),e=new Uint8Array(32);return A(n,r),A(e,t),o(n,0,e,0)}function U(r){var t=new Uint8Array(32);return A(t,r),1&t[0]}function E(r,t){var n;for(n=0;n<16;n++)r[n]=t[2*n]+(t[2*n+1]<<8);r[15]&=32767}function x(r,t,n){for(var e=0;e<16;e++)r[e]=t[e]+n[e]}function M(r,t,n){for(var e=0;e<16;e++)r[e]=t[e]-n[e]}function m(r,t,n){var e,o,i=0,h=0,a=0,f=0,s=0,c=0,u=0,y=0,l=0,w=0,p=0,v=0,b=0,g=0,_=0,A=0,d=0,U=0,E=0,x=0,M=0,m=0,B=0,S=0,K=0,T=0,Y=0,k=0,L=0,z=0,R=0,P=n[0],O=n[1],N=n[2],C=n[3],F=n[4],I=n[5],G=n[6],Z=n[7],j=n[8],q=n[9],V=n[10],X=n[11],D=n[12],H=n[13],J=n[14],Q=n[15];e=t[0],i+=e*P,h+=e*O,a+=e*N,f+=e*C,s+=e*F,c+=e*I,u+=e*G,y+=e*Z,l+=e*j,w+=e*q,p+=e*V,v+=e*X,b+=e*D,g+=e*H,_+=e*J,A+=e*Q,e=t[1],h+=e*P,a+=e*O,f+=e*N,s+=e*C,c+=e*F,u+=e*I,y+=e*G,l+=e*Z,w+=e*j,p+=e*q,v+=e*V,b+=e*X,g+=e*D,_+=e*H,A+=e*J,d+=e*Q,e=t[2],a+=e*P,f+=e*O,s+=e*N,c+=e*C,u+=e*F,y+=e*I,l+=e*G,w+=e*Z,p+=e*j,v+=e*q,b+=e*V,g+=e*X,_+=e*D,A+=e*H,d+=e*J,U+=e*Q,e=t[3],f+=e*P,s+=e*O,c+=e*N,u+=e*C,y+=e*F,l+=e*I,w+=e*G,p+=e*Z,v+=e*j,b+=e*q,g+=e*V,_+=e*X,A+=e*D,d+=e*H,U+=e*J,E+=e*Q,e=t[4],s+=e*P,c+=e*O,u+=e*N,y+=e*C,l+=e*F,w+=e*I,p+=e*G,v+=e*Z,b+=e*j,g+=e*q,_+=e*V,A+=e*X,d+=e*D,U+=e*H,E+=e*J,x+=e*Q,e=t[5],c+=e*P,u+=e*O,y+=e*N,l+=e*C,w+=e*F,p+=e*I,v+=e*G,b+=e*Z,g+=e*j,_+=e*q,A+=e*V,d+=e*X,U+=e*D,E+=e*H,x+=e*J,M+=e*Q,e=t[6],u+=e*P,y+=e*O,l+=e*N,w+=e*C,p+=e*F,v+=e*I,b+=e*G,g+=e*Z,_+=e*j,A+=e*q,d+=e*V,U+=e*X,E+=e*D,x+=e*H,M+=e*J,m+=e*Q,e=t[7],y+=e*P,l+=e*O,w+=e*N,p+=e*C,v+=e*F,b+=e*I,g+=e*G,_+=e*Z,A+=e*j,d+=e*q,U+=e*V,E+=e*X,x+=e*D,M+=e*H,m+=e*J,B+=e*Q,e=t[8],l+=e*P,w+=e*O,p+=e*N,v+=e*C,b+=e*F,g+=e*I,_+=e*G,A+=e*Z,d+=e*j,U+=e*q,E+=e*V,x+=e*X,M+=e*D,m+=e*H,B+=e*J,S+=e*Q,e=t[9],w+=e*P,p+=e*O,v+=e*N,b+=e*C,g+=e*F,_+=e*I,A+=e*G,d+=e*Z,U+=e*j,E+=e*q,x+=e*V,M+=e*X,m+=e*D,B+=e*H,S+=e*J,K+=e*Q,e=t[10],p+=e*P,v+=e*O,b+=e*N,g+=e*C,_+=e*F,A+=e*I,d+=e*G,U+=e*Z,E+=e*j,x+=e*q,M+=e*V,m+=e*X,B+=e*D,S+=e*H,K+=e*J,T+=e*Q,e=t[11],v+=e*P,b+=e*O,g+=e*N,_+=e*C,A+=e*F,d+=e*I,U+=e*G,E+=e*Z,x+=e*j,M+=e*q,m+=e*V,B+=e*X;S+=e*D;K+=e*H,T+=e*J,Y+=e*Q,e=t[12],b+=e*P,g+=e*O,_+=e*N,A+=e*C,d+=e*F,U+=e*I,E+=e*G,x+=e*Z,M+=e*j,m+=e*q,B+=e*V,S+=e*X,K+=e*D,T+=e*H,Y+=e*J,k+=e*Q,e=t[13],g+=e*P,_+=e*O,A+=e*N,d+=e*C,U+=e*F,E+=e*I,x+=e*G,M+=e*Z,m+=e*j,B+=e*q,S+=e*V,K+=e*X,T+=e*D,Y+=e*H,k+=e*J,L+=e*Q,e=t[14],_+=e*P,A+=e*O,d+=e*N,U+=e*C,E+=e*F,x+=e*I,M+=e*G,m+=e*Z,B+=e*j,S+=e*q,K+=e*V,T+=e*X,Y+=e*D,k+=e*H,L+=e*J,z+=e*Q,e=t[15],A+=e*P,d+=e*O,U+=e*N,E+=e*C,x+=e*F,M+=e*I,m+=e*G,B+=e*Z,S+=e*j,K+=e*q,T+=e*V,Y+=e*X,k+=e*D,L+=e*H,z+=e*J,R+=e*Q,i+=38*d,h+=38*U,a+=38*E,f+=38*x,s+=38*M,c+=38*m,u+=38*B,y+=38*S,l+=38*K,w+=38*T,p+=38*Y,v+=38*k,b+=38*L,g+=38*z,_+=38*R,o=1,e=i+o+65535,o=Math.floor(e/65536),i=e-65536*o,e=h+o+65535,o=Math.floor(e/65536),h=e-65536*o,e=a+o+65535,o=Math.floor(e/65536),a=e-65536*o,e=f+o+65535,o=Math.floor(e/65536),f=e-65536*o,e=s+o+65535,o=Math.floor(e/65536),s=e-65536*o,e=c+o+65535,o=Math.floor(e/65536),c=e-65536*o,e=u+o+65535,o=Math.floor(e/65536),u=e-65536*o,e=y+o+65535,o=Math.floor(e/65536),y=e-65536*o,e=l+o+65535,o=Math.floor(e/65536),l=e-65536*o,e=w+o+65535,o=Math.floor(e/65536),w=e-65536*o,e=p+o+65535,o=Math.floor(e/65536),p=e-65536*o,e=v+o+65535,o=Math.floor(e/65536),v=e-65536*o,e=b+o+65535,o=Math.floor(e/65536),b=e-65536*o,e=g+o+65535,o=Math.floor(e/65536),g=e-65536*o,e=_+o+65535,o=Math.floor(e/65536),_=e-65536*o,e=A+o+65535,o=Math.floor(e/65536),A=e-65536*o,i+=o-1+37*(o-1),o=1,e=i+o+65535,o=Math.floor(e/65536),i=e-65536*o,e=h+o+65535,o=Math.floor(e/65536),h=e-65536*o,e=a+o+65535,o=Math.floor(e/65536),a=e-65536*o,e=f+o+65535,o=Math.floor(e/65536),f=e-65536*o,e=s+o+65535,o=Math.floor(e/65536),s=e-65536*o,e=c+o+65535,o=Math.floor(e/65536),c=e-65536*o,e=u+o+65535,o=Math.floor(e/65536),u=e-65536*o,e=y+o+65535,o=Math.floor(e/65536),y=e-65536*o,e=l+o+65535,o=Math.floor(e/65536),l=e-65536*o,e=w+o+65535,o=Math.floor(e/65536),w=e-65536*o,e=p+o+65535,o=Math.floor(e/65536),p=e-65536*o,e=v+o+65535,o=Math.floor(e/65536),v=e-65536*o,e=b+o+65535,o=Math.floor(e/65536),b=e-65536*o,e=g+o+65535,o=Math.floor(e/65536),g=e-65536*o,e=_+o+65535,o=Math.floor(e/65536),_=e-65536*o,e=A+o+65535,o=Math.floor(e/65536),A=e-65536*o,i+=o-1+37*(o-1),r[0]=i,r[1]=h,r[2]=a,r[3]=f,r[4]=s,r[5]=c,r[6]=u,r[7]=y,r[8]=l,r[9]=w,r[10]=p,r[11]=v,r[12]=b,r[13]=g;r[14]=_;r[15]=A}function B(r,t){m(r,t,t)}function S(r,t){var n,e=$();for(n=0;n<16;n++)e[n]=t[n];for(n=253;n>=0;n--)B(e,e),2!==n&&4!==n&&m(e,e,t);for(n=0;n<16;n++)r[n]=e[n]}function K(r,t){var n,e=$();for(n=0;n<16;n++)e[n]=t[n];for(n=250;n>=0;n--)B(e,e),1!==n&&m(e,e,t);for(n=0;n<16;n++)r[n]=e[n]}function T(r,t,n){var e,o,i=new Uint8Array(32),h=new Float64Array(80),a=$(),f=$(),s=$(),c=$(),u=$(),y=$();for(o=0;o<31;o++)i[o]=t[o];for(i[31]=127&t[31]|64,i[0]&=248,E(h,n),o=0;o<16;o++)f[o]=h[o],c[o]=a[o]=s[o]=0;for(a[0]=c[0]=1,o=254;o>=0;--o)e=i[o>>>3]>>>(7&o)&1,_(a,f,e),_(s,c,e),x(u,a,s),M(a,a,s),x(s,f,c),M(f,f,c),B(c,u),B(y,a),m(a,s,a),m(s,f,u),x(u,a,s),M(a,a,s),B(f,a),M(s,c,y),m(a,s,ir),x(a,a,c),m(s,s,a),m(a,c,y),m(c,f,h),B(f,u),_(a,f,e),_(s,c,e);for(o=0;o<16;o++)h[o+16]=a[o],h[o+32]=s[o],h[o+48]=f[o],h[o+64]=c[o];var l=h.subarray(32),w=h.subarray(16);return S(l,l),m(w,w,l),A(r,w),0}function Y(r,t){return T(r,t,nr)}function k(r,t){return rr(t,32),Y(r,t)}function L(r,t,n){var e=new Uint8Array(32);return T(e,n,t),f(r,tr,e,ur)}function z(r,t,n,e,o,i){var h=new Uint8Array(32);return L(h,o,i),lr(r,t,n,e,h)}function R(r,t,n,e,o,i){var h=new Uint8Array(32);return L(h,o,i),wr(r,t,n,e,h)}function P(r,t,n,e){for(var o,i,h,a,f,s,c,u,y,l,w,p,v,b,g,_,A,d,U,E,x,M,m,B,S,K,T=new Int32Array(16),Y=new Int32Array(16),k=r[0],L=r[1],z=r[2],R=r[3],P=r[4],O=r[5],N=r[6],C=r[7],F=t[0],I=t[1],G=t[2],Z=t[3],j=t[4],q=t[5],V=t[6],X=t[7],D=0;e>=128;){for(U=0;U<16;U++)E=8*U+D,T[U]=n[E+0]<<24|n[E+1]<<16|n[E+2]<<8|n[E+3],Y[U]=n[E+4]<<24|n[E+5]<<16|n[E+6]<<8|n[E+7];for(U=0;U<80;U++)if(o=k,i=L,h=z,a=R,f=P,s=O,c=N,u=C,y=F,l=I,w=G,p=Z,v=j,b=q,g=V,_=X,x=C,M=X,m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=(P>>>14|j<<18)^(P>>>18|j<<14)^(j>>>9|P<<23),M=(j>>>14|P<<18)^(j>>>18|P<<14)^(P>>>9|j<<23),m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,x=P&O^~P&N,M=j&q^~j&V,m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,x=pr[2*U],M=pr[2*U+1],m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,x=T[U%16],M=Y[U%16],m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,A=65535&S|K<<16,d=65535&m|B<<16,x=A,M=d,m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=(k>>>28|F<<4)^(F>>>2|k<<30)^(F>>>7|k<<25),M=(F>>>28|k<<4)^(k>>>2|F<<30)^(k>>>7|F<<25),m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,x=k&L^k&z^L&z,M=F&I^F&G^I&G,m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,u=65535&S|K<<16,_=65535&m|B<<16,x=a,M=p,m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=A,M=d,m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,a=65535&S|K<<16,p=65535&m|B<<16,L=o,z=i,R=h,P=a,O=f,N=s,C=c,k=u,I=y,G=l,Z=w,j=p,q=v,V=b,X=g,F=_,U%16===15)for(E=0;E<16;E++)x=T[E],M=Y[E],m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=T[(E+9)%16],M=Y[(E+9)%16],m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,A=T[(E+1)%16],d=Y[(E+1)%16],x=(A>>>1|d<<31)^(A>>>8|d<<24)^A>>>7,M=(d>>>1|A<<31)^(d>>>8|A<<24)^(d>>>7|A<<25),m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,A=T[(E+14)%16],d=Y[(E+14)%16],x=(A>>>19|d<<13)^(d>>>29|A<<3)^A>>>6,M=(d>>>19|A<<13)^(A>>>29|d<<3)^(d>>>6|A<<26),m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,T[E]=65535&S|K<<16,Y[E]=65535&m|B<<16;x=k,M=F,m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=r[0],M=t[0],m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,r[0]=k=65535&S|K<<16,t[0]=F=65535&m|B<<16,x=L,M=I,m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=r[1],M=t[1],m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,r[1]=L=65535&S|K<<16,t[1]=I=65535&m|B<<16,x=z,M=G,m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=r[2],M=t[2],m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,r[2]=z=65535&S|K<<16,t[2]=G=65535&m|B<<16,x=R,M=Z,m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=r[3],M=t[3],m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,r[3]=R=65535&S|K<<16,t[3]=Z=65535&m|B<<16,x=P,M=j,m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=r[4],M=t[4],m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,r[4]=P=65535&S|K<<16,t[4]=j=65535&m|B<<16,x=O,M=q,m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=r[5],M=t[5],m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,r[5]=O=65535&S|K<<16,t[5]=q=65535&m|B<<16,x=N,M=V,m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=r[6],M=t[6],m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,r[6]=N=65535&S|K<<16,t[6]=V=65535&m|B<<16,x=C,M=X,m=65535&M,B=M>>>16,S=65535&x,K=x>>>16,x=r[7],M=t[7],m+=65535&M,B+=M>>>16,S+=65535&x,K+=x>>>16,B+=m>>>16,S+=B>>>16,K+=S>>>16,r[7]=C=65535&S|K<<16,t[7]=X=65535&m|B<<16,D+=128,e-=128}return e}function O(r,n,e){var o,i=new Int32Array(8),h=new Int32Array(8),a=new Uint8Array(256),f=e;for(i[0]=1779033703,i[1]=3144134277,i[2]=1013904242,i[3]=2773480762,i[4]=1359893119,i[5]=2600822924,i[6]=528734635,i[7]=1541459225,h[0]=4089235720,h[1]=2227873595,h[2]=4271175723,h[3]=1595750129,h[4]=2917565137,h[5]=725511199,h[6]=4215389547,h[7]=327033209,P(i,h,n,e),e%=128,o=0;o<e;o++)a[o]=n[f-e+o];for(a[e]=128,e=256-128*(e<112?1:0),a[e-9]=0,t(a,e-8,f/536870912|0,f<<3),P(i,h,a,e),o=0;o<8;o++)t(r,8*o,i[o],h[o]);return 0}function N(r,t){var n=$(),e=$(),o=$(),i=$(),h=$(),a=$(),f=$(),s=$(),c=$();M(n,r[1],r[0]),M(c,t[1],t[0]),m(n,n,c),x(e,r[0],r[1]),x(c,t[0],t[1]),m(e,e,c),m(o,r[3],t[3]),m(o,o,ar),m(i,r[2],t[2]),x(i,i,i),M(h,e,n),M(a,i,o),x(f,i,o),x(s,e,n),m(r[0],h,a),m(r[1],s,f),m(r[2],f,a),m(r[3],h,s)}function C(r,t,n){var e;for(e=0;e<4;e++)_(r[e],t[e],n)}function F(r,t){var n=$(),e=$(),o=$();S(o,t[2]),m(n,t[0],o),m(e,t[1],o),A(r,e),r[31]^=U(n)<<7}function I(r,t,n){var e,o;for(b(r[0],er),b(r[1],or),b(r[2],or),b(r[3],er),o=255;o>=0;--o)e=n[o/8|0]>>(7&o)&1,C(r,t,e),N(t,r),N(r,r),C(r,t,e)}function G(r,t){var n=[$(),$(),$(),$()];b(n[0],fr),b(n[1],sr),b(n[2],or),m(n[3],fr,sr),I(r,n,t)}function Z(r,t,n){var e,o=new Uint8Array(64),i=[$(),$(),$(),$()];for(n||rr(t,32),O(o,t,32),o[0]&=248,o[31]&=127,o[31]|=64,G(i,o),F(r,i),e=0;e<32;e++)t[e+32]=r[e];return 0}function j(r,t){var n,e,o,i;for(e=63;e>=32;--e){for(n=0,o=e-32,i=e-12;o<i;++o)t[o]+=n-16*t[e]*vr[o-(e-32)],n=t[o]+128>>8,t[o]-=256*n;t[o]+=n,t[e]=0}for(n=0,o=0;o<32;o++)t[o]+=n-(t[31]>>4)*vr[o],n=t[o]>>8,t[o]&=255;for(o=0;o<32;o++)t[o]-=n*vr[o];for(e=0;e<32;e++)t[e+1]+=t[e]>>8,r[e]=255&t[e]}function q(r){var t,n=new Float64Array(64);for(t=0;t<64;t++)n[t]=r[t];for(t=0;t<64;t++)r[t]=0;j(r,n)}function V(r,t,n,e){var o,i,h=new Uint8Array(64),a=new Uint8Array(64),f=new Uint8Array(64),s=new Float64Array(64),c=[$(),$(),$(),$()];O(h,e,32),h[0]&=248,h[31]&=127,h[31]|=64;var u=n+64;for(o=0;o<n;o++)r[64+o]=t[o];for(o=0;o<32;o++)r[32+o]=h[32+o];for(O(f,r.subarray(32),n+32),q(f),G(c,f),F(r,c),o=32;o<64;o++)r[o]=e[o];for(O(a,r,n+64),q(a),o=0;o<64;o++)s[o]=0;for(o=0;o<32;o++)s[o]=f[o];for(o=0;o<32;o++)for(i=0;i<32;i++)s[o+i]+=a[o]*h[i];return j(r.subarray(32),s),u}function X(r,t){var n=$(),e=$(),o=$(),i=$(),h=$(),a=$(),f=$();return b(r[2],or),E(r[1],t),B(o,r[1]),m(i,o,hr),M(o,o,r[2]),x(i,r[2],i),B(h,i),B(a,h),m(f,a,h),m(n,f,o),m(n,n,i),K(n,n),m(n,n,o),m(n,n,i),m(n,n,i),m(r[0],n,i),B(e,r[0]),m(e,e,i),d(e,o)&&m(r[0],r[0],cr),B(e,r[0]),m(e,e,i),d(e,o)?-1:(U(r[0])===t[31]>>7&&M(r[0],er,r[0]),m(r[3],r[0],r[1]),0)}function D(r,t,n,e){var i,h,a=new Uint8Array(32),f=new Uint8Array(64),s=[$(),$(),$(),$()],c=[$(),$(),$(),$()];if(h=-1,n<64)return-1;if(X(c,e))return-1;for(i=0;i<n;i++)r[i]=t[i];for(i=0;i<32;i++)r[i+32]=e[i];if(O(f,r,n),q(f),I(s,c,f),G(c,t.subarray(32)),N(s,c),F(a,s),n-=64,o(t,0,a,0)){for(i=0;i<n;i++)r[i]=0;return-1}for(i=0;i<n;i++)r[i]=t[i+64];return h=n}function H(r,t){if(r.length!==br)throw new Error("bad key size");if(t.length!==gr)throw new Error("bad nonce size")}function J(r,t){if(r.length!==Er)throw new Error("bad public key size");if(t.length!==xr)throw new Error("bad secret key size")}function Q(){var r,t;for(t=0;t<arguments.length;t++)if("[object Uint8Array]"!==(r=Object.prototype.toString.call(arguments[t])))throw new TypeError("unexpected type "+r+", use Uint8Array")}function W(r){for(var t=0;t<r.length;t++)r[t]=0}var $=function(r){var t,n=new Float64Array(16);if(r)for(t=0;t<r.length;t++)n[t]=r[t];return n},rr=function(){throw new Error("no PRNG")},tr=new Uint8Array(16),nr=new Uint8Array(32);nr[0]=9;var er=$(),or=$([1]),ir=$([56129,1]),hr=$([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),ar=$([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),fr=$([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),sr=$([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),cr=$([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]),ur=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]),yr=function(r){this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.leftover=0,this.fin=0;var t,n,e,o,i,h,a,f;t=255&r[0]|(255&r[1])<<8,this.r[0]=8191&t,n=255&r[2]|(255&r[3])<<8,this.r[1]=8191&(t>>>13|n<<3),e=255&r[4]|(255&r[5])<<8,this.r[2]=7939&(n>>>10|e<<6),o=255&r[6]|(255&r[7])<<8,this.r[3]=8191&(e>>>7|o<<9),i=255&r[8]|(255&r[9])<<8,this.r[4]=255&(o>>>4|i<<12),this.r[5]=i>>>1&8190,h=255&r[10]|(255&r[11])<<8,this.r[6]=8191&(i>>>14|h<<2),a=255&r[12]|(255&r[13])<<8,this.r[7]=8065&(h>>>11|a<<5),f=255&r[14]|(255&r[15])<<8,this.r[8]=8191&(a>>>8|f<<8),this.r[9]=f>>>5&127,this.pad[0]=255&r[16]|(255&r[17])<<8,this.pad[1]=255&r[18]|(255&r[19])<<8,this.pad[2]=255&r[20]|(255&r[21])<<8,this.pad[3]=255&r[22]|(255&r[23])<<8,this.pad[4]=255&r[24]|(255&r[25])<<8,this.pad[5]=255&r[26]|(255&r[27])<<8,this.pad[6]=255&r[28]|(255&r[29])<<8,this.pad[7]=255&r[30]|(255&r[31])<<8};yr.prototype.blocks=function(r,t,n){for(var e,o,i,h,a,f,s,c,u,y,l,w,p,v,b,g,_,A,d,U=this.fin?0:2048,E=this.h[0],x=this.h[1],M=this.h[2],m=this.h[3],B=this.h[4],S=this.h[5],K=this.h[6],T=this.h[7],Y=this.h[8],k=this.h[9],L=this.r[0],z=this.r[1],R=this.r[2],P=this.r[3],O=this.r[4],N=this.r[5],C=this.r[6],F=this.r[7],I=this.r[8],G=this.r[9];n>=16;)e=255&r[t+0]|(255&r[t+1])<<8,E+=8191&e,o=255&r[t+2]|(255&r[t+3])<<8,x+=8191&(e>>>13|o<<3),i=255&r[t+4]|(255&r[t+5])<<8,M+=8191&(o>>>10|i<<6),h=255&r[t+6]|(255&r[t+7])<<8,m+=8191&(i>>>7|h<<9),a=255&r[t+8]|(255&r[t+9])<<8,B+=8191&(h>>>4|a<<12),S+=a>>>1&8191,f=255&r[t+10]|(255&r[t+11])<<8,K+=8191&(a>>>14|f<<2),s=255&r[t+12]|(255&r[t+13])<<8,T+=8191&(f>>>11|s<<5),c=255&r[t+14]|(255&r[t+15])<<8,Y+=8191&(s>>>8|c<<8),k+=c>>>5|U,u=0,y=u,y+=E*L,y+=x*(5*G),y+=M*(5*I),y+=m*(5*F),y+=B*(5*C),u=y>>>13,y&=8191,y+=S*(5*N),y+=K*(5*O),y+=T*(5*P),y+=Y*(5*R),y+=k*(5*z),u+=y>>>13,y&=8191,l=u,l+=E*z,l+=x*L,l+=M*(5*G),l+=m*(5*I),l+=B*(5*F),u=l>>>13,l&=8191,l+=S*(5*C),l+=K*(5*N),l+=T*(5*O),l+=Y*(5*P),l+=k*(5*R),u+=l>>>13,l&=8191,w=u,w+=E*R,w+=x*z,w+=M*L,w+=m*(5*G),w+=B*(5*I),u=w>>>13,w&=8191,w+=S*(5*F),w+=K*(5*C),w+=T*(5*N),w+=Y*(5*O),w+=k*(5*P),u+=w>>>13,w&=8191,p=u,p+=E*P,p+=x*R,p+=M*z,p+=m*L,p+=B*(5*G),u=p>>>13,p&=8191,p+=S*(5*I),p+=K*(5*F),p+=T*(5*C),p+=Y*(5*N),p+=k*(5*O),u+=p>>>13,p&=8191,v=u,v+=E*O,v+=x*P,v+=M*R,v+=m*z,v+=B*L,u=v>>>13,v&=8191,v+=S*(5*G),v+=K*(5*I),v+=T*(5*F),v+=Y*(5*C),v+=k*(5*N),u+=v>>>13,v&=8191,b=u,b+=E*N,b+=x*O,b+=M*P,b+=m*R,b+=B*z,u=b>>>13,b&=8191,b+=S*L,b+=K*(5*G),b+=T*(5*I),b+=Y*(5*F),b+=k*(5*C),u+=b>>>13,b&=8191,g=u,g+=E*C,g+=x*N,g+=M*O,g+=m*P,g+=B*R,u=g>>>13,g&=8191,g+=S*z,g+=K*L,g+=T*(5*G),g+=Y*(5*I),g+=k*(5*F),u+=g>>>13,g&=8191,_=u,_+=E*F,_+=x*C,_+=M*N,_+=m*O,_+=B*P,u=_>>>13,_&=8191,_+=S*R,_+=K*z,_+=T*L,_+=Y*(5*G),_+=k*(5*I),u+=_>>>13,_&=8191,A=u,A+=E*I,A+=x*F,A+=M*C,A+=m*N,A+=B*O,u=A>>>13,A&=8191,A+=S*P,A+=K*R,A+=T*z,A+=Y*L,A+=k*(5*G),u+=A>>>13,A&=8191,d=u,d+=E*G,d+=x*I,d+=M*F,d+=m*C,d+=B*N,u=d>>>13,d&=8191,d+=S*O,d+=K*P,d+=T*R,d+=Y*z,d+=k*L,u+=d>>>13,d&=8191,u=(u<<2)+u|0,u=u+y|0,y=8191&u,u>>>=13,l+=u,E=y,x=l,M=w,m=p,B=v,S=b,K=g,T=_,Y=A,k=d,t+=16,n-=16;this.h[0]=E,this.h[1]=x,this.h[2]=M,this.h[3]=m,this.h[4]=B,this.h[5]=S,this.h[6]=K,this.h[7]=T,this.h[8]=Y,this.h[9]=k},yr.prototype.finish=function(r,t){var n,e,o,i,h=new Uint16Array(10);if(this.leftover){for(i=this.leftover,this.buffer[i++]=1;i<16;i++)this.buffer[i]=0;this.fin=1,this.blocks(this.buffer,0,16)}for(n=this.h[1]>>>13,this.h[1]&=8191,i=2;i<10;i++)this.h[i]+=n,n=this.h[i]>>>13,this.h[i]&=8191;for(this.h[0]+=5*n,n=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=n,n=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=n,h[0]=this.h[0]+5,n=h[0]>>>13,h[0]&=8191,i=1;i<10;i++)h[i]=this.h[i]+n,n=h[i]>>>13,h[i]&=8191;for(h[9]-=8192,e=(1^n)-1,i=0;i<10;i++)h[i]&=e;for(e=~e,i=0;i<10;i++)this.h[i]=this.h[i]&e|h[i];for(this.h[0]=65535&(this.h[0]|this.h[1]<<13),this.h[1]=65535&(this.h[1]>>>3|this.h[2]<<10),this.h[2]=65535&(this.h[2]>>>6|this.h[3]<<7),this.h[3]=65535&(this.h[3]>>>9|this.h[4]<<4),this.h[4]=65535&(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14),this.h[5]=65535&(this.h[6]>>>2|this.h[7]<<11),this.h[6]=65535&(this.h[7]>>>5|this.h[8]<<8),this.h[7]=65535&(this.h[8]>>>8|this.h[9]<<5),o=this.h[0]+this.pad[0],this.h[0]=65535&o,i=1;i<8;i++)o=(this.h[i]+this.pad[i]|0)+(o>>>16)|0,this.h[i]=65535&o;r[t+0]=this.h[0]>>>0&255,r[t+1]=this.h[0]>>>8&255,r[t+2]=this.h[1]>>>0&255,r[t+3]=this.h[1]>>>8&255,r[t+4]=this.h[2]>>>0&255,r[t+5]=this.h[2]>>>8&255,r[t+6]=this.h[3]>>>0&255,r[t+7]=this.h[3]>>>8&255,r[t+8]=this.h[4]>>>0&255,r[t+9]=this.h[4]>>>8&255,r[t+10]=this.h[5]>>>0&255,r[t+11]=this.h[5]>>>8&255,r[t+12]=this.h[6]>>>0&255,r[t+13]=this.h[6]>>>8&255,r[t+14]=this.h[7]>>>0&255,r[t+15]=this.h[7]>>>8&255},yr.prototype.update=function(r,t,n){var e,o;if(this.leftover){for(o=16-this.leftover,o>n&&(o=n),e=0;e<o;e++)this.buffer[this.leftover+e]=r[t+e];if(n-=o,t+=o,this.leftover+=o,this.leftover<16)return;this.blocks(this.buffer,0,16),this.leftover=0}if(n>=16&&(o=n-n%16,this.blocks(r,t,o),t+=o,n-=o),n){for(e=0;e<n;e++)this.buffer[this.leftover+e]=r[t+e];this.leftover+=n}};var lr=p,wr=v,pr=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],vr=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]),br=32,gr=24,_r=32,Ar=16,dr=32,Ur=32,Er=32,xr=32,Mr=32,mr=gr,Br=_r,Sr=Ar,Kr=64,Tr=32,Yr=64,kr=32,Lr=64;r.lowlevel={crypto_core_hsalsa20:f,crypto_stream_xor:y,crypto_stream:u,crypto_stream_salsa20_xor:s,crypto_stream_salsa20:c,crypto_onetimeauth:l,crypto_onetimeauth_verify:w,crypto_verify_16:e,crypto_verify_32:o,crypto_secretbox:p,crypto_secretbox_open:v,crypto_scalarmult:T,crypto_scalarmult_base:Y,crypto_box_beforenm:L,crypto_box_afternm:lr,crypto_box:z,crypto_box_open:R,crypto_box_keypair:k,crypto_hash:O,crypto_sign:V,crypto_sign_keypair:Z,crypto_sign_open:D,crypto_secretbox_KEYBYTES:br,crypto_secretbox_NONCEBYTES:gr,crypto_secretbox_ZEROBYTES:_r,crypto_secretbox_BOXZEROBYTES:Ar,crypto_scalarmult_BYTES:dr,crypto_scalarmult_SCALARBYTES:Ur,crypto_box_PUBLICKEYBYTES:Er,crypto_box_SECRETKEYBYTES:xr,crypto_box_BEFORENMBYTES:Mr,crypto_box_NONCEBYTES:mr,crypto_box_ZEROBYTES:Br,crypto_box_BOXZEROBYTES:Sr,crypto_sign_BYTES:Kr,crypto_sign_PUBLICKEYBYTES:Tr,crypto_sign_SECRETKEYBYTES:Yr,crypto_sign_SEEDBYTES:kr,crypto_hash_BYTES:Lr},r.util||(r.util={},r.util.decodeUTF8=r.util.encodeUTF8=r.util.encodeBase64=r.util.decodeBase64=function(){throw new Error("nacl.util moved into separate package: https://github.com/dchest/tweetnacl-util-js")}),r.randomBytes=function(r){var t=new Uint8Array(r);return rr(t,r),t},r.secretbox=function(r,t,n){Q(r,t,n),H(n,t);for(var e=new Uint8Array(_r+r.length),o=new Uint8Array(e.length),i=0;i<r.length;i++)e[i+_r]=r[i];return p(o,e,e.length,t,n),o.subarray(Ar)},r.secretbox.open=function(r,t,n){Q(r,t,n),H(n,t);for(var e=new Uint8Array(Ar+r.length),o=new Uint8Array(e.length),i=0;i<r.length;i++)e[i+Ar]=r[i];return!(e.length<32)&&(0===v(o,e,e.length,t,n)&&o.subarray(_r))},r.secretbox.keyLength=br,r.secretbox.nonceLength=gr,r.secretbox.overheadLength=Ar,r.scalarMult=function(r,t){if(Q(r,t),r.length!==Ur)throw new Error("bad n size");if(t.length!==dr)throw new Error("bad p size");var n=new Uint8Array(dr);return T(n,r,t),n},r.scalarMult.base=function(r){if(Q(r),r.length!==Ur)throw new Error("bad n size");var t=new Uint8Array(dr);return Y(t,r),t},r.scalarMult.scalarLength=Ur,r.scalarMult.groupElementLength=dr,r.box=function(t,n,e,o){var i=r.box.before(e,o);return r.secretbox(t,n,i)},r.box.before=function(r,t){Q(r,t),J(r,t);var n=new Uint8Array(Mr);return L(n,r,t),n},r.box.after=r.secretbox,r.box.open=function(t,n,e,o){var i=r.box.before(e,o);return r.secretbox.open(t,n,i)},r.box.open.after=r.secretbox.open,r.box.keyPair=function(){var r=new Uint8Array(Er),t=new Uint8Array(xr);return k(r,t),{publicKey:r,secretKey:t}},r.box.keyPair.fromSecretKey=function(r){if(Q(r),r.length!==xr)throw new Error("bad secret key size");var t=new Uint8Array(Er);return Y(t,r),{publicKey:t,secretKey:new Uint8Array(r)}},r.box.publicKeyLength=Er,r.box.secretKeyLength=xr,r.box.sharedKeyLength=Mr,r.box.nonceLength=mr,r.box.overheadLength=r.secretbox.overheadLength,r.sign=function(r,t){if(Q(r,t),t.length!==Yr)throw new Error("bad secret key size");var n=new Uint8Array(Kr+r.length);return V(n,r,r.length,t),n},r.sign.open=function(r,t){if(2!==arguments.length)throw new Error("nacl.sign.open accepts 2 arguments; did you mean to use nacl.sign.detached.verify?");if(Q(r,t),t.length!==Tr)throw new Error("bad public key size");var n=new Uint8Array(r.length),e=D(n,r,r.length,t);if(e<0)return null;for(var o=new Uint8Array(e),i=0;i<o.length;i++)o[i]=n[i];return o},r.sign.detached=function(t,n){for(var e=r.sign(t,n),o=new Uint8Array(Kr),i=0;i<o.length;i++)o[i]=e[i];return o},r.sign.detached.verify=function(r,t,n){if(Q(r,t,n),t.length!==Kr)throw new Error("bad signature size");if(n.length!==Tr)throw new Error("bad public key size");var e,o=new Uint8Array(Kr+r.length),i=new Uint8Array(Kr+r.length);for(e=0;e<Kr;e++)o[e]=t[e];for(e=0;e<r.length;e++)o[e+Kr]=r[e];return D(i,o,o.length,n)>=0},r.sign.keyPair=function(){var r=new Uint8Array(Tr),t=new Uint8Array(Yr);return Z(r,t),{publicKey:r,secretKey:t}},r.sign.keyPair.fromSecretKey=function(r){if(Q(r),r.length!==Yr)throw new Error("bad secret key size");for(var t=new Uint8Array(Tr),n=0;n<t.length;n++)t[n]=r[32+n];return{publicKey:t,secretKey:new Uint8Array(r)}},r.sign.keyPair.fromSeed=function(r){if(Q(r),r.length!==kr)throw new Error("bad seed size");for(var t=new Uint8Array(Tr),n=new Uint8Array(Yr),e=0;e<32;e++)n[e]=r[e];return Z(t,n,!0),{publicKey:t,secretKey:n}},r.sign.publicKeyLength=Tr,r.sign.secretKeyLength=Yr,r.sign.seedLength=kr,r.sign.signatureLength=Kr,r.hash=function(r){Q(r);var t=new Uint8Array(Lr);return O(t,r,r.length),t},r.hash.hashLength=Lr,r.verify=function(r,t){return Q(r,t),
-0!==r.length&&0!==t.length&&(r.length===t.length&&0===n(r,0,t,0,r.length))},r.setPRNG=function(r){rr=r},function(){var t="undefined"!=typeof self?self.crypto||self.msCrypto:null;if(t&&t.getRandomValues){var n=65536;r.setPRNG(function(r,e){var o,i=new Uint8Array(e);for(o=0;o<e;o+=n)t.getRandomValues(i.subarray(o,o+Math.min(e-o,n)));for(o=0;o<e;o++)r[o]=i[o];W(i)})}else"undefined"!=typeof require&&(t=require("crypto"),t&&t.randomBytes&&r.setPRNG(function(r,n){var e,o=t.randomBytes(n);for(e=0;e<n;e++)r[e]=o[e];W(o)}))}()}("undefined"!=typeof module&&module.exports?module.exports:self.nacl=self.nacl||{}); \ No newline at end of file
diff --git a/deps/npm/node_modules/tweetnacl/nacl.d.ts b/deps/npm/node_modules/tweetnacl/nacl.d.ts
deleted file mode 100644
index 964e7dca3c1..00000000000
--- a/deps/npm/node_modules/tweetnacl/nacl.d.ts
+++ /dev/null
@@ -1,98 +0,0 @@
-// Type definitions for TweetNaCl.js
-
-export as namespace nacl;
-
-declare var nacl: nacl;
-export = nacl;
-
-declare namespace nacl {
- export interface BoxKeyPair {
- publicKey: Uint8Array;
- secretKey: Uint8Array;
- }
-
- export interface SignKeyPair {
- publicKey: Uint8Array;
- secretKey: Uint8Array;
- }
-
- export interface secretbox {
- (msg: Uint8Array, nonce: Uint8Array, key: Uint8Array): Uint8Array;
- open(box: Uint8Array, nonce: Uint8Array, key: Uint8Array): Uint8Array | false;
- readonly keyLength: number;
- readonly nonceLength: number;
- readonly overheadLength: number;
- }
-
- export interface scalarMult {
- (n: Uint8Array, p: Uint8Array): Uint8Array;
- base(n: Uint8Array): Uint8Array;
- readonly scalarLength: number;
- readonly groupElementLength: number;
- }
-
- namespace box {
- export interface open {
- (msg: Uint8Array, nonce: Uint8Array, publicKey: Uint8Array, secretKey: Uint8Array): Uint8Array | false;
- after(box: Uint8Array, nonce: Uint8Array, key: Uint8Array): Uint8Array | false;
- }
-
- export interface keyPair {
- (): BoxKeyPair;
- fromSecretKey(secretKey: Uint8Array): BoxKeyPair;
- }
- }
-
- export interface box {
- (msg: Uint8Array, nonce: Uint8Array, publicKey: Uint8Array, secretKey: Uint8Array): Uint8Array;
- before(publicKey: Uint8Array, secretKey: Uint8Array): Uint8Array;
- after(msg: Uint8Array, nonce: Uint8Array, key: Uint8Array): Uint8Array;
- open: box.open;
- keyPair: box.keyPair;
- readonly publicKeyLength: number;
- readonly secretKeyLength: number;
- readonly sharedKeyLength: number;
- readonly nonceLength: number;
- readonly overheadLength: number;
- }
-
- namespace sign {
- export interface detached {
- (msg: Uint8Array, secretKey: Uint8Array): Uint8Array;
- verify(msg: Uint8Array, sig: Uint8Array, publicKey: Uint8Array): boolean;
- }
-
- export interface keyPair {
- (): SignKeyPair;
- fromSecretKey(secretKey: Uint8Array): SignKeyPair;
- fromSeed(secretKey: Uint8Array): SignKeyPair;
- }
- }
-
- export interface sign {
- (msg: Uint8Array, secretKey: Uint8Array): Uint8Array;
- open(signedMsg: Uint8Array, publicKey: Uint8Array): Uint8Array | null;
- detached: sign.detached;
- keyPair: sign.keyPair;
- readonly publicKeyLength: number;
- readonly secretKeyLength: number;
- readonly seedLength: number;
- readonly signatureLength: number;
- }
-
- export interface hash {
- (msg: Uint8Array): Uint8Array;
- readonly hashLength: number;
- }
-}
-
-declare interface nacl {
- randomBytes(n: number): Uint8Array;
- secretbox: nacl.secretbox;
- scalarMult: nacl.scalarMult;
- box: nacl.box;
- sign: nacl.sign;
- hash: nacl.hash;
- verify(x: Uint8Array, y: Uint8Array): boolean;
- setPRNG(fn: (x: Uint8Array, n: number) => void): void;
-}
diff --git a/deps/npm/node_modules/tweetnacl/nacl.js b/deps/npm/node_modules/tweetnacl/nacl.js
deleted file mode 100644
index f72dd78d125..00000000000
--- a/deps/npm/node_modules/tweetnacl/nacl.js
+++ /dev/null
@@ -1,1175 +0,0 @@
-(function(nacl) {
-'use strict';
-
-// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.
-// Public domain.
-//
-// Implementation derived from TweetNaCl version 20140427.
-// See for details: http://tweetnacl.cr.yp.to/
-
-var u64 = function(h, l) { this.hi = h|0 >>> 0; this.lo = l|0 >>> 0; };
-var gf = function(init) {
- var i, r = new Float64Array(16);
- if (init) for (i = 0; i < init.length; i++) r[i] = init[i];
- return r;
-};
-
-// Pluggable, initialized in high-level API below.
-var randombytes = function(/* x, n */) { throw new Error('no PRNG'); };
-
-var _0 = new Uint8Array(16);
-var _9 = new Uint8Array(32); _9[0] = 9;
-
-var gf0 = gf(),
- gf1 = gf([1]),
- _121665 = gf([0xdb41, 1]),
- D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),
- D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),
- X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),
- Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),
- I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);
-
-function L32(x, c) { return (x << c) | (x >>> (32 - c)); }
-
-function ld32(x, i) {
- var u = x[i+3] & 0xff;
- u = (u<<8)|(x[i+2] & 0xff);
- u = (u<<8)|(x[i+1] & 0xff);
- return (u<<8)|(x[i+0] & 0xff);
-}
-
-function dl64(x, i) {
- var h = (x[i] << 24) | (x[i+1] << 16) | (x[i+2] << 8) | x[i+3];
- var l = (x[i+4] << 24) | (x[i+5] << 16) | (x[i+6] << 8) | x[i+7];
- return new u64(h, l);
-}
-
-function st32(x, j, u) {
- var i;
- for (i = 0; i < 4; i++) { x[j+i] = u & 255; u >>>= 8; }
-}
-
-function ts64(x, i, u) {
- x[i] = (u.hi >> 24) & 0xff;
- x[i+1] = (u.hi >> 16) & 0xff;
- x[i+2] = (u.hi >> 8) & 0xff;
- x[i+3] = u.hi & 0xff;
- x[i+4] = (u.lo >> 24) & 0xff;
- x[i+5] = (u.lo >> 16) & 0xff;
- x[i+6] = (u.lo >> 8) & 0xff;
- x[i+7] = u.lo & 0xff;
-}
-
-function vn(x, xi, y, yi, n) {
- var i,d = 0;
- for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];
- return (1 & ((d - 1) >>> 8)) - 1;
-}
-
-function crypto_verify_16(x, xi, y, yi) {
- return vn(x,xi,y,yi,16);
-}
-
-function crypto_verify_32(x, xi, y, yi) {
- return vn(x,xi,y,yi,32);
-}
-
-function core(out,inp,k,c,h) {
- var w = new Uint32Array(16), x = new Uint32Array(16),
- y = new Uint32Array(16), t = new Uint32Array(4);
- var i, j, m;
-
- for (i = 0; i < 4; i++) {
- x[5*i] = ld32(c, 4*i);
- x[1+i] = ld32(k, 4*i);
- x[6+i] = ld32(inp, 4*i);
- x[11+i] = ld32(k, 16+4*i);
- }
-
- for (i = 0; i < 16; i++) y[i] = x[i];
-
- for (i = 0; i < 20; i++) {
- for (j = 0; j < 4; j++) {
- for (m = 0; m < 4; m++) t[m] = x[(5*j+4*m)%16];
- t[1] ^= L32((t[0]+t[3])|0, 7);
- t[2] ^= L32((t[1]+t[0])|0, 9);
- t[3] ^= L32((t[2]+t[1])|0,13);
- t[0] ^= L32((t[3]+t[2])|0,18);
- for (m = 0; m < 4; m++) w[4*j+(j+m)%4] = t[m];
- }
- for (m = 0; m < 16; m++) x[m] = w[m];
- }
-
- if (h) {
- for (i = 0; i < 16; i++) x[i] = (x[i] + y[i]) | 0;
- for (i = 0; i < 4; i++) {
- x[5*i] = (x[5*i] - ld32(c, 4*i)) | 0;
- x[6+i] = (x[6+i] - ld32(inp, 4*i)) | 0;
- }
- for (i = 0; i < 4; i++) {
- st32(out,4*i,x[5*i]);
- st32(out,16+4*i,x[6+i]);
- }
- } else {
- for (i = 0; i < 16; i++) st32(out, 4 * i, (x[i] + y[i]) | 0);
- }
-}
-
-function crypto_core_salsa20(out,inp,k,c) {
- core(out,inp,k,c,false);
- return 0;
-}
-
-function crypto_core_hsalsa20(out,inp,k,c) {
- core(out,inp,k,c,true);
- return 0;
-}
-
-var sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);
- // "expand 32-byte k"
-
-function crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) {
- var z = new Uint8Array(16), x = new Uint8Array(64);
- var u, i;
- if (!b) return 0;
- for (i = 0; i < 16; i++) z[i] = 0;
- for (i = 0; i < 8; i++) z[i] = n[i];
- while (b >= 64) {
- crypto_core_salsa20(x,z,k,sigma);
- for (i = 0; i < 64; i++) c[cpos+i] = (m?m[mpos+i]:0) ^ x[i];
- u = 1;
- for (i = 8; i < 16; i++) {
- u = u + (z[i] & 0xff) | 0;
- z[i] = u & 0xff;
- u >>>= 8;
- }
- b -= 64;
- cpos += 64;
- if (m) mpos += 64;
- }
- if (b > 0) {
- crypto_core_salsa20(x,z,k,sigma);
- for (i = 0; i < b; i++) c[cpos+i] = (m?m[mpos+i]:0) ^ x[i];
- }
- return 0;
-}
-
-function crypto_stream_salsa20(c,cpos,d,n,k) {
- return crypto_stream_salsa20_xor(c,cpos,null,0,d,n,k);
-}
-
-function crypto_stream(c,cpos,d,n,k) {
- var s = new Uint8Array(32);
- crypto_core_hsalsa20(s,n,k,sigma);
- return crypto_stream_salsa20(c,cpos,d,n.subarray(16),s);
-}
-
-function crypto_stream_xor(c,cpos,m,mpos,d,n,k) {
- var s = new Uint8Array(32);
- crypto_core_hsalsa20(s,n,k,sigma);
- return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,n.subarray(16),s);
-}
-
-function add1305(h, c) {
- var j, u = 0;
- for (j = 0; j < 17; j++) {
- u = (u + ((h[j] + c[j]) | 0)) | 0;
- h[j] = u & 255;
- u >>>= 8;
- }
-}
-
-var minusp = new Uint32Array([
- 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 252
-]);
-
-function crypto_onetimeauth(out, outpos, m, mpos, n, k) {
- var s, i, j, u;
- var x = new Uint32Array(17), r = new Uint32Array(17),
- h = new Uint32Array(17), c = new Uint32Array(17),
- g = new Uint32Array(17);
- for (j = 0; j < 17; j++) r[j]=h[j]=0;
- for (j = 0; j < 16; j++) r[j]=k[j];
- r[3]&=15;
- r[4]&=252;
- r[7]&=15;
- r[8]&=252;
- r[11]&=15;
- r[12]&=252;
- r[15]&=15;
-
- while (n > 0) {
- for (j = 0; j < 17; j++) c[j] = 0;
- for (j = 0; (j < 16) && (j < n); ++j) c[j] = m[mpos+j];
- c[j] = 1;
- mpos += j; n -= j;
- add1305(h,c);
- for (i = 0; i < 17; i++) {
- x[i] = 0;
- for (j = 0; j < 17; j++) x[i] = (x[i] + (h[j] * ((j <= i) ? r[i - j] : ((320 * r[i + 17 - j])|0))) | 0) | 0;
- }
- for (i = 0; i < 17; i++) h[i] = x[i];
- u = 0;
- for (j = 0; j < 16; j++) {
- u = (u + h[j]) | 0;
- h[j] = u & 255;
- u >>>= 8;
- }
- u = (u + h[16]) | 0; h[16] = u & 3;
- u = (5 * (u >>> 2)) | 0;
- for (j = 0; j < 16; j++) {
- u = (u + h[j]) | 0;
- h[j] = u & 255;
- u >>>= 8;
- }
- u = (u + h[16]) | 0; h[16] = u;
- }
-
- for (j = 0; j < 17; j++) g[j] = h[j];
- add1305(h,minusp);
- s = (-(h[16] >>> 7) | 0);
- for (j = 0; j < 17; j++) h[j] ^= s & (g[j] ^ h[j]);
-
- for (j = 0; j < 16; j++) c[j] = k[j + 16];
- c[16] = 0;
- add1305(h,c);
- for (j = 0; j < 16; j++) out[outpos+j] = h[j];
- return 0;
-}
-
-function crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {
- var x = new Uint8Array(16);
- crypto_onetimeauth(x,0,m,mpos,n,k);
- return crypto_verify_16(h,hpos,x,0);
-}
-
-function crypto_secretbox(c,m,d,n,k) {
- var i;
- if (d < 32) return -1;
- crypto_stream_xor(c,0,m,0,d,n,k);
- crypto_onetimeauth(c, 16, c, 32, d - 32, c);
- for (i = 0; i < 16; i++) c[i] = 0;
- return 0;
-}
-
-function crypto_secretbox_open(m,c,d,n,k) {
- var i;
- var x = new Uint8Array(32);
- if (d < 32) return -1;
- crypto_stream(x,0,32,n,k);
- if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1;
- crypto_stream_xor(m,0,c,0,d,n,k);
- for (i = 0; i < 32; i++) m[i] = 0;
- return 0;
-}
-
-function set25519(r, a) {
- var i;
- for (i = 0; i < 16; i++) r[i] = a[i]|0;
-}
-
-function car25519(o) {
- var c;
- var i;
- for (i = 0; i < 16; i++) {
- o[i] += 65536;
- c = Math.floor(o[i] / 65536);
- o[(i+1)*(i<15?1:0)] += c - 1 + 37 * (c-1) * (i===15?1:0);
- o[i] -= (c * 65536);
- }
-}
-
-function sel25519(p, q, b) {
- var t, c = ~(b-1);
- for (var i = 0; i < 16; i++) {
- t = c & (p[i] ^ q[i]);
- p[i] ^= t;
- q[i] ^= t;
- }
-}
-
-function pack25519(o, n) {
- var i, j, b;
- var m = gf(), t = gf();
- for (i = 0; i < 16; i++) t[i] = n[i];
- car25519(t);
- car25519(t);
- car25519(t);
- for (j = 0; j < 2; j++) {
- m[0] = t[0] - 0xffed;
- for (i = 1; i < 15; i++) {
- m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);
- m[i-1] &= 0xffff;
- }
- m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);
- b = (m[15]>>16) & 1;
- m[14] &= 0xffff;
- sel25519(t, m, 1-b);
- }
- for (i = 0; i < 16; i++) {
- o[2*i] = t[i] & 0xff;
- o[2*i+1] = t[i]>>8;
- }
-}
-
-function neq25519(a, b) {
- var c = new Uint8Array(32), d = new Uint8Array(32);
- pack25519(c, a);
- pack25519(d, b);
- return crypto_verify_32(c, 0, d, 0);
-}
-
-function par25519(a) {
- var d = new Uint8Array(32);
- pack25519(d, a);
- return d[0] & 1;
-}
-
-function unpack25519(o, n) {
- var i;
- for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);
- o[15] &= 0x7fff;
-}
-
-function A(o, a, b) {
- var i;
- for (i = 0; i < 16; i++) o[i] = (a[i] + b[i])|0;
-}
-
-function Z(o, a, b) {
- var i;
- for (i = 0; i < 16; i++) o[i] = (a[i] - b[i])|0;
-}
-
-function M(o, a, b) {
- var i, j, t = new Float64Array(31);
- for (i = 0; i < 31; i++) t[i] = 0;
- for (i = 0; i < 16; i++) {
- for (j = 0; j < 16; j++) {
- t[i+j] += a[i] * b[j];
- }
- }
- for (i = 0; i < 15; i++) {
- t[i] += 38 * t[i+16];
- }
- for (i = 0; i < 16; i++) o[i] = t[i];
- car25519(o);
- car25519(o);
-}
-
-function S(o, a) {
- M(o, a, a);
-}
-
-function inv25519(o, i) {
- var c = gf();
- var a;
- for (a = 0; a < 16; a++) c[a] = i[a];
- for (a = 253; a >= 0; a--) {
- S(c, c);
- if(a !== 2 && a !== 4) M(c, c, i);
- }
- for (a = 0; a < 16; a++) o[a] = c[a];
-}
-
-function pow2523(o, i) {
- var c = gf();
- var a;
- for (a = 0; a < 16; a++) c[a] = i[a];
- for (a = 250; a >= 0; a--) {
- S(c, c);
- if(a !== 1) M(c, c, i);
- }
- for (a = 0; a < 16; a++) o[a] = c[a];
-}
-
-function crypto_scalarmult(q, n, p) {
- var z = new Uint8Array(32);
- var x = new Float64Array(80), r, i;
- var a = gf(), b = gf(), c = gf(),
- d = gf(), e = gf(), f = gf();
- for (i = 0; i < 31; i++) z[i] = n[i];
- z[31]=(n[31]&127)|64;
- z[0]&=248;
- unpack25519(x,p);
- for (i = 0; i < 16; i++) {
- b[i]=x[i];
- d[i]=a[i]=c[i]=0;
- }
- a[0]=d[0]=1;
- for (i=254; i>=0; --i) {
- r=(z[i>>>3]>>>(i&7))&1;
- sel25519(a,b,r);
- sel25519(c,d,r);
- A(e,a,c);
- Z(a,a,c);
- A(c,b,d);
- Z(b,b,d);
- S(d,e);
- S(f,a);
- M(a,c,a);
- M(c,b,e);
- A(e,a,c);
- Z(a,a,c);
- S(b,a);
- Z(c,d,f);
- M(a,c,_121665);
- A(a,a,d);
- M(c,c,a);
- M(a,d,f);
- M(d,b,x);
- S(b,e);
- sel25519(a,b,r);
- sel25519(c,d,r);
- }
- for (i = 0; i < 16; i++) {
- x[i+16]=a[i];
- x[i+32]=c[i];
- x[i+48]=b[i];
- x[i+64]=d[i];
- }
- var x32 = x.subarray(32);
- var x16 = x.subarray(16);
- inv25519(x32,x32);
- M(x16,x16,x32);
- pack25519(q,x16);
- return 0;
-}
-
-function crypto_scalarmult_base(q, n) {
- return crypto_scalarmult(q, n, _9);
-}
-
-function crypto_box_keypair(y, x) {
- randombytes(x, 32);
- return crypto_scalarmult_base(y, x);
-}
-
-function crypto_box_beforenm(k, y, x) {
- var s = new Uint8Array(32);
- crypto_scalarmult(s, x, y);
- return crypto_core_hsalsa20(k, _0, s, sigma);
-}
-
-var crypto_box_afternm = crypto_secretbox;
-var crypto_box_open_afternm = crypto_secretbox_open;
-
-function crypto_box(c, m, d, n, y, x) {
- var k = new Uint8Array(32);
- crypto_box_beforenm(k, y, x);
- return crypto_box_afternm(c, m, d, n, k);
-}
-
-function crypto_box_open(m, c, d, n, y, x) {
- var k = new Uint8Array(32);
- crypto_box_beforenm(k, y, x);
- return crypto_box_open_afternm(m, c, d, n, k);
-}
-
-function add64() {
- var a = 0, b = 0, c = 0, d = 0, m16 = 65535, l, h, i;
- for (i = 0; i < arguments.length; i++) {
- l = arguments[i].lo;
- h = arguments[i].hi;
- a += (l & m16); b += (l >>> 16);
- c += (h & m16); d += (h >>> 16);
- }
-
- b += (a >>> 16);
- c += (b >>> 16);
- d += (c >>> 16);
-
- return new u64((c & m16) | (d << 16), (a & m16) | (b << 16));
-}
-
-function shr64(x, c) {
- return new u64((x.hi >>> c), (x.lo >>> c) | (x.hi << (32 - c)));
-}
-
-function xor64() {
- var l = 0, h = 0, i;
- for (i = 0; i < arguments.length; i++) {
- l ^= arguments[i].lo;
- h ^= arguments[i].hi;
- }
- return new u64(h, l);
-}
-
-function R(x, c) {
- var h, l, c1 = 32 - c;
- if (c < 32) {
- h = (x.hi >>> c) | (x.lo << c1);
- l = (x.lo >>> c) | (x.hi << c1);
- } else if (c < 64) {
- h = (x.lo >>> c) | (x.hi << c1);
- l = (x.hi >>> c) | (x.lo << c1);
- }
- return new u64(h, l);
-}
-
-function Ch(x, y, z) {
- var h = (x.hi & y.hi) ^ (~x.hi & z.hi),
- l = (x.lo & y.lo) ^ (~x.lo & z.lo);
- return new u64(h, l);
-}
-
-function Maj(x, y, z) {
- var h = (x.hi & y.hi) ^ (x.hi & z.hi) ^ (y.hi & z.hi),
- l = (x.lo & y.lo) ^ (x.lo & z.lo) ^ (y.lo & z.lo);
- return new u64(h, l);
-}
-
-function Sigma0(x) { return xor64(R(x,28), R(x,34), R(x,39)); }
-function Sigma1(x) { return xor64(R(x,14), R(x,18), R(x,41)); }
-function sigma0(x) { return xor64(R(x, 1), R(x, 8), shr64(x,7)); }
-function sigma1(x) { return xor64(R(x,19), R(x,61), shr64(x,6)); }
-
-var K = [
- new u64(0x428a2f98, 0xd728ae22), new u64(0x71374491, 0x23ef65cd),
- new u64(0xb5c0fbcf, 0xec4d3b2f), new u64(0xe9b5dba5, 0x8189dbbc),
- new u64(0x3956c25b, 0xf348b538), new u64(0x59f111f1, 0xb605d019),
- new u64(0x923f82a4, 0xaf194f9b), new u64(0xab1c5ed5, 0xda6d8118),
- new u64(0xd807aa98, 0xa3030242), new u64(0x12835b01, 0x45706fbe),
- new u64(0x243185be, 0x4ee4b28c), new u64(0x550c7dc3, 0xd5ffb4e2),
- new u64(0x72be5d74, 0xf27b896f), new u64(0x80deb1fe, 0x3b1696b1),
- new u64(0x9bdc06a7, 0x25c71235), new u64(0xc19bf174, 0xcf692694),
- new u64(0xe49b69c1, 0x9ef14ad2), new u64(0xefbe4786, 0x384f25e3),
- new u64(0x0fc19dc6, 0x8b8cd5b5), new u64(0x240ca1cc, 0x77ac9c65),
- new u64(0x2de92c6f, 0x592b0275), new u64(0x4a7484aa, 0x6ea6e483),
- new u64(0x5cb0a9dc, 0xbd41fbd4), new u64(0x76f988da, 0x831153b5),
- new u64(0x983e5152, 0xee66dfab), new u64(0xa831c66d, 0x2db43210),
- new u64(0xb00327c8, 0x98fb213f), new u64(0xbf597fc7, 0xbeef0ee4),
- new u64(0xc6e00bf3, 0x3da88fc2), new u64(0xd5a79147, 0x930aa725),
- new u64(0x06ca6351, 0xe003826f), new u64(0x14292967, 0x0a0e6e70),
- new u64(0x27b70a85, 0x46d22ffc), new u64(0x2e1b2138, 0x5c26c926),
- new u64(0x4d2c6dfc, 0x5ac42aed), new u64(0x53380d13, 0x9d95b3df),
- new u64(0x650a7354, 0x8baf63de), new u64(0x766a0abb, 0x3c77b2a8),
- new u64(0x81c2c92e, 0x47edaee6), new u64(0x92722c85, 0x1482353b),
- new u64(0xa2bfe8a1, 0x4cf10364), new u64(0xa81a664b, 0xbc423001),
- new u64(0xc24b8b70, 0xd0f89791), new u64(0xc76c51a3, 0x0654be30),
- new u64(0xd192e819, 0xd6ef5218), new u64(0xd6990624, 0x5565a910),
- new u64(0xf40e3585, 0x5771202a), new u64(0x106aa070, 0x32bbd1b8),
- new u64(0x19a4c116, 0xb8d2d0c8), new u64(0x1e376c08, 0x5141ab53),
- new u64(0x2748774c, 0xdf8eeb99), new u64(0x34b0bcb5, 0xe19b48a8),
- new u64(0x391c0cb3, 0xc5c95a63), new u64(0x4ed8aa4a, 0xe3418acb),
- new u64(0x5b9cca4f, 0x7763e373), new u64(0x682e6ff3, 0xd6b2b8a3),
- new u64(0x748f82ee, 0x5defb2fc), new u64(0x78a5636f, 0x43172f60),
- new u64(0x84c87814, 0xa1f0ab72), new u64(0x8cc70208, 0x1a6439ec),
- new u64(0x90befffa, 0x23631e28), new u64(0xa4506ceb, 0xde82bde9),
- new u64(0xbef9a3f7, 0xb2c67915), new u64(0xc67178f2, 0xe372532b),
- new u64(0xca273ece, 0xea26619c), new u64(0xd186b8c7, 0x21c0c207),
- new u64(0xeada7dd6, 0xcde0eb1e), new u64(0xf57d4f7f, 0xee6ed178),
- new u64(0x06f067aa, 0x72176fba), new u64(0x0a637dc5, 0xa2c898a6),
- new u64(0x113f9804, 0xbef90dae), new u64(0x1b710b35, 0x131c471b),
- new u64(0x28db77f5, 0x23047d84), new u64(0x32caab7b, 0x40c72493),
- new u64(0x3c9ebe0a, 0x15c9bebc), new u64(0x431d67c4, 0x9c100d4c),
- new u64(0x4cc5d4be, 0xcb3e42b6), new u64(0x597f299c, 0xfc657e2a),
- new u64(0x5fcb6fab, 0x3ad6faec), new u64(0x6c44198c, 0x4a475817)
-];
-
-function crypto_hashblocks(x, m, n) {
- var z = [], b = [], a = [], w = [], t, i, j;
-
- for (i = 0; i < 8; i++) z[i] = a[i] = dl64(x, 8*i);
-
- var pos = 0;
- while (n >= 128) {
- for (i = 0; i < 16; i++) w[i] = dl64(m, 8*i+pos);
- for (i = 0; i < 80; i++) {
- for (j = 0; j < 8; j++) b[j] = a[j];
- t = add64(a[7], Sigma1(a[4]), Ch(a[4], a[5], a[6]), K[i], w[i%16]);
- b[7] = add64(t, Sigma0(a[0]), Maj(a[0], a[1], a[2]));
- b[3] = add64(b[3], t);
- for (j = 0; j < 8; j++) a[(j+1)%8] = b[j];
- if (i%16 === 15) {
- for (j = 0; j < 16; j++) {
- w[j] = add64(w[j], w[(j+9)%16], sigma0(w[(j+1)%16]), sigma1(w[(j+14)%16]));
- }
- }
- }
-
- for (i = 0; i < 8; i++) {
- a[i] = add64(a[i], z[i]);
- z[i] = a[i];
- }
-
- pos += 128;
- n -= 128;
- }
-
- for (i = 0; i < 8; i++) ts64(x, 8*i, z[i]);
- return n;
-}
-
-var iv = new Uint8Array([
- 0x6a,0x09,0xe6,0x67,0xf3,0xbc,0xc9,0x08,
- 0xbb,0x67,0xae,0x85,0x84,0xca,0xa7,0x3b,
- 0x3c,0x6e,0xf3,0x72,0xfe,0x94,0xf8,0x2b,
- 0xa5,0x4f,0xf5,0x3a,0x5f,0x1d,0x36,0xf1,
- 0x51,0x0e,0x52,0x7f,0xad,0xe6,0x82,0xd1,
- 0x9b,0x05,0x68,0x8c,0x2b,0x3e,0x6c,0x1f,
- 0x1f,0x83,0xd9,0xab,0xfb,0x41,0xbd,0x6b,
- 0x5b,0xe0,0xcd,0x19,0x13,0x7e,0x21,0x79
-]);
-
-function crypto_hash(out, m, n) {
- var h = new Uint8Array(64), x = new Uint8Array(256);
- var i, b = n;
-
- for (i = 0; i < 64; i++) h[i] = iv[i];
-
- crypto_hashblocks(h, m, n);
- n %= 128;
-
- for (i = 0; i < 256; i++) x[i] = 0;
- for (i = 0; i < n; i++) x[i] = m[b-n+i];
- x[n] = 128;
-
- n = 256-128*(n<112?1:0);
- x[n-9] = 0;
- ts64(x, n-8, new u64((b / 0x20000000) | 0, b << 3));
- crypto_hashblocks(h, x, n);
-
- for (i = 0; i < 64; i++) out[i] = h[i];
-
- return 0;
-}
-
-function add(p, q) {
- var a = gf(), b = gf(), c = gf(),
- d = gf(), e = gf(), f = gf(),
- g = gf(), h = gf(), t = gf();
-
- Z(a, p[1], p[0]);
- Z(t, q[1], q[0]);
- M(a, a, t);
- A(b, p[0], p[1]);
- A(t, q[0], q[1]);
- M(b, b, t);
- M(c, p[3], q[3]);
- M(c, c, D2);
- M(d, p[2], q[2]);
- A(d, d, d);
- Z(e, b, a);
- Z(f, d, c);
- A(g, d, c);
- A(h, b, a);
-
- M(p[0], e, f);
- M(p[1], h, g);
- M(p[2], g, f);
- M(p[3], e, h);
-}
-
-function cswap(p, q, b) {
- var i;
- for (i = 0; i < 4; i++) {
- sel25519(p[i], q[i], b);
- }
-}
-
-function pack(r, p) {
- var tx = gf(), ty = gf(), zi = gf();
- inv25519(zi, p[2]);
- M(tx, p[0], zi);
- M(ty, p[1], zi);
- pack25519(r, ty);
- r[31] ^= par25519(tx) << 7;
-}
-
-function scalarmult(p, q, s) {
- var b, i;
- set25519(p[0], gf0);
- set25519(p[1], gf1);
- set25519(p[2], gf1);
- set25519(p[3], gf0);
- for (i = 255; i >= 0; --i) {
- b = (s[(i/8)|0] >> (i&7)) & 1;
- cswap(p, q, b);
- add(q, p);
- add(p, p);
- cswap(p, q, b);
- }
-}
-
-function scalarbase(p, s) {
- var q = [gf(), gf(), gf(), gf()];
- set25519(q[0], X);
- set25519(q[1], Y);
- set25519(q[2], gf1);
- M(q[3], X, Y);
- scalarmult(p, q, s);
-}
-
-function crypto_sign_keypair(pk, sk, seeded) {
- var d = new Uint8Array(64);
- var p = [gf(), gf(), gf(), gf()];
- var i;
-
- if (!seeded) randombytes(sk, 32);
- crypto_hash(d, sk, 32);
- d[0] &= 248;
- d[31] &= 127;
- d[31] |= 64;
-
- scalarbase(p, d);
- pack(pk, p);
-
- for (i = 0; i < 32; i++) sk[i+32] = pk[i];
- return 0;
-}
-
-var L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);
-
-function modL(r, x) {
- var carry, i, j, k;
- for (i = 63; i >= 32; --i) {
- carry = 0;
- for (j = i - 32, k = i - 12; j < k; ++j) {
- x[j] += carry - 16 * x[i] * L[j - (i - 32)];
- carry = (x[j] + 128) >> 8;
- x[j] -= carry * 256;
- }
- x[j] += carry;
- x[i] = 0;
- }
- carry = 0;
- for (j = 0; j < 32; j++) {
- x[j] += carry - (x[31] >> 4) * L[j];
- carry = x[j] >> 8;
- x[j] &= 255;
- }
- for (j = 0; j < 32; j++) x[j] -= carry * L[j];
- for (i = 0; i < 32; i++) {
- x[i+1] += x[i] >> 8;
- r[i] = x[i] & 255;
- }
-}
-
-function reduce(r) {
- var x = new Float64Array(64), i;
- for (i = 0; i < 64; i++) x[i] = r[i];
- for (i = 0; i < 64; i++) r[i] = 0;
- modL(r, x);
-}
-
-// Note: difference from C - smlen returned, not passed as argument.
-function crypto_sign(sm, m, n, sk) {
- var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);
- var i, j, x = new Float64Array(64);
- var p = [gf(), gf(), gf(), gf()];
-
- crypto_hash(d, sk, 32);
- d[0] &= 248;
- d[31] &= 127;
- d[31] |= 64;
-
- var smlen = n + 64;
- for (i = 0; i < n; i++) sm[64 + i] = m[i];
- for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];
-
- crypto_hash(r, sm.subarray(32), n+32);
- reduce(r);
- scalarbase(p, r);
- pack(sm, p);
-
- for (i = 32; i < 64; i++) sm[i] = sk[i];
- crypto_hash(h, sm, n + 64);
- reduce(h);
-
- for (i = 0; i < 64; i++) x[i] = 0;
- for (i = 0; i < 32; i++) x[i] = r[i];
- for (i = 0; i < 32; i++) {
- for (j = 0; j < 32; j++) {
- x[i+j] += h[i] * d[j];
- }
- }
-
- modL(sm.subarray(32), x);
- return smlen;
-}
-
-function unpackneg(r, p) {
- var t = gf(), chk = gf(), num = gf(),
- den = gf(), den2 = gf(), den4 = gf(),
- den6 = gf();
-
- set25519(r[2], gf1);
- unpack25519(r[1], p);
- S(num, r[1]);
- M(den, num, D);
- Z(num, num, r[2]);
- A(den, r[2], den);
-
- S(den2, den);
- S(den4, den2);
- M(den6, den4, den2);
- M(t, den6, num);
- M(t, t, den);
-
- pow2523(t, t);
- M(t, t, num);
- M(t, t, den);
- M(t, t, den);
- M(r[0], t, den);
-
- S(chk, r[0]);
- M(chk, chk, den);
- if (neq25519(chk, num)) M(r[0], r[0], I);
-
- S(chk, r[0]);
- M(chk, chk, den);
- if (neq25519(chk, num)) return -1;
-
- if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);
-
- M(r[3], r[0], r[1]);
- return 0;
-}
-
-function crypto_sign_open(m, sm, n, pk) {
- var i, mlen;
- var t = new Uint8Array(32), h = new Uint8Array(64);
- var p = [gf(), gf(), gf(), gf()],
- q = [gf(), gf(), gf(), gf()];
-
- mlen = -1;
- if (n < 64) return -1;
-
- if (unpackneg(q, pk)) return -1;
-
- for (i = 0; i < n; i++) m[i] = sm[i];
- for (i = 0; i < 32; i++) m[i+32] = pk[i];
- crypto_hash(h, m, n);
- reduce(h);
- scalarmult(p, q, h);
-
- scalarbase(q, sm.subarray(32));
- add(p, q);
- pack(t, p);
-
- n -= 64;
- if (crypto_verify_32(sm, 0, t, 0)) {
- for (i = 0; i < n; i++) m[i] = 0;
- return -1;
- }
-
- for (i = 0; i < n; i++) m[i] = sm[i + 64];
- mlen = n;
- return mlen;
-}
-
-var crypto_secretbox_KEYBYTES = 32,
- crypto_secretbox_NONCEBYTES = 24,
- crypto_secretbox_ZEROBYTES = 32,
- crypto_secretbox_BOXZEROBYTES = 16,
- crypto_scalarmult_BYTES = 32,
- crypto_scalarmult_SCALARBYTES = 32,
- crypto_box_PUBLICKEYBYTES = 32,
- crypto_box_SECRETKEYBYTES = 32,
- crypto_box_BEFORENMBYTES = 32,
- crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES,
- crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES,
- crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES,
- crypto_sign_BYTES = 64,
- crypto_sign_PUBLICKEYBYTES = 32,
- crypto_sign_SECRETKEYBYTES = 64,
- crypto_sign_SEEDBYTES = 32,
- crypto_hash_BYTES = 64;
-
-nacl.lowlevel = {
- crypto_core_hsalsa20: crypto_core_hsalsa20,
- crypto_stream_xor: crypto_stream_xor,
- crypto_stream: crypto_stream,
- crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,
- crypto_stream_salsa20: crypto_stream_salsa20,
- crypto_onetimeauth: crypto_onetimeauth,
- crypto_onetimeauth_verify: crypto_onetimeauth_verify,
- crypto_verify_16: crypto_verify_16,
- crypto_verify_32: crypto_verify_32,
- crypto_secretbox: crypto_secretbox,
- crypto_secretbox_open: crypto_secretbox_open,
- crypto_scalarmult: crypto_scalarmult,
- crypto_scalarmult_base: crypto_scalarmult_base,
- crypto_box_beforenm: crypto_box_beforenm,
- crypto_box_afternm: crypto_box_afternm,
- crypto_box: crypto_box,
- crypto_box_open: crypto_box_open,
- crypto_box_keypair: crypto_box_keypair,
- crypto_hash: crypto_hash,
- crypto_sign: crypto_sign,
- crypto_sign_keypair: crypto_sign_keypair,
- crypto_sign_open: crypto_sign_open,
-
- crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,
- crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,
- crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,
- crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,
- crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,
- crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,
- crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,
- crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,
- crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,
- crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,
- crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,
- crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,
- crypto_sign_BYTES: crypto_sign_BYTES,
- crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,
- crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,
- crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,
- crypto_hash_BYTES: crypto_hash_BYTES
-};
-
-/* High-level API */
-
-function checkLengths(k, n) {
- if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');
- if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');
-}
-
-function checkBoxLengths(pk, sk) {
- if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');
- if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');
-}
-
-function checkArrayTypes() {
- var t, i;
- for (i = 0; i < arguments.length; i++) {
- if ((t = Object.prototype.toString.call(arguments[i])) !== '[object Uint8Array]')
- throw new TypeError('unexpected type ' + t + ', use Uint8Array');
- }
-}
-
-function cleanup(arr) {
- for (var i = 0; i < arr.length; i++) arr[i] = 0;
-}
-
-// TODO: Completely remove this in v0.15.
-if (!nacl.util) {
- nacl.util = {};
- nacl.util.decodeUTF8 = nacl.util.encodeUTF8 = nacl.util.encodeBase64 = nacl.util.decodeBase64 = function() {
- throw new Error('nacl.util moved into separate package: https://github.com/dchest/tweetnacl-util-js');
- };
-}
-
-nacl.randomBytes = function(n) {
- var b = new Uint8Array(n);
- randombytes(b, n);
- return b;
-};
-
-nacl.secretbox = function(msg, nonce, key) {
- checkArrayTypes(msg, nonce, key);
- checkLengths(key, nonce);
- var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);
- var c = new Uint8Array(m.length);
- for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i];
- crypto_secretbox(c, m, m.length, nonce, key);
- return c.subarray(crypto_secretbox_BOXZEROBYTES);
-};
-
-nacl.secretbox.open = function(box, nonce, key) {
- checkArrayTypes(box, nonce, key);
- checkLengths(key, nonce);
- var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);
- var m = new Uint8Array(c.length);
- for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i];
- if (c.length < 32) return false;
- if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return false;
- return m.subarray(crypto_secretbox_ZEROBYTES);
-};
-
-nacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;
-nacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;
-nacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;
-
-nacl.scalarMult = function(n, p) {
- checkArrayTypes(n, p);
- if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');
- if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');
- var q = new Uint8Array(crypto_scalarmult_BYTES);
- crypto_scalarmult(q, n, p);
- return q;
-};
-
-nacl.scalarMult.base = function(n) {
- checkArrayTypes(n);
- if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');
- var q = new Uint8Array(crypto_scalarmult_BYTES);
- crypto_scalarmult_base(q, n);
- return q;
-};
-
-nacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;
-nacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;
-
-nacl.box = function(msg, nonce, publicKey, secretKey) {
- var k = nacl.box.before(publicKey, secretKey);
- return nacl.secretbox(msg, nonce, k);
-};
-
-nacl.box.before = function(publicKey, secretKey) {
- checkArrayTypes(publicKey, secretKey);
- checkBoxLengths(publicKey, secretKey);
- var k = new Uint8Array(crypto_box_BEFORENMBYTES);
- crypto_box_beforenm(k, publicKey, secretKey);
- return k;
-};
-
-nacl.box.after = nacl.secretbox;
-
-nacl.box.open = function(msg, nonce, publicKey, secretKey) {
- var k = nacl.box.before(publicKey, secretKey);
- return nacl.secretbox.open(msg, nonce, k);
-};
-
-nacl.box.open.after = nacl.secretbox.open;
-
-nacl.box.keyPair = function() {
- var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);
- var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);
- crypto_box_keypair(pk, sk);
- return {publicKey: pk, secretKey: sk};
-};
-
-nacl.box.keyPair.fromSecretKey = function(secretKey) {
- checkArrayTypes(secretKey);
- if (secretKey.length !== crypto_box_SECRETKEYBYTES)
- throw new Error('bad secret key size');
- var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);
- crypto_scalarmult_base(pk, secretKey);
- return {publicKey: pk, secretKey: new Uint8Array(secretKey)};
-};
-
-nacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;
-nacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;
-nacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;
-nacl.box.nonceLength = crypto_box_NONCEBYTES;
-nacl.box.overheadLength = nacl.secretbox.overheadLength;
-
-nacl.sign = function(msg, secretKey) {
- checkArrayTypes(msg, secretKey);
- if (secretKey.length !== crypto_sign_SECRETKEYBYTES)
- throw new Error('bad secret key size');
- var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);
- crypto_sign(signedMsg, msg, msg.length, secretKey);
- return signedMsg;
-};
-
-nacl.sign.open = function(signedMsg, publicKey) {
- if (arguments.length !== 2)
- throw new Error('nacl.sign.open accepts 2 arguments; did you mean to use nacl.sign.detached.verify?');
- checkArrayTypes(signedMsg, publicKey);
- if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)
- throw new Error('bad public key size');
- var tmp = new Uint8Array(signedMsg.length);
- var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);
- if (mlen < 0) return null;
- var m = new Uint8Array(mlen);
- for (var i = 0; i < m.length; i++) m[i] = tmp[i];
- return m;
-};
-
-nacl.sign.detached = function(msg, secretKey) {
- var signedMsg = nacl.sign(msg, secretKey);
- var sig = new Uint8Array(crypto_sign_BYTES);
- for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];
- return sig;
-};
-
-nacl.sign.detached.verify = function(msg, sig, publicKey) {
- checkArrayTypes(msg, sig, publicKey);
- if (sig.length !== crypto_sign_BYTES)
- throw new Error('bad signature size');
- if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)
- throw new Error('bad public key size');
- var sm = new Uint8Array(crypto_sign_BYTES + msg.length);
- var m = new Uint8Array(crypto_sign_BYTES + msg.length);
- var i;
- for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];
- for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];
- return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);
-};
-
-nacl.sign.keyPair = function() {
- var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);
- var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);
- crypto_sign_keypair(pk, sk);
- return {publicKey: pk, secretKey: sk};
-};
-
-nacl.sign.keyPair.fromSecretKey = function(secretKey) {
- checkArrayTypes(secretKey);
- if (secretKey.length !== crypto_sign_SECRETKEYBYTES)
- throw new Error('bad secret key size');
- var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);
- for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];
- return {publicKey: pk, secretKey: new Uint8Array(secretKey)};
-};
-
-nacl.sign.keyPair.fromSeed = function(seed) {
- checkArrayTypes(seed);
- if (seed.length !== crypto_sign_SEEDBYTES)
- throw new Error('bad seed size');
- var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);
- var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);
- for (var i = 0; i < 32; i++) sk[i] = seed[i];
- crypto_sign_keypair(pk, sk, true);
- return {publicKey: pk, secretKey: sk};
-};
-
-nacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;
-nacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;
-nacl.sign.seedLength = crypto_sign_SEEDBYTES;
-nacl.sign.signatureLength = crypto_sign_BYTES;
-
-nacl.hash = function(msg) {
- checkArrayTypes(msg);
- var h = new Uint8Array(crypto_hash_BYTES);
- crypto_hash(h, msg, msg.length);
- return h;
-};
-
-nacl.hash.hashLength = crypto_hash_BYTES;
-
-nacl.verify = function(x, y) {
- checkArrayTypes(x, y);
- // Zero length arguments are considered not equal.
- if (x.length === 0 || y.length === 0) return false;
- if (x.length !== y.length) return false;
- return (vn(x, 0, y, 0, x.length) === 0) ? true : false;
-};
-
-nacl.setPRNG = function(fn) {
- randombytes = fn;
-};
-
-(function() {
- // Initialize PRNG if environment provides CSPRNG.
- // If not, methods calling randombytes will throw.
- var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null;
- if (crypto && crypto.getRandomValues) {
- // Browsers.
- var QUOTA = 65536;
- nacl.setPRNG(function(x, n) {
- var i, v = new Uint8Array(n);
- for (i = 0; i < n; i += QUOTA) {
- crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));
- }
- for (i = 0; i < n; i++) x[i] = v[i];
- cleanup(v);
- });
- } else if (typeof require !== 'undefined') {
- // Node.js.
- crypto = require('crypto');
- if (crypto && crypto.randomBytes) {
- nacl.setPRNG(function(x, n) {
- var i, v = crypto.randomBytes(n);
- for (i = 0; i < n; i++) x[i] = v[i];
- cleanup(v);
- });
- }
- }
-})();
-
-})(typeof module !== 'undefined' && module.exports ? module.exports : (self.nacl = self.nacl || {}));
diff --git a/deps/npm/node_modules/tweetnacl/nacl.min.js b/deps/npm/node_modules/tweetnacl/nacl.min.js
deleted file mode 100644
index 4484974e619..00000000000
--- a/deps/npm/node_modules/tweetnacl/nacl.min.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(r){"use strict";function n(r,n){return r<<n|r>>>32-n}function e(r,n){var e=255&r[n+3];return e=e<<8|255&r[n+2],e=e<<8|255&r[n+1],e<<8|255&r[n+0]}function t(r,n){var e=r[n]<<24|r[n+1]<<16|r[n+2]<<8|r[n+3],t=r[n+4]<<24|r[n+5]<<16|r[n+6]<<8|r[n+7];return new sr(e,t)}function o(r,n,e){var t;for(t=0;t<4;t++)r[n+t]=255&e,e>>>=8}function i(r,n,e){r[n]=e.hi>>24&255,r[n+1]=e.hi>>16&255,r[n+2]=e.hi>>8&255,r[n+3]=255&e.hi,r[n+4]=e.lo>>24&255,r[n+5]=e.lo>>16&255,r[n+6]=e.lo>>8&255,r[n+7]=255&e.lo}function a(r,n,e,t,o){var i,a=0;for(i=0;i<o;i++)a|=r[n+i]^e[t+i];return(1&a-1>>>8)-1}function f(r,n,e,t){return a(r,n,e,t,16)}function u(r,n,e,t){return a(r,n,e,t,32)}function c(r,t,i,a,f){var u,c,w,y=new Uint32Array(16),l=new Uint32Array(16),s=new Uint32Array(16),h=new Uint32Array(4);for(u=0;u<4;u++)l[5*u]=e(a,4*u),l[1+u]=e(i,4*u),l[6+u]=e(t,4*u),l[11+u]=e(i,16+4*u);for(u=0;u<16;u++)s[u]=l[u];for(u=0;u<20;u++){for(c=0;c<4;c++){for(w=0;w<4;w++)h[w]=l[(5*c+4*w)%16];for(h[1]^=n(h[0]+h[3]|0,7),h[2]^=n(h[1]+h[0]|0,9),h[3]^=n(h[2]+h[1]|0,13),h[0]^=n(h[3]+h[2]|0,18),w=0;w<4;w++)y[4*c+(c+w)%4]=h[w]}for(w=0;w<16;w++)l[w]=y[w]}if(f){for(u=0;u<16;u++)l[u]=l[u]+s[u]|0;for(u=0;u<4;u++)l[5*u]=l[5*u]-e(a,4*u)|0,l[6+u]=l[6+u]-e(t,4*u)|0;for(u=0;u<4;u++)o(r,4*u,l[5*u]),o(r,16+4*u,l[6+u])}else for(u=0;u<16;u++)o(r,4*u,l[u]+s[u]|0)}function w(r,n,e,t){return c(r,n,e,t,!1),0}function y(r,n,e,t){return c(r,n,e,t,!0),0}function l(r,n,e,t,o,i,a){var f,u,c=new Uint8Array(16),y=new Uint8Array(64);if(!o)return 0;for(u=0;u<16;u++)c[u]=0;for(u=0;u<8;u++)c[u]=i[u];for(;o>=64;){for(w(y,c,a,Br),u=0;u<64;u++)r[n+u]=(e?e[t+u]:0)^y[u];for(f=1,u=8;u<16;u++)f=f+(255&c[u])|0,c[u]=255&f,f>>>=8;o-=64,n+=64,e&&(t+=64)}if(o>0)for(w(y,c,a,Br),u=0;u<o;u++)r[n+u]=(e?e[t+u]:0)^y[u];return 0}function s(r,n,e,t,o){return l(r,n,null,0,e,t,o)}function h(r,n,e,t,o){var i=new Uint8Array(32);return y(i,t,o,Br),s(r,n,e,t.subarray(16),i)}function g(r,n,e,t,o,i,a){var f=new Uint8Array(32);return y(f,i,a,Br),l(r,n,e,t,o,i.subarray(16),f)}function v(r,n){var e,t=0;for(e=0;e<17;e++)t=t+(r[e]+n[e]|0)|0,r[e]=255&t,t>>>=8}function b(r,n,e,t,o,i){var a,f,u,c,w=new Uint32Array(17),y=new Uint32Array(17),l=new Uint32Array(17),s=new Uint32Array(17),h=new Uint32Array(17);for(u=0;u<17;u++)y[u]=l[u]=0;for(u=0;u<16;u++)y[u]=i[u];for(y[3]&=15,y[4]&=252,y[7]&=15,y[8]&=252,y[11]&=15,y[12]&=252,y[15]&=15;o>0;){for(u=0;u<17;u++)s[u]=0;for(u=0;u<16&&u<o;++u)s[u]=e[t+u];for(s[u]=1,t+=u,o-=u,v(l,s),f=0;f<17;f++)for(w[f]=0,u=0;u<17;u++)w[f]=w[f]+l[u]*(u<=f?y[f-u]:320*y[f+17-u]|0)|0|0;for(f=0;f<17;f++)l[f]=w[f];for(c=0,u=0;u<16;u++)c=c+l[u]|0,l[u]=255&c,c>>>=8;for(c=c+l[16]|0,l[16]=3&c,c=5*(c>>>2)|0,u=0;u<16;u++)c=c+l[u]|0,l[u]=255&c,c>>>=8;c=c+l[16]|0,l[16]=c}for(u=0;u<17;u++)h[u]=l[u];for(v(l,Sr),a=0|-(l[16]>>>7),u=0;u<17;u++)l[u]^=a&(h[u]^l[u]);for(u=0;u<16;u++)s[u]=i[u+16];for(s[16]=0,v(l,s),u=0;u<16;u++)r[n+u]=l[u];return 0}function p(r,n,e,t,o,i){var a=new Uint8Array(16);return b(a,0,e,t,o,i),f(r,n,a,0)}function _(r,n,e,t,o){var i;if(e<32)return-1;for(g(r,0,n,0,e,t,o),b(r,16,r,32,e-32,r),i=0;i<16;i++)r[i]=0;return 0}function A(r,n,e,t,o){var i,a=new Uint8Array(32);if(e<32)return-1;if(h(a,0,32,t,o),0!==p(n,16,n,32,e-32,a))return-1;for(g(r,0,n,0,e,t,o),i=0;i<32;i++)r[i]=0;return 0}function U(r,n){var e;for(e=0;e<16;e++)r[e]=0|n[e]}function E(r){var n,e;for(e=0;e<16;e++)r[e]+=65536,n=Math.floor(r[e]/65536),r[(e+1)*(e<15?1:0)]+=n-1+37*(n-1)*(15===e?1:0),r[e]-=65536*n}function d(r,n,e){for(var t,o=~(e-1),i=0;i<16;i++)t=o&(r[i]^n[i]),r[i]^=t,n[i]^=t}function x(r,n){var e,t,o,i=hr(),a=hr();for(e=0;e<16;e++)a[e]=n[e];for(E(a),E(a),E(a),t=0;t<2;t++){for(i[0]=a[0]-65517,e=1;e<15;e++)i[e]=a[e]-65535-(i[e-1]>>16&1),i[e-1]&=65535;i[15]=a[15]-32767-(i[14]>>16&1),o=i[15]>>16&1,i[14]&=65535,d(a,i,1-o)}for(e=0;e<16;e++)r[2*e]=255&a[e],r[2*e+1]=a[e]>>8}function m(r,n){var e=new Uint8Array(32),t=new Uint8Array(32);return x(e,r),x(t,n),u(e,0,t,0)}function B(r){var n=new Uint8Array(32);return x(n,r),1&n[0]}function S(r,n){var e;for(e=0;e<16;e++)r[e]=n[2*e]+(n[2*e+1]<<8);r[15]&=32767}function K(r,n,e){var t;for(t=0;t<16;t++)r[t]=n[t]+e[t]|0}function T(r,n,e){var t;for(t=0;t<16;t++)r[t]=n[t]-e[t]|0}function Y(r,n,e){var t,o,i=new Float64Array(31);for(t=0;t<31;t++)i[t]=0;for(t=0;t<16;t++)for(o=0;o<16;o++)i[t+o]+=n[t]*e[o];for(t=0;t<15;t++)i[t]+=38*i[t+16];for(t=0;t<16;t++)r[t]=i[t];E(r),E(r)}function L(r,n){Y(r,n,n)}function k(r,n){var e,t=hr();for(e=0;e<16;e++)t[e]=n[e];for(e=253;e>=0;e--)L(t,t),2!==e&&4!==e&&Y(t,t,n);for(e=0;e<16;e++)r[e]=t[e]}function z(r,n){var e,t=hr();for(e=0;e<16;e++)t[e]=n[e];for(e=250;e>=0;e--)L(t,t),1!==e&&Y(t,t,n);for(e=0;e<16;e++)r[e]=t[e]}function R(r,n,e){var t,o,i=new Uint8Array(32),a=new Float64Array(80),f=hr(),u=hr(),c=hr(),w=hr(),y=hr(),l=hr();for(o=0;o<31;o++)i[o]=n[o];for(i[31]=127&n[31]|64,i[0]&=248,S(a,e),o=0;o<16;o++)u[o]=a[o],w[o]=f[o]=c[o]=0;for(f[0]=w[0]=1,o=254;o>=0;--o)t=i[o>>>3]>>>(7&o)&1,d(f,u,t),d(c,w,t),K(y,f,c),T(f,f,c),K(c,u,w),T(u,u,w),L(w,y),L(l,f),Y(f,c,f),Y(c,u,y),K(y,f,c),T(f,f,c),L(u,f),T(c,w,l),Y(f,c,Ar),K(f,f,w),Y(c,c,f),Y(f,w,l),Y(w,u,a),L(u,y),d(f,u,t),d(c,w,t);for(o=0;o<16;o++)a[o+16]=f[o],a[o+32]=c[o],a[o+48]=u[o],a[o+64]=w[o];var s=a.subarray(32),h=a.subarray(16);return k(s,s),Y(h,h,s),x(r,h),0}function P(r,n){return R(r,n,br)}function O(r,n){return gr(n,32),P(r,n)}function F(r,n,e){var t=new Uint8Array(32);return R(t,e,n),y(r,vr,t,Br)}function N(r,n,e,t,o,i){var a=new Uint8Array(32);return F(a,o,i),Kr(r,n,e,t,a)}function C(r,n,e,t,o,i){var a=new Uint8Array(32);return F(a,o,i),Tr(r,n,e,t,a)}function M(){var r,n,e,t=0,o=0,i=0,a=0,f=65535;for(e=0;e<arguments.length;e++)r=arguments[e].lo,n=arguments[e].hi,t+=r&f,o+=r>>>16,i+=n&f,a+=n>>>16;return o+=t>>>16,i+=o>>>16,a+=i>>>16,new sr(i&f|a<<16,t&f|o<<16)}function G(r,n){return new sr(r.hi>>>n,r.lo>>>n|r.hi<<32-n)}function Z(){var r,n=0,e=0;for(r=0;r<arguments.length;r++)n^=arguments[r].lo,e^=arguments[r].hi;return new sr(e,n)}function j(r,n){var e,t,o=32-n;return n<32?(e=r.hi>>>n|r.lo<<o,t=r.lo>>>n|r.hi<<o):n<64&&(e=r.lo>>>n|r.hi<<o,t=r.hi>>>n|r.lo<<o),new sr(e,t)}function q(r,n,e){var t=r.hi&n.hi^~r.hi&e.hi,o=r.lo&n.lo^~r.lo&e.lo;return new sr(t,o)}function I(r,n,e){var t=r.hi&n.hi^r.hi&e.hi^n.hi&e.hi,o=r.lo&n.lo^r.lo&e.lo^n.lo&e.lo;return new sr(t,o)}function V(r){return Z(j(r,28),j(r,34),j(r,39))}function X(r){return Z(j(r,14),j(r,18),j(r,41))}function D(r){return Z(j(r,1),j(r,8),G(r,7))}function H(r){return Z(j(r,19),j(r,61),G(r,6))}function J(r,n,e){var o,a,f,u=[],c=[],w=[],y=[];for(a=0;a<8;a++)u[a]=w[a]=t(r,8*a);for(var l=0;e>=128;){for(a=0;a<16;a++)y[a]=t(n,8*a+l);for(a=0;a<80;a++){for(f=0;f<8;f++)c[f]=w[f];for(o=M(w[7],X(w[4]),q(w[4],w[5],w[6]),Yr[a],y[a%16]),c[7]=M(o,V(w[0]),I(w[0],w[1],w[2])),c[3]=M(c[3],o),f=0;f<8;f++)w[(f+1)%8]=c[f];if(a%16===15)for(f=0;f<16;f++)y[f]=M(y[f],y[(f+9)%16],D(y[(f+1)%16]),H(y[(f+14)%16]))}for(a=0;a<8;a++)w[a]=M(w[a],u[a]),u[a]=w[a];l+=128,e-=128}for(a=0;a<8;a++)i(r,8*a,u[a]);return e}function Q(r,n,e){var t,o=new Uint8Array(64),a=new Uint8Array(256),f=e;for(t=0;t<64;t++)o[t]=Lr[t];for(J(o,n,e),e%=128,t=0;t<256;t++)a[t]=0;for(t=0;t<e;t++)a[t]=n[f-e+t];for(a[e]=128,e=256-128*(e<112?1:0),a[e-9]=0,i(a,e-8,new sr(f/536870912|0,f<<3)),J(o,a,e),t=0;t<64;t++)r[t]=o[t];return 0}function W(r,n){var e=hr(),t=hr(),o=hr(),i=hr(),a=hr(),f=hr(),u=hr(),c=hr(),w=hr();T(e,r[1],r[0]),T(w,n[1],n[0]),Y(e,e,w),K(t,r[0],r[1]),K(w,n[0],n[1]),Y(t,t,w),Y(o,r[3],n[3]),Y(o,o,Er),Y(i,r[2],n[2]),K(i,i,i),T(a,t,e),T(f,i,o),K(u,i,o),K(c,t,e),Y(r[0],a,f),Y(r[1],c,u),Y(r[2],u,f),Y(r[3],a,c)}function $(r,n,e){var t;for(t=0;t<4;t++)d(r[t],n[t],e)}function rr(r,n){var e=hr(),t=hr(),o=hr();k(o,n[2]),Y(e,n[0],o),Y(t,n[1],o),x(r,t),r[31]^=B(e)<<7}function nr(r,n,e){var t,o;for(U(r[0],pr),U(r[1],_r),U(r[2],_r),U(r[3],pr),o=255;o>=0;--o)t=e[o/8|0]>>(7&o)&1,$(r,n,t),W(n,r),W(r,r),$(r,n,t)}function er(r,n){var e=[hr(),hr(),hr(),hr()];U(e[0],dr),U(e[1],xr),U(e[2],_r),Y(e[3],dr,xr),nr(r,e,n)}function tr(r,n,e){var t,o=new Uint8Array(64),i=[hr(),hr(),hr(),hr()];for(e||gr(n,32),Q(o,n,32),o[0]&=248,o[31]&=127,o[31]|=64,er(i,o),rr(r,i),t=0;t<32;t++)n[t+32]=r[t];return 0}function or(r,n){var e,t,o,i;for(t=63;t>=32;--t){for(e=0,o=t-32,i=t-12;o<i;++o)n[o]+=e-16*n[t]*kr[o-(t-32)],e=n[o]+128>>8,n[o]-=256*e;n[o]+=e,n[t]=0}for(e=0,o=0;o<32;o++)n[o]+=e-(n[31]>>4)*kr[o],e=n[o]>>8,n[o]&=255;for(o=0;o<32;o++)n[o]-=e*kr[o];for(t=0;t<32;t++)n[t+1]+=n[t]>>8,r[t]=255&n[t]}function ir(r){var n,e=new Float64Array(64);for(n=0;n<64;n++)e[n]=r[n];for(n=0;n<64;n++)r[n]=0;or(r,e)}function ar(r,n,e,t){var o,i,a=new Uint8Array(64),f=new Uint8Array(64),u=new Uint8Array(64),c=new Float64Array(64),w=[hr(),hr(),hr(),hr()];Q(a,t,32),a[0]&=248,a[31]&=127,a[31]|=64;var y=e+64;for(o=0;o<e;o++)r[64+o]=n[o];for(o=0;o<32;o++)r[32+o]=a[32+o];for(Q(u,r.subarray(32),e+32),ir(u),er(w,u),rr(r,w),o=32;o<64;o++)r[o]=t[o];for(Q(f,r,e+64),ir(f),o=0;o<64;o++)c[o]=0;for(o=0;o<32;o++)c[o]=u[o];for(o=0;o<32;o++)for(i=0;i<32;i++)c[o+i]+=f[o]*a[i];return or(r.subarray(32),c),y}function fr(r,n){var e=hr(),t=hr(),o=hr(),i=hr(),a=hr(),f=hr(),u=hr();return U(r[2],_r),S(r[1],n),L(o,r[1]),Y(i,o,Ur),T(o,o,r[2]),K(i,r[2],i),L(a,i),L(f,a),Y(u,f,a),Y(e,u,o),Y(e,e,i),z(e,e),Y(e,e,o),Y(e,e,i),Y(e,e,i),Y(r[0],e,i),L(t,r[0]),Y(t,t,i),m(t,o)&&Y(r[0],r[0],mr),L(t,r[0]),Y(t,t,i),m(t,o)?-1:(B(r[0])===n[31]>>7&&T(r[0],pr,r[0]),Y(r[3],r[0],r[1]),0)}function ur(r,n,e,t){var o,i,a=new Uint8Array(32),f=new Uint8Array(64),c=[hr(),hr(),hr(),hr()],w=[hr(),hr(),hr(),hr()];if(i=-1,e<64)return-1;if(fr(w,t))return-1;for(o=0;o<e;o++)r[o]=n[o];for(o=0;o<32;o++)r[o+32]=t[o];if(Q(f,r,e),ir(f),nr(c,w,f),er(w,n.subarray(32)),W(c,w),rr(a,c),e-=64,u(n,0,a,0)){for(o=0;o<e;o++)r[o]=0;return-1}for(o=0;o<e;o++)r[o]=n[o+64];return i=e}function cr(r,n){if(r.length!==zr)throw new Error("bad key size");if(n.length!==Rr)throw new Error("bad nonce size")}function wr(r,n){if(r.length!==Cr)throw new Error("bad public key size");if(n.length!==Mr)throw new Error("bad secret key size")}function yr(){var r,n;for(n=0;n<arguments.length;n++)if("[object Uint8Array]"!==(r=Object.prototype.toString.call(arguments[n])))throw new TypeError("unexpected type "+r+", use Uint8Array")}function lr(r){for(var n=0;n<r.length;n++)r[n]=0}var sr=function(r,n){this.hi=0|r,this.lo=0|n},hr=function(r){var n,e=new Float64Array(16);if(r)for(n=0;n<r.length;n++)e[n]=r[n];return e},gr=function(){throw new Error("no PRNG")},vr=new Uint8Array(16),br=new Uint8Array(32);br[0]=9;var pr=hr(),_r=hr([1]),Ar=hr([56129,1]),Ur=hr([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),Er=hr([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),dr=hr([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),xr=hr([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),mr=hr([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]),Br=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]),Sr=new Uint32Array([5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252]),Kr=_,Tr=A,Yr=[new sr(1116352408,3609767458),new sr(1899447441,602891725),new sr(3049323471,3964484399),new sr(3921009573,2173295548),new sr(961987163,4081628472),new sr(1508970993,3053834265),new sr(2453635748,2937671579),new sr(2870763221,3664609560),new sr(3624381080,2734883394),new sr(310598401,1164996542),new sr(607225278,1323610764),new sr(1426881987,3590304994),new sr(1925078388,4068182383),new sr(2162078206,991336113),new sr(2614888103,633803317),new sr(3248222580,3479774868),new sr(3835390401,2666613458),new sr(4022224774,944711139),new sr(264347078,2341262773),new sr(604807628,2007800933),new sr(770255983,1495990901),new sr(1249150122,1856431235),new sr(1555081692,3175218132),new sr(1996064986,2198950837),new sr(2554220882,3999719339),new sr(2821834349,766784016),new sr(2952996808,2566594879),new sr(3210313671,3203337956),new sr(3336571891,1034457026),new sr(3584528711,2466948901),new sr(113926993,3758326383),new sr(338241895,168717936),new sr(666307205,1188179964),new sr(773529912,1546045734),new sr(1294757372,1522805485),new sr(1396182291,2643833823),new sr(1695183700,2343527390),new sr(1986661051,1014477480),new sr(2177026350,1206759142),new sr(2456956037,344077627),new sr(2730485921,1290863460),new sr(2820302411,3158454273),new sr(3259730800,3505952657),new sr(3345764771,106217008),new sr(3516065817,3606008344),new sr(3600352804,1432725776),new sr(4094571909,1467031594),new sr(275423344,851169720),new sr(430227734,3100823752),new sr(506948616,1363258195),new sr(659060556,3750685593),new sr(883997877,3785050280),new sr(958139571,3318307427),new sr(1322822218,3812723403),new sr(1537002063,2003034995),new sr(1747873779,3602036899),new sr(1955562222,1575990012),new sr(2024104815,1125592928),new sr(2227730452,2716904306),new sr(2361852424,442776044),new sr(2428436474,593698344),new sr(2756734187,3733110249),new sr(3204031479,2999351573),new sr(3329325298,3815920427),new sr(3391569614,3928383900),new sr(3515267271,566280711),new sr(3940187606,3454069534),new sr(4118630271,4000239992),new sr(116418474,1914138554),new sr(174292421,2731055270),new sr(289380356,3203993006),new sr(460393269,320620315),new sr(685471733,587496836),new sr(852142971,1086792851),new sr(1017036298,365543100),new sr(1126000580,2618297676),new sr(1288033470,3409855158),new sr(1501505948,4234509866),new sr(1607167915,987167468),new sr(1816402316,1246189591)],Lr=new Uint8Array([106,9,230,103,243,188,201,8,187,103,174,133,132,202,167,59,60,110,243,114,254,148,248,43,165,79,245,58,95,29,54,241,81,14,82,127,173,230,130,209,155,5,104,140,43,62,108,31,31,131,217,171,251,65,189,107,91,224,205,25,19,126,33,121]),kr=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]),zr=32,Rr=24,Pr=32,Or=16,Fr=32,Nr=32,Cr=32,Mr=32,Gr=32,Zr=Rr,jr=Pr,qr=Or,Ir=64,Vr=32,Xr=64,Dr=32,Hr=64;r.lowlevel={crypto_core_hsalsa20:y,crypto_stream_xor:g,crypto_stream:h,crypto_stream_salsa20_xor:l,crypto_stream_salsa20:s,crypto_onetimeauth:b,crypto_onetimeauth_verify:p,crypto_verify_16:f,crypto_verify_32:u,crypto_secretbox:_,crypto_secretbox_open:A,crypto_scalarmult:R,crypto_scalarmult_base:P,crypto_box_beforenm:F,crypto_box_afternm:Kr,crypto_box:N,crypto_box_open:C,crypto_box_keypair:O,crypto_hash:Q,crypto_sign:ar,crypto_sign_keypair:tr,crypto_sign_open:ur,crypto_secretbox_KEYBYTES:zr,crypto_secretbox_NONCEBYTES:Rr,crypto_secretbox_ZEROBYTES:Pr,crypto_secretbox_BOXZEROBYTES:Or,crypto_scalarmult_BYTES:Fr,crypto_scalarmult_SCALARBYTES:Nr,crypto_box_PUBLICKEYBYTES:Cr,crypto_box_SECRETKEYBYTES:Mr,crypto_box_BEFORENMBYTES:Gr,crypto_box_NONCEBYTES:Zr,crypto_box_ZEROBYTES:jr,crypto_box_BOXZEROBYTES:qr,crypto_sign_BYTES:Ir,crypto_sign_PUBLICKEYBYTES:Vr,crypto_sign_SECRETKEYBYTES:Xr,crypto_sign_SEEDBYTES:Dr,crypto_hash_BYTES:Hr},r.util||(r.util={},r.util.decodeUTF8=r.util.encodeUTF8=r.util.encodeBase64=r.util.decodeBase64=function(){throw new Error("nacl.util moved into separate package: https://github.com/dchest/tweetnacl-util-js")}),r.randomBytes=function(r){var n=new Uint8Array(r);return gr(n,r),n},r.secretbox=function(r,n,e){yr(r,n,e),cr(e,n);for(var t=new Uint8Array(Pr+r.length),o=new Uint8Array(t.length),i=0;i<r.length;i++)t[i+Pr]=r[i];return _(o,t,t.length,n,e),o.subarray(Or)},r.secretbox.open=function(r,n,e){yr(r,n,e),cr(e,n);for(var t=new Uint8Array(Or+r.length),o=new Uint8Array(t.length),i=0;i<r.length;i++)t[i+Or]=r[i];return!(t.length<32)&&(0===A(o,t,t.length,n,e)&&o.subarray(Pr))},r.secretbox.keyLength=zr,r.secretbox.nonceLength=Rr,r.secretbox.overheadLength=Or,r.scalarMult=function(r,n){if(yr(r,n),r.length!==Nr)throw new Error("bad n size");if(n.length!==Fr)throw new Error("bad p size");var e=new Uint8Array(Fr);return R(e,r,n),e},r.scalarMult.base=function(r){if(yr(r),r.length!==Nr)throw new Error("bad n size");var n=new Uint8Array(Fr);return P(n,r),n},r.scalarMult.scalarLength=Nr,r.scalarMult.groupElementLength=Fr,r.box=function(n,e,t,o){var i=r.box.before(t,o);return r.secretbox(n,e,i)},r.box.before=function(r,n){yr(r,n),wr(r,n);var e=new Uint8Array(Gr);return F(e,r,n),e},r.box.after=r.secretbox,r.box.open=function(n,e,t,o){var i=r.box.before(t,o);return r.secretbox.open(n,e,i)},r.box.open.after=r.secretbox.open,r.box.keyPair=function(){var r=new Uint8Array(Cr),n=new Uint8Array(Mr);return O(r,n),{publicKey:r,secretKey:n}},r.box.keyPair.fromSecretKey=function(r){if(yr(r),r.length!==Mr)throw new Error("bad secret key size");var n=new Uint8Array(Cr);return P(n,r),{publicKey:n,secretKey:new Uint8Array(r)}},r.box.publicKeyLength=Cr,r.box.secretKeyLength=Mr,r.box.sharedKeyLength=Gr,r.box.nonceLength=Zr,r.box.overheadLength=r.secretbox.overheadLength,r.sign=function(r,n){if(yr(r,n),n.length!==Xr)throw new Error("bad secret key size");var e=new Uint8Array(Ir+r.length);return ar(e,r,r.length,n),e},r.sign.open=function(r,n){if(2!==arguments.length)throw new Error("nacl.sign.open accepts 2 arguments; did you mean to use nacl.sign.detached.verify?");if(yr(r,n),n.length!==Vr)throw new Error("bad public key size");var e=new Uint8Array(r.length),t=ur(e,r,r.length,n);if(t<0)return null;for(var o=new Uint8Array(t),i=0;i<o.length;i++)o[i]=e[i];return o},r.sign.detached=function(n,e){for(var t=r.sign(n,e),o=new Uint8Array(Ir),i=0;i<o.length;i++)o[i]=t[i];return o},r.sign.detached.verify=function(r,n,e){if(yr(r,n,e),n.length!==Ir)throw new Error("bad signature size");if(e.length!==Vr)throw new Error("bad public key size");var t,o=new Uint8Array(Ir+r.length),i=new Uint8Array(Ir+r.length);for(t=0;t<Ir;t++)o[t]=n[t];for(t=0;t<r.length;t++)o[t+Ir]=r[t];return ur(i,o,o.length,e)>=0},r.sign.keyPair=function(){var r=new Uint8Array(Vr),n=new Uint8Array(Xr);return tr(r,n),{publicKey:r,secretKey:n}},r.sign.keyPair.fromSecretKey=function(r){if(yr(r),r.length!==Xr)throw new Error("bad secret key size");for(var n=new Uint8Array(Vr),e=0;e<n.length;e++)n[e]=r[32+e];return{publicKey:n,secretKey:new Uint8Array(r)}},r.sign.keyPair.fromSeed=function(r){if(yr(r),r.length!==Dr)throw new Error("bad seed size");for(var n=new Uint8Array(Vr),e=new Uint8Array(Xr),t=0;t<32;t++)e[t]=r[t];return tr(n,e,!0),{publicKey:n,secretKey:e}},r.sign.publicKeyLength=Vr,r.sign.secretKeyLength=Xr,r.sign.seedLength=Dr,r.sign.signatureLength=Ir,r.hash=function(r){yr(r);var n=new Uint8Array(Hr);return Q(n,r,r.length),n},r.hash.hashLength=Hr,r.verify=function(r,n){return yr(r,n),0!==r.length&&0!==n.length&&(r.length===n.length&&0===a(r,0,n,0,r.length))},r.setPRNG=function(r){gr=r},function(){var n="undefined"!=typeof self?self.crypto||self.msCrypto:null;if(n&&n.getRandomValues){var e=65536;r.setPRNG(function(r,t){var o,i=new Uint8Array(t);for(o=0;o<t;o+=e)n.getRandomValues(i.subarray(o,o+Math.min(t-o,e)));for(o=0;o<t;o++)r[o]=i[o];lr(i)})}else"undefined"!=typeof require&&(n=require("crypto"),n&&n.randomBytes&&r.setPRNG(function(r,e){var t,o=n.randomBytes(e);for(t=0;t<e;t++)r[t]=o[t];lr(o)}))}()}("undefined"!=typeof module&&module.exports?module.exports:self.nacl=self.nacl||{}); \ No newline at end of file
diff --git a/deps/npm/node_modules/tweetnacl/package.json b/deps/npm/node_modules/tweetnacl/package.json
deleted file mode 100644
index 702e85b8089..00000000000
--- a/deps/npm/node_modules/tweetnacl/package.json
+++ /dev/null
@@ -1,58 +0,0 @@
-{
- "name": "tweetnacl",
- "version": "0.14.5",
- "description": "Port of TweetNaCl cryptographic library to JavaScript",
- "main": "nacl-fast.js",
- "types": "nacl.d.ts",
- "directories": {
- "test": "test"
- },
- "scripts": {
- "build": "uglifyjs nacl.js -c -m -o nacl.min.js && uglifyjs nacl-fast.js -c -m -o nacl-fast.min.js",
- "test-node": "tape test/*.js | faucet",
- "test-node-all": "make -C test/c && tape test/*.js test/c/*.js | faucet",
- "test-browser": "NACL_SRC=${NACL_SRC:='nacl.min.js'} && npm run build-test-browser && cat $NACL_SRC test/browser/_bundle.js | tape-run | faucet",
- "build-test-browser": "browserify test/browser/init.js test/*.js | uglifyjs -c -m -o test/browser/_bundle.js 2>/dev/null && browserify test/browser/init.js test/*.quick.js | uglifyjs -c -m -o test/browser/_bundle-quick.js 2>/dev/null",
- "test": "npm run test-node-all && npm run test-browser",
- "bench": "node test/benchmark/bench.js",
- "lint": "eslint nacl.js nacl-fast.js test/*.js test/benchmark/*.js"
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/dchest/tweetnacl-js.git"
- },
- "keywords": [
- "crypto",
- "cryptography",
- "curve25519",
- "ed25519",
- "encrypt",
- "hash",
- "key",
- "nacl",
- "poly1305",
- "public",
- "salsa20",
- "signatures"
- ],
- "author": "TweetNaCl-js contributors",
- "license": "Unlicense",
- "bugs": {
- "url": "https://github.com/dchest/tweetnacl-js/issues"
- },
- "homepage": "https://tweetnacl.js.org",
- "devDependencies": {
- "browserify": "^13.0.0",
- "eslint": "^2.2.0",
- "faucet": "^0.0.1",
- "tap-browser-color": "^0.1.2",
- "tape": "^4.4.0",
- "tape-run": "^2.1.3",
- "tweetnacl-util": "^0.13.3",
- "uglify-js": "^2.6.1"
- },
- "browser": {
- "buffer": false,
- "crypto": false
- }
-}
diff --git a/deps/npm/node_modules/uri-js/LICENSE b/deps/npm/node_modules/uri-js/LICENSE
deleted file mode 100755
index 9338bde8eb4..00000000000
--- a/deps/npm/node_modules/uri-js/LICENSE
+++ /dev/null
@@ -1,11 +0,0 @@
-Copyright 2011 Gary Court. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY GARY COURT "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of Gary Court.
diff --git a/deps/npm/node_modules/uri-js/dist/es5/uri.all.d.ts b/deps/npm/node_modules/uri-js/dist/es5/uri.all.d.ts
deleted file mode 100755
index da51e235277..00000000000
--- a/deps/npm/node_modules/uri-js/dist/es5/uri.all.d.ts
+++ /dev/null
@@ -1,59 +0,0 @@
-export interface URIComponents {
- scheme?: string;
- userinfo?: string;
- host?: string;
- port?: number | string;
- path?: string;
- query?: string;
- fragment?: string;
- reference?: string;
- error?: string;
-}
-export interface URIOptions {
- scheme?: string;
- reference?: string;
- tolerant?: boolean;
- absolutePath?: boolean;
- iri?: boolean;
- unicodeSupport?: boolean;
- domainHost?: boolean;
-}
-export interface URISchemeHandler<Components extends URIComponents = URIComponents, Options extends URIOptions = URIOptions, ParentComponents extends URIComponents = URIComponents> {
- scheme: string;
- parse(components: ParentComponents, options: Options): Components;
- serialize(components: Components, options: Options): ParentComponents;
- unicodeSupport?: boolean;
- domainHost?: boolean;
- absolutePath?: boolean;
-}
-export interface URIRegExps {
- NOT_SCHEME: RegExp;
- NOT_USERINFO: RegExp;
- NOT_HOST: RegExp;
- NOT_PATH: RegExp;
- NOT_PATH_NOSCHEME: RegExp;
- NOT_QUERY: RegExp;
- NOT_FRAGMENT: RegExp;
- ESCAPE: RegExp;
- UNRESERVED: RegExp;
- OTHER_CHARS: RegExp;
- PCT_ENCODED: RegExp;
- IPV4ADDRESS: RegExp;
- IPV6ADDRESS: RegExp;
-}
-export declare const SCHEMES: {
- [scheme: string]: URISchemeHandler;
-};
-export declare function pctEncChar(chr: string): string;
-export declare function pctDecChars(str: string): string;
-export declare function parse(uriString: string, options?: URIOptions): URIComponents;
-export declare function removeDotSegments(input: string): string;
-export declare function serialize(components: URIComponents, options?: URIOptions): string;
-export declare function resolveComponents(base: URIComponents, relative: URIComponents, options?: URIOptions, skipNormalization?: boolean): URIComponents;
-export declare function resolve(baseURI: string, relativeURI: string, options?: URIOptions): string;
-export declare function normalize(uri: string, options?: URIOptions): string;
-export declare function normalize(uri: URIComponents, options?: URIOptions): URIComponents;
-export declare function equal(uriA: string, uriB: string, options?: URIOptions): boolean;
-export declare function equal(uriA: URIComponents, uriB: URIComponents, options?: URIOptions): boolean;
-export declare function escapeComponent(str: string, options?: URIOptions): string;
-export declare function unescapeComponent(str: string, options?: URIOptions): string;
diff --git a/deps/npm/node_modules/uri-js/dist/es5/uri.all.js b/deps/npm/node_modules/uri-js/dist/es5/uri.all.js
deleted file mode 100755
index 0706116fef7..00000000000
--- a/deps/npm/node_modules/uri-js/dist/es5/uri.all.js
+++ /dev/null
@@ -1,1443 +0,0 @@
-/** @license URI.js v4.4.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
- typeof define === 'function' && define.amd ? define(['exports'], factory) :
- (factory((global.URI = global.URI || {})));
-}(this, (function (exports) { 'use strict';
-
-function merge() {
- for (var _len = arguments.length, sets = Array(_len), _key = 0; _key < _len; _key++) {
- sets[_key] = arguments[_key];
- }
-
- if (sets.length > 1) {
- sets[0] = sets[0].slice(0, -1);
- var xl = sets.length - 1;
- for (var x = 1; x < xl; ++x) {
- sets[x] = sets[x].slice(1, -1);
- }
- sets[xl] = sets[xl].slice(1);
- return sets.join('');
- } else {
- return sets[0];
- }
-}
-function subexp(str) {
- return "(?:" + str + ")";
-}
-function typeOf(o) {
- return o === undefined ? "undefined" : o === null ? "null" : Object.prototype.toString.call(o).split(" ").pop().split("]").shift().toLowerCase();
-}
-function toUpperCase(str) {
- return str.toUpperCase();
-}
-function toArray(obj) {
- return obj !== undefined && obj !== null ? obj instanceof Array ? obj : typeof obj.length !== "number" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj) : [];
-}
-function assign(target, source) {
- var obj = target;
- if (source) {
- for (var key in source) {
- obj[key] = source[key];
- }
- }
- return obj;
-}
-
-function buildExps(isIRI) {
- var ALPHA$$ = "[A-Za-z]",
- CR$ = "[\\x0D]",
- DIGIT$$ = "[0-9]",
- DQUOTE$$ = "[\\x22]",
- HEXDIG$$ = merge(DIGIT$$, "[A-Fa-f]"),
- //case-insensitive
- LF$$ = "[\\x0A]",
- SP$$ = "[\\x20]",
- PCT_ENCODED$ = subexp(subexp("%[EFef]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%[89A-Fa-f]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%" + HEXDIG$$ + HEXDIG$$)),
- //expanded
- GEN_DELIMS$$ = "[\\:\\/\\?\\#\\[\\]\\@]",
- SUB_DELIMS$$ = "[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]",
- RESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),
- UCSCHAR$$ = isIRI ? "[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]" : "[]",
- //subset, excludes bidi control characters
- IPRIVATE$$ = isIRI ? "[\\uE000-\\uF8FF]" : "[]",
- //subset
- UNRESERVED$$ = merge(ALPHA$$, DIGIT$$, "[\\-\\.\\_\\~]", UCSCHAR$$),
- SCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, "[\\+\\-\\.]") + "*"),
- USERINFO$ = subexp(subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\:]")) + "*"),
- DEC_OCTET$ = subexp(subexp("25[0-5]") + "|" + subexp("2[0-4]" + DIGIT$$) + "|" + subexp("1" + DIGIT$$ + DIGIT$$) + "|" + subexp("[1-9]" + DIGIT$$) + "|" + DIGIT$$),
- DEC_OCTET_RELAXED$ = subexp(subexp("25[0-5]") + "|" + subexp("2[0-4]" + DIGIT$$) + "|" + subexp("1" + DIGIT$$ + DIGIT$$) + "|" + subexp("0?[1-9]" + DIGIT$$) + "|0?0?" + DIGIT$$),
- //relaxed parsing rules
- IPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$),
- H16$ = subexp(HEXDIG$$ + "{1,4}"),
- LS32$ = subexp(subexp(H16$ + "\\:" + H16$) + "|" + IPV4ADDRESS$),
- IPV6ADDRESS1$ = subexp(subexp(H16$ + "\\:") + "{6}" + LS32$),
- // 6( h16 ":" ) ls32
- IPV6ADDRESS2$ = subexp("\\:\\:" + subexp(H16$ + "\\:") + "{5}" + LS32$),
- // "::" 5( h16 ":" ) ls32
- IPV6ADDRESS3$ = subexp(subexp(H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{4}" + LS32$),
- //[ h16 ] "::" 4( h16 ":" ) ls32
- IPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,1}" + H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{3}" + LS32$),
- //[ *1( h16 ":" ) h16 ] "::" 3( h16 ":" ) ls32
- IPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,2}" + H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{2}" + LS32$),
- //[ *2( h16 ":" ) h16 ] "::" 2( h16 ":" ) ls32
- IPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,3}" + H16$) + "?\\:\\:" + H16$ + "\\:" + LS32$),
- //[ *3( h16 ":" ) h16 ] "::" h16 ":" ls32
- IPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,4}" + H16$) + "?\\:\\:" + LS32$),
- //[ *4( h16 ":" ) h16 ] "::" ls32
- IPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,5}" + H16$) + "?\\:\\:" + H16$),
- //[ *5( h16 ":" ) h16 ] "::" h16
- IPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,6}" + H16$) + "?\\:\\:"),
- //[ *6( h16 ":" ) h16 ] "::"
- IPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join("|")),
- ZONEID$ = subexp(subexp(UNRESERVED$$ + "|" + PCT_ENCODED$) + "+"),
- //RFC 6874
- IPV6ADDRZ$ = subexp(IPV6ADDRESS$ + "\\%25" + ZONEID$),
- //RFC 6874
- IPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp("\\%25|\\%(?!" + HEXDIG$$ + "{2})") + ZONEID$),
- //RFC 6874, with relaxed parsing rules
- IPVFUTURE$ = subexp("[vV]" + HEXDIG$$ + "+\\." + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\:]") + "+"),
- IP_LITERAL$ = subexp("\\[" + subexp(IPV6ADDRZ_RELAXED$ + "|" + IPV6ADDRESS$ + "|" + IPVFUTURE$) + "\\]"),
- //RFC 6874
- REG_NAME$ = subexp(subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$)) + "*"),
- HOST$ = subexp(IP_LITERAL$ + "|" + IPV4ADDRESS$ + "(?!" + REG_NAME$ + ")" + "|" + REG_NAME$),
- PORT$ = subexp(DIGIT$$ + "*"),
- AUTHORITY$ = subexp(subexp(USERINFO$ + "@") + "?" + HOST$ + subexp("\\:" + PORT$) + "?"),
- PCHAR$ = subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\:\\@]")),
- SEGMENT$ = subexp(PCHAR$ + "*"),
- SEGMENT_NZ$ = subexp(PCHAR$ + "+"),
- SEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\@]")) + "+"),
- PATH_ABEMPTY$ = subexp(subexp("\\/" + SEGMENT$) + "*"),
- PATH_ABSOLUTE$ = subexp("\\/" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + "?"),
- //simplified
- PATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$),
- //simplified
- PATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$),
- //simplified
- PATH_EMPTY$ = "(?!" + PCHAR$ + ")",
- PATH$ = subexp(PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$),
- QUERY$ = subexp(subexp(PCHAR$ + "|" + merge("[\\/\\?]", IPRIVATE$$)) + "*"),
- FRAGMENT$ = subexp(subexp(PCHAR$ + "|[\\/\\?]") + "*"),
- HIER_PART$ = subexp(subexp("\\/\\/" + AUTHORITY$ + PATH_ABEMPTY$) + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$),
- URI$ = subexp(SCHEME$ + "\\:" + HIER_PART$ + subexp("\\?" + QUERY$) + "?" + subexp("\\#" + FRAGMENT$) + "?"),
- RELATIVE_PART$ = subexp(subexp("\\/\\/" + AUTHORITY$ + PATH_ABEMPTY$) + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_EMPTY$),
- RELATIVE$ = subexp(RELATIVE_PART$ + subexp("\\?" + QUERY$) + "?" + subexp("\\#" + FRAGMENT$) + "?"),
- URI_REFERENCE$ = subexp(URI$ + "|" + RELATIVE$),
- ABSOLUTE_URI$ = subexp(SCHEME$ + "\\:" + HIER_PART$ + subexp("\\?" + QUERY$) + "?"),
- GENERIC_REF$ = "^(" + SCHEME$ + ")\\:" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?" + subexp("\\#(" + FRAGMENT$ + ")") + "?$",
- RELATIVE_REF$ = "^(){0}" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?" + subexp("\\#(" + FRAGMENT$ + ")") + "?$",
- ABSOLUTE_REF$ = "^(" + SCHEME$ + ")\\:" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?$",
- SAMEDOC_REF$ = "^" + subexp("\\#(" + FRAGMENT$ + ")") + "?$",
- AUTHORITY_REF$ = "^" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?$";
- return {
- NOT_SCHEME: new RegExp(merge("[^]", ALPHA$$, DIGIT$$, "[\\+\\-\\.]"), "g"),
- NOT_USERINFO: new RegExp(merge("[^\\%\\:]", UNRESERVED$$, SUB_DELIMS$$), "g"),
- NOT_HOST: new RegExp(merge("[^\\%\\[\\]\\:]", UNRESERVED$$, SUB_DELIMS$$), "g"),
- NOT_PATH: new RegExp(merge("[^\\%\\/\\:\\@]", UNRESERVED$$, SUB_DELIMS$$), "g"),
- NOT_PATH_NOSCHEME: new RegExp(merge("[^\\%\\/\\@]", UNRESERVED$$, SUB_DELIMS$$), "g"),
- NOT_QUERY: new RegExp(merge("[^\\%]", UNRESERVED$$, SUB_DELIMS$$, "[\\:\\@\\/\\?]", IPRIVATE$$), "g"),
- NOT_FRAGMENT: new RegExp(merge("[^\\%]", UNRESERVED$$, SUB_DELIMS$$, "[\\:\\@\\/\\?]"), "g"),
- ESCAPE: new RegExp(merge("[^]", UNRESERVED$$, SUB_DELIMS$$), "g"),
- UNRESERVED: new RegExp(UNRESERVED$$, "g"),
- OTHER_CHARS: new RegExp(merge("[^\\%]", UNRESERVED$$, RESERVED$$), "g"),
- PCT_ENCODED: new RegExp(PCT_ENCODED$, "g"),
- IPV4ADDRESS: new RegExp("^(" + IPV4ADDRESS$ + ")$"),
- IPV6ADDRESS: new RegExp("^\\[?(" + IPV6ADDRESS$ + ")" + subexp(subexp("\\%25|\\%(?!" + HEXDIG$$ + "{2})") + "(" + ZONEID$ + ")") + "?\\]?$") //RFC 6874, with relaxed parsing rules
- };
-}
-var URI_PROTOCOL = buildExps(false);
-
-var IRI_PROTOCOL = buildExps(true);
-
-var slicedToArray = function () {
- function sliceIterator(arr, i) {
- var _arr = [];
- var _n = true;
- var _d = false;
- var _e = undefined;
-
- try {
- for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
- _arr.push(_s.value);
-
- if (i && _arr.length === i) break;
- }
- } catch (err) {
- _d = true;
- _e = err;
- } finally {
- try {
- if (!_n && _i["return"]) _i["return"]();
- } finally {
- if (_d) throw _e;
- }
- }
-
- return _arr;
- }
-
- return function (arr, i) {
- if (Array.isArray(arr)) {
- return arr;
- } else if (Symbol.iterator in Object(arr)) {
- return sliceIterator(arr, i);
- } else {
- throw new TypeError("Invalid attempt to destructure non-iterable instance");
- }
- };
-}();
-
-
-
-
-
-
-
-
-
-
-
-
-
-var toConsumableArray = function (arr) {
- if (Array.isArray(arr)) {
- for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];
-
- return arr2;
- } else {
- return Array.from(arr);
- }
-};
-
-/** Highest positive signed 32-bit float value */
-
-var maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1
-
-/** Bootstring parameters */
-var base = 36;
-var tMin = 1;
-var tMax = 26;
-var skew = 38;
-var damp = 700;
-var initialBias = 72;
-var initialN = 128; // 0x80
-var delimiter = '-'; // '\x2D'
-
-/** Regular expressions */
-var regexPunycode = /^xn--/;
-var regexNonASCII = /[^\0-\x7E]/; // non-ASCII chars
-var regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g; // RFC 3490 separators
-
-/** Error messages */
-var errors = {
- 'overflow': 'Overflow: input needs wider integers to process',
- 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',
- 'invalid-input': 'Invalid input'
-};
-
-/** Convenience shortcuts */
-var baseMinusTMin = base - tMin;
-var floor = Math.floor;
-var stringFromCharCode = String.fromCharCode;
-
-/*--------------------------------------------------------------------------*/
-
-/**
- * A generic error utility function.
- * @private
- * @param {String} type The error type.
- * @returns {Error} Throws a `RangeError` with the applicable error message.
- */
-function error$1(type) {
- throw new RangeError(errors[type]);
-}
-
-/**
- * A generic `Array#map` utility function.
- * @private
- * @param {Array} array The array to iterate over.
- * @param {Function} callback The function that gets called for every array
- * item.
- * @returns {Array} A new array of values returned by the callback function.
- */
-function map(array, fn) {
- var result = [];
- var length = array.length;
- while (length--) {
- result[length] = fn(array[length]);
- }
- return result;
-}
-
-/**
- * A simple `Array#map`-like wrapper to work with domain name strings or email
- * addresses.
- * @private
- * @param {String} domain The domain name or email address.
- * @param {Function} callback The function that gets called for every
- * character.
- * @returns {Array} A new string of characters returned by the callback
- * function.
- */
-function mapDomain(string, fn) {
- var parts = string.split('@');
- var result = '';
- if (parts.length > 1) {
- // In email addresses, only the domain name should be punycoded. Leave
- // the local part (i.e. everything up to `@`) intact.
- result = parts[0] + '@';
- string = parts[1];
- }
- // Avoid `split(regex)` for IE8 compatibility. See #17.
- string = string.replace(regexSeparators, '\x2E');
- var labels = string.split('.');
- var encoded = map(labels, fn).join('.');
- return result + encoded;
-}
-
-/**
- * Creates an array containing the numeric code points of each Unicode
- * character in the string. While JavaScript uses UCS-2 internally,
- * this function will convert a pair of surrogate halves (each of which
- * UCS-2 exposes as separate characters) into a single code point,
- * matching UTF-16.
- * @see `punycode.ucs2.encode`
- * @see <https://mathiasbynens.be/notes/javascript-encoding>
- * @memberOf punycode.ucs2
- * @name decode
- * @param {String} string The Unicode input string (UCS-2).
- * @returns {Array} The new array of code points.
- */
-function ucs2decode(string) {
- var output = [];
- var counter = 0;
- var length = string.length;
- while (counter < length) {
- var value = string.charCodeAt(counter++);
- if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
- // It's a high surrogate, and there is a next character.
- var extra = string.charCodeAt(counter++);
- if ((extra & 0xFC00) == 0xDC00) {
- // Low surrogate.
- output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
- } else {
- // It's an unmatched surrogate; only append this code unit, in case the
- // next code unit is the high surrogate of a surrogate pair.
- output.push(value);
- counter--;
- }
- } else {
- output.push(value);
- }
- }
- return output;
-}
-
-/**
- * Creates a string based on an array of numeric code points.
- * @see `punycode.ucs2.decode`
- * @memberOf punycode.ucs2
- * @name encode
- * @param {Array} codePoints The array of numeric code points.
- * @returns {String} The new Unicode string (UCS-2).
- */
-var ucs2encode = function ucs2encode(array) {
- return String.fromCodePoint.apply(String, toConsumableArray(array));
-};
-
-/**
- * Converts a basic code point into a digit/integer.
- * @see `digitToBasic()`
- * @private
- * @param {Number} codePoint The basic numeric code point value.
- * @returns {Number} The numeric value of a basic code point (for use in
- * representing integers) in the range `0` to `base - 1`, or `base` if
- * the code point does not represent a value.
- */
-var basicToDigit = function basicToDigit(codePoint) {
- if (codePoint - 0x30 < 0x0A) {
- return codePoint - 0x16;
- }
- if (codePoint - 0x41 < 0x1A) {
- return codePoint - 0x41;
- }
- if (codePoint - 0x61 < 0x1A) {
- return codePoint - 0x61;
- }
- return base;
-};
-
-/**
- * Converts a digit/integer into a basic code point.
- * @see `basicToDigit()`
- * @private
- * @param {Number} digit The numeric value of a basic code point.
- * @returns {Number} The basic code point whose value (when used for
- * representing integers) is `digit`, which needs to be in the range
- * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is
- * used; else, the lowercase form is used. The behavior is undefined
- * if `flag` is non-zero and `digit` has no uppercase form.
- */
-var digitToBasic = function digitToBasic(digit, flag) {
- // 0..25 map to ASCII a..z or A..Z
- // 26..35 map to ASCII 0..9
- return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
-};
-
-/**
- * Bias adaptation function as per section 3.4 of RFC 3492.
- * https://tools.ietf.org/html/rfc3492#section-3.4
- * @private
- */
-var adapt = function adapt(delta, numPoints, firstTime) {
- var k = 0;
- delta = firstTime ? floor(delta / damp) : delta >> 1;
- delta += floor(delta / numPoints);
- for (; /* no initialization */delta > baseMinusTMin * tMax >> 1; k += base) {
- delta = floor(delta / baseMinusTMin);
- }
- return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
-};
-
-/**
- * Converts a Punycode string of ASCII-only symbols to a string of Unicode
- * symbols.
- * @memberOf punycode
- * @param {String} input The Punycode string of ASCII-only symbols.
- * @returns {String} The resulting string of Unicode symbols.
- */
-var decode = function decode(input) {
- // Don't use UCS-2.
- var output = [];
- var inputLength = input.length;
- var i = 0;
- var n = initialN;
- var bias = initialBias;
-
- // Handle the basic code points: let `basic` be the number of input code
- // points before the last delimiter, or `0` if there is none, then copy
- // the first basic code points to the output.
-
- var basic = input.lastIndexOf(delimiter);
- if (basic < 0) {
- basic = 0;
- }
-
- for (var j = 0; j < basic; ++j) {
- // if it's not a basic code point
- if (input.charCodeAt(j) >= 0x80) {
- error$1('not-basic');
- }
- output.push(input.charCodeAt(j));
- }
-
- // Main decoding loop: start just after the last delimiter if any basic code
- // points were copied; start at the beginning otherwise.
-
- for (var index = basic > 0 ? basic + 1 : 0; index < inputLength;) /* no final expression */{
-
- // `index` is the index of the next character to be consumed.
- // Decode a generalized variable-length integer into `delta`,
- // which gets added to `i`. The overflow checking is easier
- // if we increase `i` as we go, then subtract off its starting
- // value at the end to obtain `delta`.
- var oldi = i;
- for (var w = 1, k = base;; /* no condition */k += base) {
-
- if (index >= inputLength) {
- error$1('invalid-input');
- }
-
- var digit = basicToDigit(input.charCodeAt(index++));
-
- if (digit >= base || digit > floor((maxInt - i) / w)) {
- error$1('overflow');
- }
-
- i += digit * w;
- var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;
-
- if (digit < t) {
- break;
- }
-
- var baseMinusT = base - t;
- if (w > floor(maxInt / baseMinusT)) {
- error$1('overflow');
- }
-
- w *= baseMinusT;
- }
-
- var out = output.length + 1;
- bias = adapt(i - oldi, out, oldi == 0);
-
- // `i` was supposed to wrap around from `out` to `0`,
- // incrementing `n` each time, so we'll fix that now:
- if (floor(i / out) > maxInt - n) {
- error$1('overflow');
- }
-
- n += floor(i / out);
- i %= out;
-
- // Insert `n` at position `i` of the output.
- output.splice(i++, 0, n);
- }
-
- return String.fromCodePoint.apply(String, output);
-};
-
-/**
- * Converts a string of Unicode symbols (e.g. a domain name label) to a
- * Punycode string of ASCII-only symbols.
- * @memberOf punycode
- * @param {String} input The string of Unicode symbols.
- * @returns {String} The resulting Punycode string of ASCII-only symbols.
- */
-var encode = function encode(input) {
- var output = [];
-
- // Convert the input in UCS-2 to an array of Unicode code points.
- input = ucs2decode(input);
-
- // Cache the length.
- var inputLength = input.length;
-
- // Initialize the state.
- var n = initialN;
- var delta = 0;
- var bias = initialBias;
-
- // Handle the basic code points.
- var _iteratorNormalCompletion = true;
- var _didIteratorError = false;
- var _iteratorError = undefined;
-
- try {
- for (var _iterator = input[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
- var _currentValue2 = _step.value;
-
- if (_currentValue2 < 0x80) {
- output.push(stringFromCharCode(_currentValue2));
- }
- }
- } catch (err) {
- _didIteratorError = true;
- _iteratorError = err;
- } finally {
- try {
- if (!_iteratorNormalCompletion && _iterator.return) {
- _iterator.return();
- }
- } finally {
- if (_didIteratorError) {
- throw _iteratorError;
- }
- }
- }
-
- var basicLength = output.length;
- var handledCPCount = basicLength;
-
- // `handledCPCount` is the number of code points that have been handled;
- // `basicLength` is the number of basic code points.
-
- // Finish the basic string with a delimiter unless it's empty.
- if (basicLength) {
- output.push(delimiter);
- }
-
- // Main encoding loop:
- while (handledCPCount < inputLength) {
-
- // All non-basic code points < n have been handled already. Find the next
- // larger one:
- var m = maxInt;
- var _iteratorNormalCompletion2 = true;
- var _didIteratorError2 = false;
- var _iteratorError2 = undefined;
-
- try {
- for (var _iterator2 = input[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
- var currentValue = _step2.value;
-
- if (currentValue >= n && currentValue < m) {
- m = currentValue;
- }
- }
-
- // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,
- // but guard against overflow.
- } catch (err) {
- _didIteratorError2 = true;
- _iteratorError2 = err;
- } finally {
- try {
- if (!_iteratorNormalCompletion2 && _iterator2.return) {
- _iterator2.return();
- }
- } finally {
- if (_didIteratorError2) {
- throw _iteratorError2;
- }
- }
- }
-
- var handledCPCountPlusOne = handledCPCount + 1;
- if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
- error$1('overflow');
- }
-
- delta += (m - n) * handledCPCountPlusOne;
- n = m;
-
- var _iteratorNormalCompletion3 = true;
- var _didIteratorError3 = false;
- var _iteratorError3 = undefined;
-
- try {
- for (var _iterator3 = input[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
- var _currentValue = _step3.value;
-
- if (_currentValue < n && ++delta > maxInt) {
- error$1('overflow');
- }
- if (_currentValue == n) {
- // Represent delta as a generalized variable-length integer.
- var q = delta;
- for (var k = base;; /* no condition */k += base) {
- var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;
- if (q < t) {
- break;
- }
- var qMinusT = q - t;
- var baseMinusT = base - t;
- output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)));
- q = floor(qMinusT / baseMinusT);
- }
-
- output.push(stringFromCharCode(digitToBasic(q, 0)));
- bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
- delta = 0;
- ++handledCPCount;
- }
- }
- } catch (err) {
- _didIteratorError3 = true;
- _iteratorError3 = err;
- } finally {
- try {
- if (!_iteratorNormalCompletion3 && _iterator3.return) {
- _iterator3.return();
- }
- } finally {
- if (_didIteratorError3) {
- throw _iteratorError3;
- }
- }
- }
-
- ++delta;
- ++n;
- }
- return output.join('');
-};
-
-/**
- * Converts a Punycode string representing a domain name or an email address
- * to Unicode. Only the Punycoded parts of the input will be converted, i.e.
- * it doesn't matter if you call it on a string that has already been
- * converted to Unicode.
- * @memberOf punycode
- * @param {String} input The Punycoded domain name or email address to
- * convert to Unicode.
- * @returns {String} The Unicode representation of the given Punycode
- * string.
- */
-var toUnicode = function toUnicode(input) {
- return mapDomain(input, function (string) {
- return regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;
- });
-};
-
-/**
- * Converts a Unicode string representing a domain name or an email address to
- * Punycode. Only the non-ASCII parts of the domain name will be converted,
- * i.e. it doesn't matter if you call it with a domain that's already in
- * ASCII.
- * @memberOf punycode
- * @param {String} input The domain name or email address to convert, as a
- * Unicode string.
- * @returns {String} The Punycode representation of the given domain name or
- * email address.
- */
-var toASCII = function toASCII(input) {
- return mapDomain(input, function (string) {
- return regexNonASCII.test(string) ? 'xn--' + encode(string) : string;
- });
-};
-
-/*--------------------------------------------------------------------------*/
-
-/** Define the public API */
-var punycode = {
- /**
- * A string representing the current Punycode.js version number.
- * @memberOf punycode
- * @type String
- */
- 'version': '2.1.0',
- /**
- * An object of methods to convert from JavaScript's internal character
- * representation (UCS-2) to Unicode code points, and back.
- * @see <https://mathiasbynens.be/notes/javascript-encoding>
- * @memberOf punycode
- * @type Object
- */
- 'ucs2': {
- 'decode': ucs2decode,
- 'encode': ucs2encode
- },
- 'decode': decode,
- 'encode': encode,
- 'toASCII': toASCII,
- 'toUnicode': toUnicode
-};
-
-/**
- * URI.js
- *
- * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.
- * @author <a href="mailto:gary.court@gmail.com">Gary Court</a>
- * @see http://github.com/garycourt/uri-js
- */
-/**
- * Copyright 2011 Gary Court. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this list of
- * conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice, this list
- * of conditions and the following disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * The views and conclusions contained in the software and documentation are those of the
- * authors and should not be interpreted as representing official policies, either expressed
- * or implied, of Gary Court.
- */
-var SCHEMES = {};
-function pctEncChar(chr) {
- var c = chr.charCodeAt(0);
- var e = void 0;
- if (c < 16) e = "%0" + c.toString(16).toUpperCase();else if (c < 128) e = "%" + c.toString(16).toUpperCase();else if (c < 2048) e = "%" + (c >> 6 | 192).toString(16).toUpperCase() + "%" + (c & 63 | 128).toString(16).toUpperCase();else e = "%" + (c >> 12 | 224).toString(16).toUpperCase() + "%" + (c >> 6 & 63 | 128).toString(16).toUpperCase() + "%" + (c & 63 | 128).toString(16).toUpperCase();
- return e;
-}
-function pctDecChars(str) {
- var newStr = "";
- var i = 0;
- var il = str.length;
- while (i < il) {
- var c = parseInt(str.substr(i + 1, 2), 16);
- if (c < 128) {
- newStr += String.fromCharCode(c);
- i += 3;
- } else if (c >= 194 && c < 224) {
- if (il - i >= 6) {
- var c2 = parseInt(str.substr(i + 4, 2), 16);
- newStr += String.fromCharCode((c & 31) << 6 | c2 & 63);
- } else {
- newStr += str.substr(i, 6);
- }
- i += 6;
- } else if (c >= 224) {
- if (il - i >= 9) {
- var _c = parseInt(str.substr(i + 4, 2), 16);
- var c3 = parseInt(str.substr(i + 7, 2), 16);
- newStr += String.fromCharCode((c & 15) << 12 | (_c & 63) << 6 | c3 & 63);
- } else {
- newStr += str.substr(i, 9);
- }
- i += 9;
- } else {
- newStr += str.substr(i, 3);
- i += 3;
- }
- }
- return newStr;
-}
-function _normalizeComponentEncoding(components, protocol) {
- function decodeUnreserved(str) {
- var decStr = pctDecChars(str);
- return !decStr.match(protocol.UNRESERVED) ? str : decStr;
- }
- if (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, "");
- if (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);
- if (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);
- if (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);
- if (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);
- if (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);
- return components;
-}
-
-function _stripLeadingZeros(str) {
- return str.replace(/^0*(.*)/, "$1") || "0";
-}
-function _normalizeIPv4(host, protocol) {
- var matches = host.match(protocol.IPV4ADDRESS) || [];
-
- var _matches = slicedToArray(matches, 2),
- address = _matches[1];
-
- if (address) {
- return address.split(".").map(_stripLeadingZeros).join(".");
- } else {
- return host;
- }
-}
-function _normalizeIPv6(host, protocol) {
- var matches = host.match(protocol.IPV6ADDRESS) || [];
-
- var _matches2 = slicedToArray(matches, 3),
- address = _matches2[1],
- zone = _matches2[2];
-
- if (address) {
- var _address$toLowerCase$ = address.toLowerCase().split('::').reverse(),
- _address$toLowerCase$2 = slicedToArray(_address$toLowerCase$, 2),
- last = _address$toLowerCase$2[0],
- first = _address$toLowerCase$2[1];
-
- var firstFields = first ? first.split(":").map(_stripLeadingZeros) : [];
- var lastFields = last.split(":").map(_stripLeadingZeros);
- var isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);
- var fieldCount = isLastFieldIPv4Address ? 7 : 8;
- var lastFieldsStart = lastFields.length - fieldCount;
- var fields = Array(fieldCount);
- for (var x = 0; x < fieldCount; ++x) {
- fields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';
- }
- if (isLastFieldIPv4Address) {
- fields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);
- }
- var allZeroFields = fields.reduce(function (acc, field, index) {
- if (!field || field === "0") {
- var lastLongest = acc[acc.length - 1];
- if (lastLongest && lastLongest.index + lastLongest.length === index) {
- lastLongest.length++;
- } else {
- acc.push({ index: index, length: 1 });
- }
- }
- return acc;
- }, []);
- var longestZeroFields = allZeroFields.sort(function (a, b) {
- return b.length - a.length;
- })[0];
- var newHost = void 0;
- if (longestZeroFields && longestZeroFields.length > 1) {
- var newFirst = fields.slice(0, longestZeroFields.index);
- var newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);
- newHost = newFirst.join(":") + "::" + newLast.join(":");
- } else {
- newHost = fields.join(":");
- }
- if (zone) {
- newHost += "%" + zone;
- }
- return newHost;
- } else {
- return host;
- }
-}
-var URI_PARSE = /^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i;
-var NO_MATCH_IS_UNDEFINED = "".match(/(){0}/)[1] === undefined;
-function parse(uriString) {
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
- var components = {};
- var protocol = options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL;
- if (options.reference === "suffix") uriString = (options.scheme ? options.scheme + ":" : "") + "//" + uriString;
- var matches = uriString.match(URI_PARSE);
- if (matches) {
- if (NO_MATCH_IS_UNDEFINED) {
- //store each component
- components.scheme = matches[1];
- components.userinfo = matches[3];
- components.host = matches[4];
- components.port = parseInt(matches[5], 10);
- components.path = matches[6] || "";
- components.query = matches[7];
- components.fragment = matches[8];
- //fix port number
- if (isNaN(components.port)) {
- components.port = matches[5];
- }
- } else {
- //IE FIX for improper RegExp matching
- //store each component
- components.scheme = matches[1] || undefined;
- components.userinfo = uriString.indexOf("@") !== -1 ? matches[3] : undefined;
- components.host = uriString.indexOf("//") !== -1 ? matches[4] : undefined;
- components.port = parseInt(matches[5], 10);
- components.path = matches[6] || "";
- components.query = uriString.indexOf("?") !== -1 ? matches[7] : undefined;
- components.fragment = uriString.indexOf("#") !== -1 ? matches[8] : undefined;
- //fix port number
- if (isNaN(components.port)) {
- components.port = uriString.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/) ? matches[4] : undefined;
- }
- }
- if (components.host) {
- //normalize IP hosts
- components.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);
- }
- //determine reference type
- if (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {
- components.reference = "same-document";
- } else if (components.scheme === undefined) {
- components.reference = "relative";
- } else if (components.fragment === undefined) {
- components.reference = "absolute";
- } else {
- components.reference = "uri";
- }
- //check for reference errors
- if (options.reference && options.reference !== "suffix" && options.reference !== components.reference) {
- components.error = components.error || "URI is not a " + options.reference + " reference.";
- }
- //find scheme handler
- var schemeHandler = SCHEMES[(options.scheme || components.scheme || "").toLowerCase()];
- //check if scheme can't handle IRIs
- if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {
- //if host component is a domain name
- if (components.host && (options.domainHost || schemeHandler && schemeHandler.domainHost)) {
- //convert Unicode IDN -> ASCII IDN
- try {
- components.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());
- } catch (e) {
- components.error = components.error || "Host's domain name can not be converted to ASCII via punycode: " + e;
- }
- }
- //convert IRI -> URI
- _normalizeComponentEncoding(components, URI_PROTOCOL);
- } else {
- //normalize encodings
- _normalizeComponentEncoding(components, protocol);
- }
- //perform scheme specific parsing
- if (schemeHandler && schemeHandler.parse) {
- schemeHandler.parse(components, options);
- }
- } else {
- components.error = components.error || "URI can not be parsed.";
- }
- return components;
-}
-
-function _recomposeAuthority(components, options) {
- var protocol = options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL;
- var uriTokens = [];
- if (components.userinfo !== undefined) {
- uriTokens.push(components.userinfo);
- uriTokens.push("@");
- }
- if (components.host !== undefined) {
- //normalize IP hosts, add brackets and escape zone separator for IPv6
- uriTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, function (_, $1, $2) {
- return "[" + $1 + ($2 ? "%25" + $2 : "") + "]";
- }));
- }
- if (typeof components.port === "number" || typeof components.port === "string") {
- uriTokens.push(":");
- uriTokens.push(String(components.port));
- }
- return uriTokens.length ? uriTokens.join("") : undefined;
-}
-
-var RDS1 = /^\.\.?\//;
-var RDS2 = /^\/\.(\/|$)/;
-var RDS3 = /^\/\.\.(\/|$)/;
-var RDS5 = /^\/?(?:.|\n)*?(?=\/|$)/;
-function removeDotSegments(input) {
- var output = [];
- while (input.length) {
- if (input.match(RDS1)) {
- input = input.replace(RDS1, "");
- } else if (input.match(RDS2)) {
- input = input.replace(RDS2, "/");
- } else if (input.match(RDS3)) {
- input = input.replace(RDS3, "/");
- output.pop();
- } else if (input === "." || input === "..") {
- input = "";
- } else {
- var im = input.match(RDS5);
- if (im) {
- var s = im[0];
- input = input.slice(s.length);
- output.push(s);
- } else {
- throw new Error("Unexpected dot segment condition");
- }
- }
- }
- return output.join("");
-}
-
-function serialize(components) {
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
- var protocol = options.iri ? IRI_PROTOCOL : URI_PROTOCOL;
- var uriTokens = [];
- //find scheme handler
- var schemeHandler = SCHEMES[(options.scheme || components.scheme || "").toLowerCase()];
- //perform scheme specific serialization
- if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);
- if (components.host) {
- //if host component is an IPv6 address
- if (protocol.IPV6ADDRESS.test(components.host)) {}
- //TODO: normalize IPv6 address as per RFC 5952
-
- //if host component is a domain name
- else if (options.domainHost || schemeHandler && schemeHandler.domainHost) {
- //convert IDN via punycode
- try {
- components.host = !options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host);
- } catch (e) {
- components.error = components.error || "Host's domain name can not be converted to " + (!options.iri ? "ASCII" : "Unicode") + " via punycode: " + e;
- }
- }
- }
- //normalize encoding
- _normalizeComponentEncoding(components, protocol);
- if (options.reference !== "suffix" && components.scheme) {
- uriTokens.push(components.scheme);
- uriTokens.push(":");
- }
- var authority = _recomposeAuthority(components, options);
- if (authority !== undefined) {
- if (options.reference !== "suffix") {
- uriTokens.push("//");
- }
- uriTokens.push(authority);
- if (components.path && components.path.charAt(0) !== "/") {
- uriTokens.push("/");
- }
- }
- if (components.path !== undefined) {
- var s = components.path;
- if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {
- s = removeDotSegments(s);
- }
- if (authority === undefined) {
- s = s.replace(/^\/\//, "/%2F"); //don't allow the path to start with "//"
- }
- uriTokens.push(s);
- }
- if (components.query !== undefined) {
- uriTokens.push("?");
- uriTokens.push(components.query);
- }
- if (components.fragment !== undefined) {
- uriTokens.push("#");
- uriTokens.push(components.fragment);
- }
- return uriTokens.join(""); //merge tokens into a string
-}
-
-function resolveComponents(base, relative) {
- var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
- var skipNormalization = arguments[3];
-
- var target = {};
- if (!skipNormalization) {
- base = parse(serialize(base, options), options); //normalize base components
- relative = parse(serialize(relative, options), options); //normalize relative components
- }
- options = options || {};
- if (!options.tolerant && relative.scheme) {
- target.scheme = relative.scheme;
- //target.authority = relative.authority;
- target.userinfo = relative.userinfo;
- target.host = relative.host;
- target.port = relative.port;
- target.path = removeDotSegments(relative.path || "");
- target.query = relative.query;
- } else {
- if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {
- //target.authority = relative.authority;
- target.userinfo = relative.userinfo;
- target.host = relative.host;
- target.port = relative.port;
- target.path = removeDotSegments(relative.path || "");
- target.query = relative.query;
- } else {
- if (!relative.path) {
- target.path = base.path;
- if (relative.query !== undefined) {
- target.query = relative.query;
- } else {
- target.query = base.query;
- }
- } else {
- if (relative.path.charAt(0) === "/") {
- target.path = removeDotSegments(relative.path);
- } else {
- if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {
- target.path = "/" + relative.path;
- } else if (!base.path) {
- target.path = relative.path;
- } else {
- target.path = base.path.slice(0, base.path.lastIndexOf("/") + 1) + relative.path;
- }
- target.path = removeDotSegments(target.path);
- }
- target.query = relative.query;
- }
- //target.authority = base.authority;
- target.userinfo = base.userinfo;
- target.host = base.host;
- target.port = base.port;
- }
- target.scheme = base.scheme;
- }
- target.fragment = relative.fragment;
- return target;
-}
-
-function resolve(baseURI, relativeURI, options) {
- var schemelessOptions = assign({ scheme: 'null' }, options);
- return serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);
-}
-
-function normalize(uri, options) {
- if (typeof uri === "string") {
- uri = serialize(parse(uri, options), options);
- } else if (typeOf(uri) === "object") {
- uri = parse(serialize(uri, options), options);
- }
- return uri;
-}
-
-function equal(uriA, uriB, options) {
- if (typeof uriA === "string") {
- uriA = serialize(parse(uriA, options), options);
- } else if (typeOf(uriA) === "object") {
- uriA = serialize(uriA, options);
- }
- if (typeof uriB === "string") {
- uriB = serialize(parse(uriB, options), options);
- } else if (typeOf(uriB) === "object") {
- uriB = serialize(uriB, options);
- }
- return uriA === uriB;
-}
-
-function escapeComponent(str, options) {
- return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE, pctEncChar);
-}
-
-function unescapeComponent(str, options) {
- return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED, pctDecChars);
-}
-
-var handler = {
- scheme: "http",
- domainHost: true,
- parse: function parse(components, options) {
- //report missing host
- if (!components.host) {
- components.error = components.error || "HTTP URIs must have a host.";
- }
- return components;
- },
- serialize: function serialize(components, options) {
- var secure = String(components.scheme).toLowerCase() === "https";
- //normalize the default port
- if (components.port === (secure ? 443 : 80) || components.port === "") {
- components.port = undefined;
- }
- //normalize the empty path
- if (!components.path) {
- components.path = "/";
- }
- //NOTE: We do not parse query strings for HTTP URIs
- //as WWW Form Url Encoded query strings are part of the HTML4+ spec,
- //and not the HTTP spec.
- return components;
- }
-};
-
-var handler$1 = {
- scheme: "https",
- domainHost: handler.domainHost,
- parse: handler.parse,
- serialize: handler.serialize
-};
-
-function isSecure(wsComponents) {
- return typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === "wss";
-}
-//RFC 6455
-var handler$2 = {
- scheme: "ws",
- domainHost: true,
- parse: function parse(components, options) {
- var wsComponents = components;
- //indicate if the secure flag is set
- wsComponents.secure = isSecure(wsComponents);
- //construct resouce name
- wsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');
- wsComponents.path = undefined;
- wsComponents.query = undefined;
- return wsComponents;
- },
- serialize: function serialize(wsComponents, options) {
- //normalize the default port
- if (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === "") {
- wsComponents.port = undefined;
- }
- //ensure scheme matches secure flag
- if (typeof wsComponents.secure === 'boolean') {
- wsComponents.scheme = wsComponents.secure ? 'wss' : 'ws';
- wsComponents.secure = undefined;
- }
- //reconstruct path from resource name
- if (wsComponents.resourceName) {
- var _wsComponents$resourc = wsComponents.resourceName.split('?'),
- _wsComponents$resourc2 = slicedToArray(_wsComponents$resourc, 2),
- path = _wsComponents$resourc2[0],
- query = _wsComponents$resourc2[1];
-
- wsComponents.path = path && path !== '/' ? path : undefined;
- wsComponents.query = query;
- wsComponents.resourceName = undefined;
- }
- //forbid fragment component
- wsComponents.fragment = undefined;
- return wsComponents;
- }
-};
-
-var handler$3 = {
- scheme: "wss",
- domainHost: handler$2.domainHost,
- parse: handler$2.parse,
- serialize: handler$2.serialize
-};
-
-var O = {};
-var isIRI = true;
-//RFC 3986
-var UNRESERVED$$ = "[A-Za-z0-9\\-\\.\\_\\~" + (isIRI ? "\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF" : "") + "]";
-var HEXDIG$$ = "[0-9A-Fa-f]"; //case-insensitive
-var PCT_ENCODED$ = subexp(subexp("%[EFef]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%[89A-Fa-f]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%" + HEXDIG$$ + HEXDIG$$)); //expanded
-//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =
-//const ATEXT$$ = "[A-Za-z0-9\\!\\#\\$\\%\\&\\'\\*\\+\\-\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~]";
-//const WSP$$ = "[\\x20\\x09]";
-//const OBS_QTEXT$$ = "[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F]"; //(%d1-8 / %d11-12 / %d14-31 / %d127)
-//const QTEXT$$ = merge("[\\x21\\x23-\\x5B\\x5D-\\x7E]", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext
-//const VCHAR$$ = "[\\x21-\\x7E]";
-//const WSP$$ = "[\\x20\\x09]";
-//const OBS_QP$ = subexp("\\\\" + merge("[\\x00\\x0D\\x0A]", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext
-//const FWS$ = subexp(subexp(WSP$$ + "*" + "\\x0D\\x0A") + "?" + WSP$$ + "+");
-//const QUOTED_PAIR$ = subexp(subexp("\\\\" + subexp(VCHAR$$ + "|" + WSP$$)) + "|" + OBS_QP$);
-//const QUOTED_STRING$ = subexp('\\"' + subexp(FWS$ + "?" + QCONTENT$) + "*" + FWS$ + "?" + '\\"');
-var ATEXT$$ = "[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]";
-var QTEXT$$ = "[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]";
-var VCHAR$$ = merge(QTEXT$$, "[\\\"\\\\]");
-var SOME_DELIMS$$ = "[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]";
-var UNRESERVED = new RegExp(UNRESERVED$$, "g");
-var PCT_ENCODED = new RegExp(PCT_ENCODED$, "g");
-var NOT_LOCAL_PART = new RegExp(merge("[^]", ATEXT$$, "[\\.]", '[\\"]', VCHAR$$), "g");
-var NOT_HFNAME = new RegExp(merge("[^]", UNRESERVED$$, SOME_DELIMS$$), "g");
-var NOT_HFVALUE = NOT_HFNAME;
-function decodeUnreserved(str) {
- var decStr = pctDecChars(str);
- return !decStr.match(UNRESERVED) ? str : decStr;
-}
-var handler$4 = {
- scheme: "mailto",
- parse: function parse$$1(components, options) {
- var mailtoComponents = components;
- var to = mailtoComponents.to = mailtoComponents.path ? mailtoComponents.path.split(",") : [];
- mailtoComponents.path = undefined;
- if (mailtoComponents.query) {
- var unknownHeaders = false;
- var headers = {};
- var hfields = mailtoComponents.query.split("&");
- for (var x = 0, xl = hfields.length; x < xl; ++x) {
- var hfield = hfields[x].split("=");
- switch (hfield[0]) {
- case "to":
- var toAddrs = hfield[1].split(",");
- for (var _x = 0, _xl = toAddrs.length; _x < _xl; ++_x) {
- to.push(toAddrs[_x]);
- }
- break;
- case "subject":
- mailtoComponents.subject = unescapeComponent(hfield[1], options);
- break;
- case "body":
- mailtoComponents.body = unescapeComponent(hfield[1], options);
- break;
- default:
- unknownHeaders = true;
- headers[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);
- break;
- }
- }
- if (unknownHeaders) mailtoComponents.headers = headers;
- }
- mailtoComponents.query = undefined;
- for (var _x2 = 0, _xl2 = to.length; _x2 < _xl2; ++_x2) {
- var addr = to[_x2].split("@");
- addr[0] = unescapeComponent(addr[0]);
- if (!options.unicodeSupport) {
- //convert Unicode IDN -> ASCII IDN
- try {
- addr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());
- } catch (e) {
- mailtoComponents.error = mailtoComponents.error || "Email address's domain name can not be converted to ASCII via punycode: " + e;
- }
- } else {
- addr[1] = unescapeComponent(addr[1], options).toLowerCase();
- }
- to[_x2] = addr.join("@");
- }
- return mailtoComponents;
- },
- serialize: function serialize$$1(mailtoComponents, options) {
- var components = mailtoComponents;
- var to = toArray(mailtoComponents.to);
- if (to) {
- for (var x = 0, xl = to.length; x < xl; ++x) {
- var toAddr = String(to[x]);
- var atIdx = toAddr.lastIndexOf("@");
- var localPart = toAddr.slice(0, atIdx).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);
- var domain = toAddr.slice(atIdx + 1);
- //convert IDN via punycode
- try {
- domain = !options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain);
- } catch (e) {
- components.error = components.error || "Email address's domain name can not be converted to " + (!options.iri ? "ASCII" : "Unicode") + " via punycode: " + e;
- }
- to[x] = localPart + "@" + domain;
- }
- components.path = to.join(",");
- }
- var headers = mailtoComponents.headers = mailtoComponents.headers || {};
- if (mailtoComponents.subject) headers["subject"] = mailtoComponents.subject;
- if (mailtoComponents.body) headers["body"] = mailtoComponents.body;
- var fields = [];
- for (var name in headers) {
- if (headers[name] !== O[name]) {
- fields.push(name.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) + "=" + headers[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar));
- }
- }
- if (fields.length) {
- components.query = fields.join("&");
- }
- return components;
- }
-};
-
-var URN_PARSE = /^([^\:]+)\:(.*)/;
-//RFC 2141
-var handler$5 = {
- scheme: "urn",
- parse: function parse$$1(components, options) {
- var matches = components.path && components.path.match(URN_PARSE);
- var urnComponents = components;
- if (matches) {
- var scheme = options.scheme || urnComponents.scheme || "urn";
- var nid = matches[1].toLowerCase();
- var nss = matches[2];
- var urnScheme = scheme + ":" + (options.nid || nid);
- var schemeHandler = SCHEMES[urnScheme];
- urnComponents.nid = nid;
- urnComponents.nss = nss;
- urnComponents.path = undefined;
- if (schemeHandler) {
- urnComponents = schemeHandler.parse(urnComponents, options);
- }
- } else {
- urnComponents.error = urnComponents.error || "URN can not be parsed.";
- }
- return urnComponents;
- },
- serialize: function serialize$$1(urnComponents, options) {
- var scheme = options.scheme || urnComponents.scheme || "urn";
- var nid = urnComponents.nid;
- var urnScheme = scheme + ":" + (options.nid || nid);
- var schemeHandler = SCHEMES[urnScheme];
- if (schemeHandler) {
- urnComponents = schemeHandler.serialize(urnComponents, options);
- }
- var uriComponents = urnComponents;
- var nss = urnComponents.nss;
- uriComponents.path = (nid || options.nid) + ":" + nss;
- return uriComponents;
- }
-};
-
-var UUID = /^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/;
-//RFC 4122
-var handler$6 = {
- scheme: "urn:uuid",
- parse: function parse(urnComponents, options) {
- var uuidComponents = urnComponents;
- uuidComponents.uuid = uuidComponents.nss;
- uuidComponents.nss = undefined;
- if (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {
- uuidComponents.error = uuidComponents.error || "UUID is not valid.";
- }
- return uuidComponents;
- },
- serialize: function serialize(uuidComponents, options) {
- var urnComponents = uuidComponents;
- //normalize UUID
- urnComponents.nss = (uuidComponents.uuid || "").toLowerCase();
- return urnComponents;
- }
-};
-
-SCHEMES[handler.scheme] = handler;
-SCHEMES[handler$1.scheme] = handler$1;
-SCHEMES[handler$2.scheme] = handler$2;
-SCHEMES[handler$3.scheme] = handler$3;
-SCHEMES[handler$4.scheme] = handler$4;
-SCHEMES[handler$5.scheme] = handler$5;
-SCHEMES[handler$6.scheme] = handler$6;
-
-exports.SCHEMES = SCHEMES;
-exports.pctEncChar = pctEncChar;
-exports.pctDecChars = pctDecChars;
-exports.parse = parse;
-exports.removeDotSegments = removeDotSegments;
-exports.serialize = serialize;
-exports.resolveComponents = resolveComponents;
-exports.resolve = resolve;
-exports.normalize = normalize;
-exports.equal = equal;
-exports.escapeComponent = escapeComponent;
-exports.unescapeComponent = unescapeComponent;
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-})));
-//# sourceMappingURL=uri.all.js.map
diff --git a/deps/npm/node_modules/uri-js/dist/es5/uri.all.js.map b/deps/npm/node_modules/uri-js/dist/es5/uri.all.js.map
deleted file mode 100755
index 5b30c4e2202..00000000000
--- a/deps/npm/node_modules/uri-js/dist/es5/uri.all.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"uri.all.js","sources":["../../src/index.ts","../../src/schemes/urn-uuid.ts","../../src/schemes/urn.ts","../../src/schemes/mailto.ts","../../src/schemes/wss.ts","../../src/schemes/ws.ts","../../src/schemes/https.ts","../../src/schemes/http.ts","../../src/uri.ts","../../node_modules/punycode/punycode.es6.js","../../src/regexps-iri.ts","../../src/regexps-uri.ts","../../src/util.ts"],"sourcesContent":["import { SCHEMES } from \"./uri\";\n\nimport http from \"./schemes/http\";\nSCHEMES[http.scheme] = http;\n\nimport https from \"./schemes/https\";\nSCHEMES[https.scheme] = https;\n\nimport ws from \"./schemes/ws\";\nSCHEMES[ws.scheme] = ws;\n\nimport wss from \"./schemes/wss\";\nSCHEMES[wss.scheme] = wss;\n\nimport mailto from \"./schemes/mailto\";\nSCHEMES[mailto.scheme] = mailto;\n\nimport urn from \"./schemes/urn\";\nSCHEMES[urn.scheme] = urn;\n\nimport uuid from \"./schemes/urn-uuid\";\nSCHEMES[uuid.scheme] = uuid;\n\nexport * from \"./uri\";\n","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { URNComponents } from \"./urn\";\nimport { SCHEMES } from \"../uri\";\n\nexport interface UUIDComponents extends URNComponents {\n\tuuid?: string;\n}\n\nconst UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\nconst UUID_PARSE = /^[0-9A-Fa-f\\-]{36}/;\n\n//RFC 4122\nconst handler:URISchemeHandler<UUIDComponents, URIOptions, URNComponents> = {\n\tscheme : \"urn:uuid\",\n\n\tparse : function (urnComponents:URNComponents, options:URIOptions):UUIDComponents {\n\t\tconst uuidComponents = urnComponents as UUIDComponents;\n\t\tuuidComponents.uuid = uuidComponents.nss;\n\t\tuuidComponents.nss = undefined;\n\n\t\tif (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n\t\t\tuuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n\t\t}\n\n\t\treturn uuidComponents;\n\t},\n\n\tserialize : function (uuidComponents:UUIDComponents, options:URIOptions):URNComponents {\n\t\tconst urnComponents = uuidComponents as URNComponents;\n\t\t//normalize UUID\n\t\turnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n\t\treturn urnComponents;\n\t},\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, SCHEMES } from \"../uri\";\n\nexport interface URNComponents extends URIComponents {\n\tnid?:string;\n\tnss?:string;\n}\n\nexport interface URNOptions extends URIOptions {\n\tnid?:string;\n}\n\nconst NID$ = \"(?:[0-9A-Za-z][0-9A-Za-z\\\\-]{1,31})\";\nconst PCT_ENCODED$ = \"(?:\\\\%[0-9A-Fa-f]{2})\";\nconst TRANS$$ = \"[0-9A-Za-z\\\\(\\\\)\\\\+\\\\,\\\\-\\\\.\\\\:\\\\=\\\\@\\\\;\\\\$\\\\_\\\\!\\\\*\\\\'\\\\/\\\\?\\\\#]\";\nconst NSS$ = \"(?:(?:\" + PCT_ENCODED$ + \"|\" + TRANS$$ + \")+)\";\nconst URN_SCHEME = new RegExp(\"^urn\\\\:(\" + NID$ + \")$\");\nconst URN_PATH = new RegExp(\"^(\" + NID$ + \")\\\\:(\" + NSS$ + \")$\");\nconst URN_PARSE = /^([^\\:]+)\\:(.*)/;\nconst URN_EXCLUDED = /[\\x00-\\x20\\\\\\\"\\&\\<\\>\\[\\]\\^\\`\\{\\|\\}\\~\\x7F-\\xFF]/g;\n\n//RFC 2141\nconst handler:URISchemeHandler<URNComponents,URNOptions> = {\n\tscheme : \"urn\",\n\n\tparse : function (components:URIComponents, options:URNOptions):URNComponents {\n\t\tconst matches = components.path && components.path.match(URN_PARSE);\n\t\tlet urnComponents = components as URNComponents;\n\n\t\tif (matches) {\n\t\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\t\tconst nid = matches[1].toLowerCase();\n\t\t\tconst nss = matches[2];\n\t\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\t\turnComponents.nid = nid;\n\t\t\turnComponents.nss = nss;\n\t\t\turnComponents.path = undefined;\n\n\t\t\tif (schemeHandler) {\n\t\t\t\turnComponents = schemeHandler.parse(urnComponents, options) as URNComponents;\n\t\t\t}\n\t\t} else {\n\t\t\turnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n\t\t}\n\n\t\treturn urnComponents;\n\t},\n\n\tserialize : function (urnComponents:URNComponents, options:URNOptions):URIComponents {\n\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\tconst nid = urnComponents.nid;\n\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\tif (schemeHandler) {\n\t\t\turnComponents = schemeHandler.serialize(urnComponents, options) as URNComponents;\n\t\t}\n\n\t\tconst uriComponents = urnComponents as URIComponents;\n\t\tconst nss = urnComponents.nss;\n\t\turiComponents.path = `${nid || options.nid}:${nss}`;\n\n\t\treturn uriComponents;\n\t},\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, pctDecChars, unescapeComponent } from \"../uri\";\nimport punycode from \"punycode\";\nimport { merge, subexp, toUpperCase, toArray } from \"../util\";\n\nexport interface MailtoHeaders {\n\t[hfname:string]:string\n}\n\nexport interface MailtoComponents extends URIComponents {\n\tto:Array<string>,\n\theaders?:MailtoHeaders,\n\tsubject?:string,\n\tbody?:string\n}\n\nconst O:MailtoHeaders = {};\nconst isIRI = true;\n\n//RFC 3986\nconst UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\nconst HEXDIG$$ = \"[0-9A-Fa-f]\"; //case-insensitive\nconst PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)); //expanded\n\n//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =\n//const ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\/\\\\=\\\\?\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QTEXT$$ = \"[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F]\"; //(%d1-8 / %d11-12 / %d14-31 / %d127)\n//const QTEXT$$ = merge(\"[\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]\", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext\n//const VCHAR$$ = \"[\\\\x21-\\\\x7E]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QP$ = subexp(\"\\\\\\\\\" + merge(\"[\\\\x00\\\\x0D\\\\x0A]\", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext\n//const FWS$ = subexp(subexp(WSP$$ + \"*\" + \"\\\\x0D\\\\x0A\") + \"?\" + WSP$$ + \"+\");\n//const QUOTED_PAIR$ = subexp(subexp(\"\\\\\\\\\" + subexp(VCHAR$$ + \"|\" + WSP$$)) + \"|\" + OBS_QP$);\n//const QUOTED_STRING$ = subexp('\\\\\"' + subexp(FWS$ + \"?\" + QCONTENT$) + \"*\" + FWS$ + \"?\" + '\\\\\"');\nconst ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\nconst QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\nconst VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\nconst DOT_ATOM_TEXT$ = subexp(ATEXT$$ + \"+\" + subexp(\"\\\\.\" + ATEXT$$ + \"+\") + \"*\");\nconst QUOTED_PAIR$ = subexp(\"\\\\\\\\\" + VCHAR$$);\nconst QCONTENT$ = subexp(QTEXT$$ + \"|\" + QUOTED_PAIR$);\nconst QUOTED_STRING$ = subexp('\\\\\"' + QCONTENT$ + \"*\" + '\\\\\"');\n\n//RFC 6068\nconst DTEXT_NO_OBS$$ = \"[\\\\x21-\\\\x5A\\\\x5E-\\\\x7E]\"; //%d33-90 / %d94-126\nconst SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\nconst QCHAR$ = subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$ + \"|\" + SOME_DELIMS$$);\nconst DOMAIN$ = subexp(DOT_ATOM_TEXT$ + \"|\" + \"\\\\[\" + DTEXT_NO_OBS$$ + \"*\" + \"\\\\]\");\nconst LOCAL_PART$ = subexp(DOT_ATOM_TEXT$ + \"|\" + QUOTED_STRING$);\nconst ADDR_SPEC$ = subexp(LOCAL_PART$ + \"\\\\@\" + DOMAIN$);\nconst TO$ = subexp(ADDR_SPEC$ + subexp(\"\\\\,\" + ADDR_SPEC$) + \"*\");\nconst HFNAME$ = subexp(QCHAR$ + \"*\");\nconst HFVALUE$ = HFNAME$;\nconst HFIELD$ = subexp(HFNAME$ + \"\\\\=\" + HFVALUE$);\nconst HFIELDS2$ = subexp(HFIELD$ + subexp(\"\\\\&\" + HFIELD$) + \"*\");\nconst HFIELDS$ = subexp(\"\\\\?\" + HFIELDS2$);\nconst MAILTO_URI = new RegExp(\"^mailto\\\\:\" + TO$ + \"?\" + HFIELDS$ + \"?$\");\n\nconst UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\nconst PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\nconst NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\nconst NOT_DOMAIN = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", \"[\\\\[]\", DTEXT_NO_OBS$$, \"[\\\\]]\"), \"g\");\nconst NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\nconst NOT_HFVALUE = NOT_HFNAME;\nconst TO = new RegExp(\"^\" + TO$ + \"$\");\nconst HFIELDS = new RegExp(\"^\" + HFIELDS2$ + \"$\");\n\nfunction decodeUnreserved(str:string):string {\n\tconst decStr = pctDecChars(str);\n\treturn (!decStr.match(UNRESERVED) ? str : decStr);\n}\n\nconst handler:URISchemeHandler<MailtoComponents> = {\n\tscheme : \"mailto\",\n\n\tparse : function (components:URIComponents, options:URIOptions):MailtoComponents {\n\t\tconst mailtoComponents = components as MailtoComponents;\n\t\tconst to = mailtoComponents.to = (mailtoComponents.path ? mailtoComponents.path.split(\",\") : []);\n\t\tmailtoComponents.path = undefined;\n\n\t\tif (mailtoComponents.query) {\n\t\t\tlet unknownHeaders = false\n\t\t\tconst headers:MailtoHeaders = {};\n\t\t\tconst hfields = mailtoComponents.query.split(\"&\");\n\n\t\t\tfor (let x = 0, xl = hfields.length; x < xl; ++x) {\n\t\t\t\tconst hfield = hfields[x].split(\"=\");\n\n\t\t\t\tswitch (hfield[0]) {\n\t\t\t\t\tcase \"to\":\n\t\t\t\t\t\tconst toAddrs = hfield[1].split(\",\");\n\t\t\t\t\t\tfor (let x = 0, xl = toAddrs.length; x < xl; ++x) {\n\t\t\t\t\t\t\tto.push(toAddrs[x]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"subject\":\n\t\t\t\t\t\tmailtoComponents.subject = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"body\":\n\t\t\t\t\t\tmailtoComponents.body = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tunknownHeaders = true;\n\t\t\t\t\t\theaders[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (unknownHeaders) mailtoComponents.headers = headers;\n\t\t}\n\n\t\tmailtoComponents.query = undefined;\n\n\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\tconst addr = to[x].split(\"@\");\n\n\t\t\taddr[0] = unescapeComponent(addr[0]);\n\n\t\t\tif (!options.unicodeSupport) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\taddr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tmailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\taddr[1] = unescapeComponent(addr[1], options).toLowerCase();\n\t\t\t}\n\n\t\t\tto[x] = addr.join(\"@\");\n\t\t}\n\n\t\treturn mailtoComponents;\n\t},\n\n\tserialize : function (mailtoComponents:MailtoComponents, options:URIOptions):URIComponents {\n\t\tconst components = mailtoComponents as URIComponents;\n\t\tconst to = toArray(mailtoComponents.to);\n\t\tif (to) {\n\t\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\t\tconst toAddr = String(to[x]);\n\t\t\t\tconst atIdx = toAddr.lastIndexOf(\"@\");\n\t\t\t\tconst localPart = (toAddr.slice(0, atIdx)).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n\t\t\t\tlet domain = toAddr.slice(atIdx + 1);\n\n\t\t\t\t//convert IDN via punycode\n\t\t\t\ttry {\n\t\t\t\t\tdomain = (!options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain));\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t\t}\n\n\t\t\t\tto[x] = localPart + \"@\" + domain;\n\t\t\t}\n\n\t\t\tcomponents.path = to.join(\",\");\n\t\t}\n\n\t\tconst headers = mailtoComponents.headers = mailtoComponents.headers || {};\n\n\t\tif (mailtoComponents.subject) headers[\"subject\"] = mailtoComponents.subject;\n\t\tif (mailtoComponents.body) headers[\"body\"] = mailtoComponents.body;\n\n\t\tconst fields = [];\n\t\tfor (const name in headers) {\n\t\t\tif (headers[name] !== O[name]) {\n\t\t\t\tfields.push(\n\t\t\t\t\tname.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) +\n\t\t\t\t\t\"=\" +\n\t\t\t\t\theaders[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (fields.length) {\n\t\t\tcomponents.query = fields.join(\"&\");\n\t\t}\n\n\t\treturn components;\n\t}\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport ws from \"./ws\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"wss\",\n\tdomainHost : ws.domainHost,\n\tparse : ws.parse,\n\tserialize : ws.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nexport interface WSComponents extends URIComponents {\n\tresourceName?: string;\n\tsecure?: boolean;\n}\n\nfunction isSecure(wsComponents:WSComponents):boolean {\n\treturn typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === \"wss\";\n}\n\n//RFC 6455\nconst handler:URISchemeHandler = {\n\tscheme : \"ws\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):WSComponents {\n\t\tconst wsComponents = components as WSComponents;\n\n\t\t//indicate if the secure flag is set\n\t\twsComponents.secure = isSecure(wsComponents);\n\n\t\t//construct resouce name\n\t\twsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');\n\t\twsComponents.path = undefined;\n\t\twsComponents.query = undefined;\n\n\t\treturn wsComponents;\n\t},\n\n\tserialize : function (wsComponents:WSComponents, options:URIOptions):URIComponents {\n\t\t//normalize the default port\n\t\tif (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === \"\") {\n\t\t\twsComponents.port = undefined;\n\t\t}\n\n\t\t//ensure scheme matches secure flag\n\t\tif (typeof wsComponents.secure === 'boolean') {\n\t\t\twsComponents.scheme = (wsComponents.secure ? 'wss' : 'ws');\n\t\t\twsComponents.secure = undefined;\n\t\t}\n\n\t\t//reconstruct path from resource name\n\t\tif (wsComponents.resourceName) {\n\t\t\tconst [path, query] = wsComponents.resourceName.split('?');\n\t\t\twsComponents.path = (path && path !== '/' ? path : undefined);\n\t\t\twsComponents.query = query;\n\t\t\twsComponents.resourceName = undefined;\n\t\t}\n\n\t\t//forbid fragment component\n\t\twsComponents.fragment = undefined;\n\n\t\treturn wsComponents;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport http from \"./http\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"https\",\n\tdomainHost : http.domainHost,\n\tparse : http.parse,\n\tserialize : http.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"http\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\t//report missing host\n\t\tif (!components.host) {\n\t\t\tcomponents.error = components.error || \"HTTP URIs must have a host.\";\n\t\t}\n\n\t\treturn components;\n\t},\n\n\tserialize : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\tconst secure = String(components.scheme).toLowerCase() === \"https\";\n\n\t\t//normalize the default port\n\t\tif (components.port === (secure ? 443 : 80) || components.port === \"\") {\n\t\t\tcomponents.port = undefined;\n\t\t}\n\t\t\n\t\t//normalize the empty path\n\t\tif (!components.path) {\n\t\t\tcomponents.path = \"/\";\n\t\t}\n\n\t\t//NOTE: We do not parse query strings for HTTP URIs\n\t\t//as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n\t\t//and not the HTTP spec.\n\n\t\treturn components;\n\t}\n};\n\nexport default handler;","/**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author <a href=\"mailto:gary.court@gmail.com\">Gary Court</a>\n * @see http://github.com/garycourt/uri-js\n */\n\n/**\n * Copyright 2011 Gary Court. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification, are\n * permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this list of\n * conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list\n * of conditions and the following disclaimer in the documentation and/or other materials\n * provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\n * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * The views and conclusions contained in the software and documentation are those of the\n * authors and should not be interpreted as representing official policies, either expressed\n * or implied, of Gary Court.\n */\n\nimport URI_PROTOCOL from \"./regexps-uri\";\nimport IRI_PROTOCOL from \"./regexps-iri\";\nimport punycode from \"punycode\";\nimport { toUpperCase, typeOf, assign } from \"./util\";\n\nexport interface URIComponents {\n\tscheme?:string;\n\tuserinfo?:string;\n\thost?:string;\n\tport?:number|string;\n\tpath?:string;\n\tquery?:string;\n\tfragment?:string;\n\treference?:string;\n\terror?:string;\n}\n\nexport interface URIOptions {\n\tscheme?:string;\n\treference?:string;\n\ttolerant?:boolean;\n\tabsolutePath?:boolean;\n\tiri?:boolean;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n}\n\nexport interface URISchemeHandler<Components extends URIComponents = URIComponents, Options extends URIOptions = URIOptions, ParentComponents extends URIComponents = URIComponents> {\n\tscheme:string;\n\tparse(components:ParentComponents, options:Options):Components;\n\tserialize(components:Components, options:Options):ParentComponents;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n\tabsolutePath?:boolean;\n}\n\nexport interface URIRegExps {\n\tNOT_SCHEME : RegExp,\n\tNOT_USERINFO : RegExp,\n\tNOT_HOST : RegExp,\n\tNOT_PATH : RegExp,\n\tNOT_PATH_NOSCHEME : RegExp,\n\tNOT_QUERY : RegExp,\n\tNOT_FRAGMENT : RegExp,\n\tESCAPE : RegExp,\n\tUNRESERVED : RegExp,\n\tOTHER_CHARS : RegExp,\n\tPCT_ENCODED : RegExp,\n\tIPV4ADDRESS : RegExp,\n\tIPV6ADDRESS : RegExp,\n}\n\nexport const SCHEMES:{[scheme:string]:URISchemeHandler} = {};\n\nexport function pctEncChar(chr:string):string {\n\tconst c = chr.charCodeAt(0);\n\tlet e:string;\n\n\tif (c < 16) e = \"%0\" + c.toString(16).toUpperCase();\n\telse if (c < 128) e = \"%\" + c.toString(16).toUpperCase();\n\telse if (c < 2048) e = \"%\" + ((c >> 6) | 192).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\telse e = \"%\" + ((c >> 12) | 224).toString(16).toUpperCase() + \"%\" + (((c >> 6) & 63) | 128).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\n\treturn e;\n}\n\nexport function pctDecChars(str:string):string {\n\tlet newStr = \"\";\n\tlet i = 0;\n\tconst il = str.length;\n\n\twhile (i < il) {\n\t\tconst c = parseInt(str.substr(i + 1, 2), 16);\n\n\t\tif (c < 128) {\n\t\t\tnewStr += String.fromCharCode(c);\n\t\t\ti += 3;\n\t\t}\n\t\telse if (c >= 194 && c < 224) {\n\t\t\tif ((il - i) >= 6) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 6);\n\t\t\t}\n\t\t\ti += 6;\n\t\t}\n\t\telse if (c >= 224) {\n\t\t\tif ((il - i) >= 9) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tconst c3 = parseInt(str.substr(i + 7, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 9);\n\t\t\t}\n\t\t\ti += 9;\n\t\t}\n\t\telse {\n\t\t\tnewStr += str.substr(i, 3);\n\t\t\ti += 3;\n\t\t}\n\t}\n\n\treturn newStr;\n}\n\nfunction _normalizeComponentEncoding(components:URIComponents, protocol:URIRegExps) {\n\tfunction decodeUnreserved(str:string):string {\n\t\tconst decStr = pctDecChars(str);\n\t\treturn (!decStr.match(protocol.UNRESERVED) ? str : decStr);\n\t}\n\n\tif (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n\tif (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace((components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME), pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\n\treturn components;\n};\n\nfunction _stripLeadingZeros(str:string):string {\n\treturn str.replace(/^0*(.*)/, \"$1\") || \"0\";\n}\n\nfunction _normalizeIPv4(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV4ADDRESS) || [];\n\tconst [, address] = matches;\n\t\n\tif (address) {\n\t\treturn address.split(\".\").map(_stripLeadingZeros).join(\".\");\n\t} else {\n\t\treturn host;\n\t}\n}\n\nfunction _normalizeIPv6(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV6ADDRESS) || [];\n\tconst [, address, zone] = matches;\n\n\tif (address) {\n\t\tconst [last, first] = address.toLowerCase().split('::').reverse();\n\t\tconst firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n\t\tconst lastFields = last.split(\":\").map(_stripLeadingZeros);\n\t\tconst isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n\t\tconst fieldCount = isLastFieldIPv4Address ? 7 : 8;\n\t\tconst lastFieldsStart = lastFields.length - fieldCount;\n\t\tconst fields = Array<string>(fieldCount);\n\n\t\tfor (let x = 0; x < fieldCount; ++x) {\n\t\t\tfields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';\n\t\t}\n\n\t\tif (isLastFieldIPv4Address) {\n\t\t\tfields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n\t\t}\n\n\t\tconst allZeroFields = fields.reduce<Array<{index:number,length:number}>>((acc, field, index) => {\n\t\t\tif (!field || field === \"0\") {\n\t\t\t\tconst lastLongest = acc[acc.length - 1];\n\t\t\t\tif (lastLongest && lastLongest.index + lastLongest.length === index) {\n\t\t\t\t\tlastLongest.length++;\n\t\t\t\t} else {\n\t\t\t\t\tacc.push({ index, length : 1 });\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, []);\n\n\t\tconst longestZeroFields = allZeroFields.sort((a, b) => b.length - a.length)[0];\n\n\t\tlet newHost:string;\n\t\tif (longestZeroFields && longestZeroFields.length > 1) {\n\t\t\tconst newFirst = fields.slice(0, longestZeroFields.index) ;\n\t\t\tconst newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n\t\t\tnewHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n\t\t} else {\n\t\t\tnewHost = fields.join(\":\");\n\t\t}\n\n\t\tif (zone) {\n\t\t\tnewHost += \"%\" + zone;\n\t\t}\n\n\t\treturn newHost;\n\t} else {\n\t\treturn host;\n\t}\n}\n\nconst URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\nconst NO_MATCH_IS_UNDEFINED = (<RegExpMatchArray>(\"\").match(/(){0}/))[1] === undefined;\n\nexport function parse(uriString:string, options:URIOptions = {}):URIComponents {\n\tconst components:URIComponents = {};\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\n\tif (options.reference === \"suffix\") uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n\n\tconst matches = uriString.match(URI_PARSE);\n\n\tif (matches) {\n\t\tif (NO_MATCH_IS_UNDEFINED) {\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1];\n\t\t\tcomponents.userinfo = matches[3];\n\t\t\tcomponents.host = matches[4];\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = matches[7];\n\t\t\tcomponents.fragment = matches[8];\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = matches[5];\n\t\t\t}\n\t\t} else { //IE FIX for improper RegExp matching\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1] || undefined;\n\t\t\tcomponents.userinfo = (uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined);\n\t\t\tcomponents.host = (uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined);\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = (uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined);\n\t\t\tcomponents.fragment = (uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined);\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = (uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined);\n\t\t\t}\n\t\t}\n\n\t\tif (components.host) {\n\t\t\t//normalize IP hosts\n\t\t\tcomponents.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n\t\t}\n\n\t\t//determine reference type\n\t\tif (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n\t\t\tcomponents.reference = \"same-document\";\n\t\t} else if (components.scheme === undefined) {\n\t\t\tcomponents.reference = \"relative\";\n\t\t} else if (components.fragment === undefined) {\n\t\t\tcomponents.reference = \"absolute\";\n\t\t} else {\n\t\t\tcomponents.reference = \"uri\";\n\t\t}\n\n\t\t//check for reference errors\n\t\tif (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n\t\t\tcomponents.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n\t\t}\n\n\t\t//find scheme handler\n\t\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t\t//check if scheme can't handle IRIs\n\t\tif (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n\t\t\t//if host component is a domain name\n\t\t\tif (components.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost))) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\tcomponents.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t}\n\t\t\t//convert IRI -> URI\n\t\t\t_normalizeComponentEncoding(components, URI_PROTOCOL);\n\t\t} else {\n\t\t\t//normalize encodings\n\t\t\t_normalizeComponentEncoding(components, protocol);\n\t\t}\n\n\t\t//perform scheme specific parsing\n\t\tif (schemeHandler && schemeHandler.parse) {\n\t\t\tschemeHandler.parse(components, options);\n\t\t}\n\t} else {\n\t\tcomponents.error = components.error || \"URI can not be parsed.\";\n\t}\n\n\treturn components;\n};\n\nfunction _recomposeAuthority(components:URIComponents, options:URIOptions):string|undefined {\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array<string> = [];\n\n\tif (components.userinfo !== undefined) {\n\t\turiTokens.push(components.userinfo);\n\t\turiTokens.push(\"@\");\n\t}\n\n\tif (components.host !== undefined) {\n\t\t//normalize IP hosts, add brackets and escape zone separator for IPv6\n\t\turiTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, (_, $1, $2) => \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\"));\n\t}\n\n\tif (typeof components.port === \"number\" || typeof components.port === \"string\") {\n\t\turiTokens.push(\":\");\n\t\turiTokens.push(String(components.port));\n\t}\n\n\treturn uriTokens.length ? uriTokens.join(\"\") : undefined;\n};\n\nconst RDS1 = /^\\.\\.?\\//;\nconst RDS2 = /^\\/\\.(\\/|$)/;\nconst RDS3 = /^\\/\\.\\.(\\/|$)/;\nconst RDS4 = /^\\.\\.?$/;\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\n\nexport function removeDotSegments(input:string):string {\n\tconst output:Array<string> = [];\n\n\twhile (input.length) {\n\t\tif (input.match(RDS1)) {\n\t\t\tinput = input.replace(RDS1, \"\");\n\t\t} else if (input.match(RDS2)) {\n\t\t\tinput = input.replace(RDS2, \"/\");\n\t\t} else if (input.match(RDS3)) {\n\t\t\tinput = input.replace(RDS3, \"/\");\n\t\t\toutput.pop();\n\t\t} else if (input === \".\" || input === \"..\") {\n\t\t\tinput = \"\";\n\t\t} else {\n\t\t\tconst im = input.match(RDS5);\n\t\t\tif (im) {\n\t\t\t\tconst s = im[0];\n\t\t\t\tinput = input.slice(s.length);\n\t\t\t\toutput.push(s);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unexpected dot segment condition\");\n\t\t\t}\n\t\t}\n\t}\n\n\treturn output.join(\"\");\n};\n\nexport function serialize(components:URIComponents, options:URIOptions = {}):string {\n\tconst protocol = (options.iri ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array<string> = [];\n\n\t//find scheme handler\n\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t//perform scheme specific serialization\n\tif (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);\n\n\tif (components.host) {\n\t\t//if host component is an IPv6 address\n\t\tif (protocol.IPV6ADDRESS.test(components.host)) {\n\t\t\t//TODO: normalize IPv6 address as per RFC 5952\n\t\t}\n\n\t\t//if host component is a domain name\n\t\telse if (options.domainHost || (schemeHandler && schemeHandler.domainHost)) {\n\t\t\t//convert IDN via punycode\n\t\t\ttry {\n\t\t\t\tcomponents.host = (!options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host));\n\t\t\t} catch (e) {\n\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t}\n\t\t}\n\t}\n\n\t//normalize encoding\n\t_normalizeComponentEncoding(components, protocol);\n\n\tif (options.reference !== \"suffix\" && components.scheme) {\n\t\turiTokens.push(components.scheme);\n\t\turiTokens.push(\":\");\n\t}\n\n\tconst authority = _recomposeAuthority(components, options);\n\tif (authority !== undefined) {\n\t\tif (options.reference !== \"suffix\") {\n\t\t\turiTokens.push(\"//\");\n\t\t}\n\n\t\turiTokens.push(authority);\n\n\t\tif (components.path && components.path.charAt(0) !== \"/\") {\n\t\t\turiTokens.push(\"/\");\n\t\t}\n\t}\n\n\tif (components.path !== undefined) {\n\t\tlet s = components.path;\n\n\t\tif (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n\t\t\ts = removeDotSegments(s);\n\t\t}\n\n\t\tif (authority === undefined) {\n\t\t\ts = s.replace(/^\\/\\//, \"/%2F\"); //don't allow the path to start with \"//\"\n\t\t}\n\n\t\turiTokens.push(s);\n\t}\n\n\tif (components.query !== undefined) {\n\t\turiTokens.push(\"?\");\n\t\turiTokens.push(components.query);\n\t}\n\n\tif (components.fragment !== undefined) {\n\t\turiTokens.push(\"#\");\n\t\turiTokens.push(components.fragment);\n\t}\n\n\treturn uriTokens.join(\"\"); //merge tokens into a string\n};\n\nexport function resolveComponents(base:URIComponents, relative:URIComponents, options:URIOptions = {}, skipNormalization?:boolean):URIComponents {\n\tconst target:URIComponents = {};\n\n\tif (!skipNormalization) {\n\t\tbase = parse(serialize(base, options), options); //normalize base components\n\t\trelative = parse(serialize(relative, options), options); //normalize relative components\n\t}\n\toptions = options || {};\n\n\tif (!options.tolerant && relative.scheme) {\n\t\ttarget.scheme = relative.scheme;\n\t\t//target.authority = relative.authority;\n\t\ttarget.userinfo = relative.userinfo;\n\t\ttarget.host = relative.host;\n\t\ttarget.port = relative.port;\n\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\ttarget.query = relative.query;\n\t} else {\n\t\tif (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n\t\t\t//target.authority = relative.authority;\n\t\t\ttarget.userinfo = relative.userinfo;\n\t\t\ttarget.host = relative.host;\n\t\t\ttarget.port = relative.port;\n\t\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\t\ttarget.query = relative.query;\n\t\t} else {\n\t\t\tif (!relative.path) {\n\t\t\t\ttarget.path = base.path;\n\t\t\t\tif (relative.query !== undefined) {\n\t\t\t\t\ttarget.query = relative.query;\n\t\t\t\t} else {\n\t\t\t\t\ttarget.query = base.query;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (relative.path.charAt(0) === \"/\") {\n\t\t\t\t\ttarget.path = removeDotSegments(relative.path);\n\t\t\t\t} else {\n\t\t\t\t\tif ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n\t\t\t\t\t\ttarget.path = \"/\" + relative.path;\n\t\t\t\t\t} else if (!base.path) {\n\t\t\t\t\t\ttarget.path = relative.path;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget.path = base.path.slice(0, base.path.lastIndexOf(\"/\") + 1) + relative.path;\n\t\t\t\t\t}\n\t\t\t\t\ttarget.path = removeDotSegments(target.path);\n\t\t\t\t}\n\t\t\t\ttarget.query = relative.query;\n\t\t\t}\n\t\t\t//target.authority = base.authority;\n\t\t\ttarget.userinfo = base.userinfo;\n\t\t\ttarget.host = base.host;\n\t\t\ttarget.port = base.port;\n\t\t}\n\t\ttarget.scheme = base.scheme;\n\t}\n\n\ttarget.fragment = relative.fragment;\n\n\treturn target;\n};\n\nexport function resolve(baseURI:string, relativeURI:string, options?:URIOptions):string {\n\tconst schemelessOptions = assign({ scheme : 'null' }, options);\n\treturn serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n};\n\nexport function normalize(uri:string, options?:URIOptions):string;\nexport function normalize(uri:URIComponents, options?:URIOptions):URIComponents;\nexport function normalize(uri:any, options?:URIOptions):any {\n\tif (typeof uri === \"string\") {\n\t\turi = serialize(parse(uri, options), options);\n\t} else if (typeOf(uri) === \"object\") {\n\t\turi = parse(serialize(<URIComponents>uri, options), options);\n\t}\n\n\treturn uri;\n};\n\nexport function equal(uriA:string, uriB:string, options?: URIOptions):boolean;\nexport function equal(uriA:URIComponents, uriB:URIComponents, options?:URIOptions):boolean;\nexport function equal(uriA:any, uriB:any, options?:URIOptions):boolean {\n\tif (typeof uriA === \"string\") {\n\t\turiA = serialize(parse(uriA, options), options);\n\t} else if (typeOf(uriA) === \"object\") {\n\t\turiA = serialize(<URIComponents>uriA, options);\n\t}\n\n\tif (typeof uriB === \"string\") {\n\t\turiB = serialize(parse(uriB, options), options);\n\t} else if (typeOf(uriB) === \"object\") {\n\t\turiB = serialize(<URIComponents>uriB, options);\n\t}\n\n\treturn uriA === uriB;\n};\n\nexport function escapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE), pctEncChar);\n};\n\nexport function unescapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED), pctDecChars);\n};\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tconst parts = string.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tconst labels = string.split('.');\n\tconst encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tlet oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tlet inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tlet basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue == n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport default punycode;\n","import { URIRegExps } from \"./uri\";\nimport { buildExps } from \"./regexps-uri\";\n\nexport default buildExps(true);\n","import { URIRegExps } from \"./uri\";\nimport { merge, subexp } from \"./util\";\n\nexport function buildExps(isIRI:boolean):URIRegExps {\n\tconst\n\t\tALPHA$$ = \"[A-Za-z]\",\n\t\tCR$ = \"[\\\\x0D]\",\n\t\tDIGIT$$ = \"[0-9]\",\n\t\tDQUOTE$$ = \"[\\\\x22]\",\n\t\tHEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"), //case-insensitive\n\t\tLF$$ = \"[\\\\x0A]\",\n\t\tSP$$ = \"[\\\\x20]\",\n\t\tPCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)), //expanded\n\t\tGEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\",\n\t\tSUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\",\n\t\tRESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),\n\t\tUCSCHAR$$ = isIRI ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\", //subset, excludes bidi control characters\n\t\tIPRIVATE$$ = isIRI ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\", //subset\n\t\tUNRESERVED$$ = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$),\n\t\tSCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"),\n\t\tUSERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"),\n\t\tDEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$),\n\t\tDEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$), //relaxed parsing rules\n\t\tIPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$),\n\t\tH16$ = subexp(HEXDIG$$ + \"{1,4}\"),\n\t\tLS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$),\n\t\tIPV6ADDRESS1$ = subexp( subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$), // 6( h16 \":\" ) ls32\n\t\tIPV6ADDRESS2$ = subexp( \"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$), // \"::\" 5( h16 \":\" ) ls32\n\t\tIPV6ADDRESS3$ = subexp(subexp( H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$), //[ h16 ] \"::\" 4( h16 \":\" ) ls32\n\t\tIPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$), //[ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n\t\tIPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$), //[ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n\t\tIPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" + H16$ + \"\\\\:\" + LS32$), //[ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n\t\tIPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\" + LS32$), //[ *4( h16 \":\" ) h16 ] \"::\" ls32\n\t\tIPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\" + H16$ ), //[ *5( h16 \":\" ) h16 ] \"::\" h16\n\t\tIPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\" ), //[ *6( h16 \":\" ) h16 ] \"::\"\n\t\tIPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")),\n\t\tZONEID$ = subexp(subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$) + \"+\"), //RFC 6874\n\t\tIPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$), //RFC 6874\n\t\tIPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$), //RFC 6874, with relaxed parsing rules\n\t\tIPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"),\n\t\tIP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"), //RFC 6874\n\t\tREG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"),\n\t\tHOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$),\n\t\tPORT$ = subexp(DIGIT$$ + \"*\"),\n\t\tAUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"),\n\t\tPCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")),\n\t\tSEGMENT$ = subexp(PCHAR$ + \"*\"),\n\t\tSEGMENT_NZ$ = subexp(PCHAR$ + \"+\"),\n\t\tSEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"),\n\t\tPATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"),\n\t\tPATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"), //simplified\n\t\tPATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\",\n\t\tPATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tQUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"),\n\t\tFRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"),\n\t\tHIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tURI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tRELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$),\n\t\tRELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tURI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$),\n\t\tABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"),\n\n\t\tGENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tRELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\",\n\t\tSAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tAUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\"\n\t;\n\n\treturn {\n\t\tNOT_SCHEME : new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n\t\tNOT_USERINFO : new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_HOST : new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH : new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH_NOSCHEME : new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_QUERY : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n\t\tNOT_FRAGMENT : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n\t\tESCAPE : new RegExp(merge(\"[^]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tUNRESERVED : new RegExp(UNRESERVED$$, \"g\"),\n\t\tOTHER_CHARS : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, RESERVED$$), \"g\"),\n\t\tPCT_ENCODED : new RegExp(PCT_ENCODED$, \"g\"),\n\t\tIPV4ADDRESS : new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n\t\tIPV6ADDRESS : new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\") //RFC 6874, with relaxed parsing rules\n\t};\n}\n\nexport default buildExps(false);\n","export function merge(...sets:Array<string>):string {\n\tif (sets.length > 1) {\n\t\tsets[0] = sets[0].slice(0, -1);\n\t\tconst xl = sets.length - 1;\n\t\tfor (let x = 1; x < xl; ++x) {\n\t\t\tsets[x] = sets[x].slice(1, -1);\n\t\t}\n\t\tsets[xl] = sets[xl].slice(1);\n\t\treturn sets.join('');\n\t} else {\n\t\treturn sets[0];\n\t}\n}\n\nexport function subexp(str:string):string {\n\treturn \"(?:\" + str + \")\";\n}\n\nexport function typeOf(o:any):string {\n\treturn o === undefined ? \"undefined\" : (o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase());\n}\n\nexport function toUpperCase(str:string):string {\n\treturn str.toUpperCase();\n}\n\nexport function toArray(obj:any):Array<any> {\n\treturn obj !== undefined && obj !== null ? (obj instanceof Array ? obj : (typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj))) : [];\n}\n\n\nexport function assign(target: object, source: any): any {\n\tconst obj = target as any;\n\tif (source) {\n\t\tfor (const key in source) {\n\t\t\tobj[key] = source[key];\n\t\t}\n\t}\n\treturn obj;\n}"],"names":["SCHEMES","uuid","scheme","urn","mailto","wss","ws","https","http","urnComponents","nss","uuidComponents","toLowerCase","options","error","tolerant","match","UUID","undefined","handler","uriComponents","path","nid","schemeHandler","serialize","urnScheme","parse","matches","components","URN_PARSE","query","fields","join","length","push","name","replace","PCT_ENCODED","decodeUnreserved","toUpperCase","NOT_HFNAME","pctEncChar","headers","NOT_HFVALUE","O","mailtoComponents","body","subject","to","x","localPart","domain","iri","e","punycode","toASCII","unescapeComponent","toUnicode","toAddr","slice","atIdx","NOT_LOCAL_PART","lastIndexOf","String","xl","toArray","addr","unicodeSupport","split","unknownHeaders","hfield","toAddrs","hfields","decStr","UNRESERVED","str","pctDecChars","RegExp","merge","UNRESERVED$$","SOME_DELIMS$$","ATEXT$$","VCHAR$$","PCT_ENCODED$","QTEXT$$","subexp","HEXDIG$$","isIRI","domainHost","wsComponents","fragment","resourceName","secure","port","isSecure","host","toString","URI_PROTOCOL","IRI_PROTOCOL","ESCAPE","escapeComponent","uriA","uriB","typeOf","equal","uri","normalize","resolveComponents","baseURI","schemelessOptions","relativeURI","assign","resolve","target","relative","base","userinfo","removeDotSegments","charAt","skipNormalization","uriTokens","s","authority","absolutePath","reference","_recomposeAuthority","protocol","IPV6ADDRESS","test","output","Error","input","im","RDS5","pop","RDS3","RDS2","RDS1","$1","$2","_normalizeIPv6","_normalizeIPv4","_","uriString","isNaN","indexOf","parseInt","NO_MATCH_IS_UNDEFINED","URI_PARSE","newHost","zone","newFirst","newLast","longestZeroFields","index","b","a","allZeroFields","sort","acc","lastLongest","field","reduce","fieldCount","isLastFieldIPv4Address","firstFields","lastFields","lastFieldsStart","Array","IPV4ADDRESS","last","map","_stripLeadingZeros","first","address","reverse","NOT_FRAGMENT","NOT_QUERY","NOT_PATH","NOT_PATH_NOSCHEME","NOT_HOST","NOT_USERINFO","NOT_SCHEME","_normalizeComponentEncoding","newStr","substr","i","fromCharCode","c","c2","c3","il","chr","charCodeAt","encode","decode","ucs2encode","ucs2decode","regexNonASCII","string","mapDomain","regexPunycode","n","delta","handledCPCount","adapt","handledCPCountPlusOne","basicLength","stringFromCharCode","digitToBasic","q","floor","qMinusT","baseMinusT","t","k","bias","tMin","tMax","currentValue","maxInt","m","inputLength","delimiter","initialBias","initialN","fromCodePoint","splice","out","oldi","w","digit","basicToDigit","basic","j","baseMinusTMin","skew","numPoints","firstTime","damp","flag","codePoint","array","value","extra","counter","result","encoded","labels","fn","regexSeparators","parts","RangeError","errors","type","Math","buildExps","IPV6ADDRESS$","ZONEID$","IPV4ADDRESS$","RESERVED$$","SUB_DELIMS$$","IPRIVATE$$","ALPHA$$","DIGIT$$","AUTHORITY_REF$","USERINFO$","HOST$","PORT$","SAMEDOC_REF$","FRAGMENT$","ABSOLUTE_REF$","SCHEME$","PATH_ABEMPTY$","PATH_ABSOLUTE$","PATH_ROOTLESS$","PATH_EMPTY$","QUERY$","RELATIVE_REF$","PATH_NOSCHEME$","GENERIC_REF$","ABSOLUTE_URI$","HIER_PART$","URI_REFERENCE$","URI$","RELATIVE$","RELATIVE_PART$","AUTHORITY$","PCHAR$","PATH$","SEGMENT_NZ$","SEGMENT_NZ_NC$","SEGMENT$","IP_LITERAL$","REG_NAME$","IPV6ADDRZ_RELAXED$","IPVFUTURE$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","H16$","LS32$","DEC_OCTET_RELAXED$","DEC_OCTET$","UCSCHAR$$","GEN_DELIMS$$","SP$$","DQUOTE$$","CR$","obj","key","source","setInterval","call","prototype","o","Object","shift","sets"],"mappings":"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"} \ No newline at end of file
diff --git a/deps/npm/node_modules/uri-js/dist/es5/uri.all.min.d.ts b/deps/npm/node_modules/uri-js/dist/es5/uri.all.min.d.ts
deleted file mode 100755
index da51e235277..00000000000
--- a/deps/npm/node_modules/uri-js/dist/es5/uri.all.min.d.ts
+++ /dev/null
@@ -1,59 +0,0 @@
-export interface URIComponents {
- scheme?: string;
- userinfo?: string;
- host?: string;
- port?: number | string;
- path?: string;
- query?: string;
- fragment?: string;
- reference?: string;
- error?: string;
-}
-export interface URIOptions {
- scheme?: string;
- reference?: string;
- tolerant?: boolean;
- absolutePath?: boolean;
- iri?: boolean;
- unicodeSupport?: boolean;
- domainHost?: boolean;
-}
-export interface URISchemeHandler<Components extends URIComponents = URIComponents, Options extends URIOptions = URIOptions, ParentComponents extends URIComponents = URIComponents> {
- scheme: string;
- parse(components: ParentComponents, options: Options): Components;
- serialize(components: Components, options: Options): ParentComponents;
- unicodeSupport?: boolean;
- domainHost?: boolean;
- absolutePath?: boolean;
-}
-export interface URIRegExps {
- NOT_SCHEME: RegExp;
- NOT_USERINFO: RegExp;
- NOT_HOST: RegExp;
- NOT_PATH: RegExp;
- NOT_PATH_NOSCHEME: RegExp;
- NOT_QUERY: RegExp;
- NOT_FRAGMENT: RegExp;
- ESCAPE: RegExp;
- UNRESERVED: RegExp;
- OTHER_CHARS: RegExp;
- PCT_ENCODED: RegExp;
- IPV4ADDRESS: RegExp;
- IPV6ADDRESS: RegExp;
-}
-export declare const SCHEMES: {
- [scheme: string]: URISchemeHandler;
-};
-export declare function pctEncChar(chr: string): string;
-export declare function pctDecChars(str: string): string;
-export declare function parse(uriString: string, options?: URIOptions): URIComponents;
-export declare function removeDotSegments(input: string): string;
-export declare function serialize(components: URIComponents, options?: URIOptions): string;
-export declare function resolveComponents(base: URIComponents, relative: URIComponents, options?: URIOptions, skipNormalization?: boolean): URIComponents;
-export declare function resolve(baseURI: string, relativeURI: string, options?: URIOptions): string;
-export declare function normalize(uri: string, options?: URIOptions): string;
-export declare function normalize(uri: URIComponents, options?: URIOptions): URIComponents;
-export declare function equal(uriA: string, uriB: string, options?: URIOptions): boolean;
-export declare function equal(uriA: URIComponents, uriB: URIComponents, options?: URIOptions): boolean;
-export declare function escapeComponent(str: string, options?: URIOptions): string;
-export declare function unescapeComponent(str: string, options?: URIOptions): string;
diff --git a/deps/npm/node_modules/uri-js/dist/es5/uri.all.min.js b/deps/npm/node_modules/uri-js/dist/es5/uri.all.min.js
deleted file mode 100755
index fcd845862d9..00000000000
--- a/deps/npm/node_modules/uri-js/dist/es5/uri.all.min.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/** @license URI.js v4.4.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */
-!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r(e.URI=e.URI||{})}(this,function(e){"use strict";function r(){for(var e=arguments.length,r=Array(e),n=0;n<e;n++)r[n]=arguments[n];if(r.length>1){r[0]=r[0].slice(0,-1);for(var t=r.length-1,o=1;o<t;++o)r[o]=r[o].slice(1,-1);return r[t]=r[t].slice(1),r.join("")}return r[0]}function n(e){return"(?:"+e+")"}function t(e){return e===undefined?"undefined":null===e?"null":Object.prototype.toString.call(e).split(" ").pop().split("]").shift().toLowerCase()}function o(e){return e.toUpperCase()}function a(e){return e!==undefined&&null!==e?e instanceof Array?e:"number"!=typeof e.length||e.split||e.setInterval||e.call?[e]:Array.prototype.slice.call(e):[]}function i(e,r){var n=e;if(r)for(var t in r)n[t]=r[t];return n}function u(e){var t=r("[0-9]","[A-Fa-f]"),o=n(n("%[EFef]"+t+"%"+t+t+"%"+t+t)+"|"+n("%[89A-Fa-f]"+t+"%"+t+t)+"|"+n("%"+t+t)),a="[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]",i=r("[\\:\\/\\?\\#\\[\\]\\@]",a),u=e?"[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]":"[]",s=e?"[\\uE000-\\uF8FF]":"[]",f=r("[A-Za-z]","[0-9]","[\\-\\.\\_\\~]",u),c=n(n("25[0-5]")+"|"+n("2[0-4][0-9]")+"|"+n("1[0-9][0-9]")+"|"+n("0?[1-9][0-9]")+"|0?0?[0-9]"),p=n(c+"\\."+c+"\\."+c+"\\."+c),h=n(t+"{1,4}"),d=n(n(h+"\\:"+h)+"|"+p),l=n(n(h+"\\:")+"{6}"+d),m=n("\\:\\:"+n(h+"\\:")+"{5}"+d),g=n(n(h)+"?\\:\\:"+n(h+"\\:")+"{4}"+d),v=n(n(n(h+"\\:")+"{0,1}"+h)+"?\\:\\:"+n(h+"\\:")+"{3}"+d),E=n(n(n(h+"\\:")+"{0,2}"+h)+"?\\:\\:"+n(h+"\\:")+"{2}"+d),C=n(n(n(h+"\\:")+"{0,3}"+h)+"?\\:\\:"+h+"\\:"+d),y=n(n(n(h+"\\:")+"{0,4}"+h)+"?\\:\\:"+d),S=n(n(n(h+"\\:")+"{0,5}"+h)+"?\\:\\:"+h),A=n(n(n(h+"\\:")+"{0,6}"+h)+"?\\:\\:"),D=n([l,m,g,v,E,C,y,S,A].join("|")),w=n(n(f+"|"+o)+"+");return{NOT_SCHEME:new RegExp(r("[^]","[A-Za-z]","[0-9]","[\\+\\-\\.]"),"g"),NOT_USERINFO:new RegExp(r("[^\\%\\:]",f,a),"g"),NOT_HOST:new RegExp(r("[^\\%\\[\\]\\:]",f,a),"g"),NOT_PATH:new RegExp(r("[^\\%\\/\\:\\@]",f,a),"g"),NOT_PATH_NOSCHEME:new RegExp(r("[^\\%\\/\\@]",f,a),"g"),NOT_QUERY:new RegExp(r("[^\\%]",f,a,"[\\:\\@\\/\\?]",s),"g"),NOT_FRAGMENT:new RegExp(r("[^\\%]",f,a,"[\\:\\@\\/\\?]"),"g"),ESCAPE:new RegExp(r("[^]",f,a),"g"),UNRESERVED:new RegExp(f,"g"),OTHER_CHARS:new RegExp(r("[^\\%]",f,i),"g"),PCT_ENCODED:new RegExp(o,"g"),IPV4ADDRESS:new RegExp("^("+p+")$"),IPV6ADDRESS:new RegExp("^\\[?("+D+")"+n(n("\\%25|\\%(?!"+t+"{2})")+"("+w+")")+"?\\]?$")}}function s(e){throw new RangeError(H[e])}function f(e,r){for(var n=[],t=e.length;t--;)n[t]=r(e[t]);return n}function c(e,r){var n=e.split("@"),t="";return n.length>1&&(t=n[0]+"@",e=n[1]),e=e.replace(j,"."),t+f(e.split("."),r).join(".")}function p(e){for(var r=[],n=0,t=e.length;n<t;){var o=e.charCodeAt(n++);if(o>=55296&&o<=56319&&n<t){var a=e.charCodeAt(n++);56320==(64512&a)?r.push(((1023&o)<<10)+(1023&a)+65536):(r.push(o),n--)}else r.push(o)}return r}function h(e){var r=e.charCodeAt(0);return r<16?"%0"+r.toString(16).toUpperCase():r<128?"%"+r.toString(16).toUpperCase():r<2048?"%"+(r>>6|192).toString(16).toUpperCase()+"%"+(63&r|128).toString(16).toUpperCase():"%"+(r>>12|224).toString(16).toUpperCase()+"%"+(r>>6&63|128).toString(16).toUpperCase()+"%"+(63&r|128).toString(16).toUpperCase()}function d(e){for(var r="",n=0,t=e.length;n<t;){var o=parseInt(e.substr(n+1,2),16);if(o<128)r+=String.fromCharCode(o),n+=3;else if(o>=194&&o<224){if(t-n>=6){var a=parseInt(e.substr(n+4,2),16);r+=String.fromCharCode((31&o)<<6|63&a)}else r+=e.substr(n,6);n+=6}else if(o>=224){if(t-n>=9){var i=parseInt(e.substr(n+4,2),16),u=parseInt(e.substr(n+7,2),16);r+=String.fromCharCode((15&o)<<12|(63&i)<<6|63&u)}else r+=e.substr(n,9);n+=9}else r+=e.substr(n,3),n+=3}return r}function l(e,r){function n(e){var n=d(e);return n.match(r.UNRESERVED)?n:e}return e.scheme&&(e.scheme=String(e.scheme).replace(r.PCT_ENCODED,n).toLowerCase().replace(r.NOT_SCHEME,"")),e.userinfo!==undefined&&(e.userinfo=String(e.userinfo).replace(r.PCT_ENCODED,n).replace(r.NOT_USERINFO,h).replace(r.PCT_ENCODED,o)),e.host!==undefined&&(e.host=String(e.host).replace(r.PCT_ENCODED,n).toLowerCase().replace(r.NOT_HOST,h).replace(r.PCT_ENCODED,o)),e.path!==undefined&&(e.path=String(e.path).replace(r.PCT_ENCODED,n).replace(e.scheme?r.NOT_PATH:r.NOT_PATH_NOSCHEME,h).replace(r.PCT_ENCODED,o)),e.query!==undefined&&(e.query=String(e.query).replace(r.PCT_ENCODED,n).replace(r.NOT_QUERY,h).replace(r.PCT_ENCODED,o)),e.fragment!==undefined&&(e.fragment=String(e.fragment).replace(r.PCT_ENCODED,n).replace(r.NOT_FRAGMENT,h).replace(r.PCT_ENCODED,o)),e}function m(e){return e.replace(/^0*(.*)/,"$1")||"0"}function g(e,r){var n=e.match(r.IPV4ADDRESS)||[],t=T(n,2),o=t[1];return o?o.split(".").map(m).join("."):e}function v(e,r){var n=e.match(r.IPV6ADDRESS)||[],t=T(n,3),o=t[1],a=t[2];if(o){for(var i=o.toLowerCase().split("::").reverse(),u=T(i,2),s=u[0],f=u[1],c=f?f.split(":").map(m):[],p=s.split(":").map(m),h=r.IPV4ADDRESS.test(p[p.length-1]),d=h?7:8,l=p.length-d,v=Array(d),E=0;E<d;++E)v[E]=c[E]||p[l+E]||"";h&&(v[d-1]=g(v[d-1],r));var C=v.reduce(function(e,r,n){if(!r||"0"===r){var t=e[e.length-1];t&&t.index+t.length===n?t.length++:e.push({index:n,length:1})}return e},[]),y=C.sort(function(e,r){return r.length-e.length})[0],S=void 0;if(y&&y.length>1){var A=v.slice(0,y.index),D=v.slice(y.index+y.length);S=A.join(":")+"::"+D.join(":")}else S=v.join(":");return a&&(S+="%"+a),S}return e}function E(e){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},n={},t=!1!==r.iri?R:F;"suffix"===r.reference&&(e=(r.scheme?r.scheme+":":"")+"//"+e);var o=e.match(K);if(o){W?(n.scheme=o[1],n.userinfo=o[3],n.host=o[4],n.port=parseInt(o[5],10),n.path=o[6]||"",n.query=o[7],n.fragment=o[8],isNaN(n.port)&&(n.port=o[5])):(n.scheme=o[1]||undefined,n.userinfo=-1!==e.indexOf("@")?o[3]:undefined,n.host=-1!==e.indexOf("//")?o[4]:undefined,n.port=parseInt(o[5],10),n.path=o[6]||"",n.query=-1!==e.indexOf("?")?o[7]:undefined,n.fragment=-1!==e.indexOf("#")?o[8]:undefined,isNaN(n.port)&&(n.port=e.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?o[4]:undefined)),n.host&&(n.host=v(g(n.host,t),t)),n.scheme!==undefined||n.userinfo!==undefined||n.host!==undefined||n.port!==undefined||n.path||n.query!==undefined?n.scheme===undefined?n.reference="relative":n.fragment===undefined?n.reference="absolute":n.reference="uri":n.reference="same-document",r.reference&&"suffix"!==r.reference&&r.reference!==n.reference&&(n.error=n.error||"URI is not a "+r.reference+" reference.");var a=J[(r.scheme||n.scheme||"").toLowerCase()];if(r.unicodeSupport||a&&a.unicodeSupport)l(n,t);else{if(n.host&&(r.domainHost||a&&a.domainHost))try{n.host=B.toASCII(n.host.replace(t.PCT_ENCODED,d).toLowerCase())}catch(i){n.error=n.error||"Host's domain name can not be converted to ASCII via punycode: "+i}l(n,F)}a&&a.parse&&a.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return n}function C(e,r){var n=!1!==r.iri?R:F,t=[];return e.userinfo!==undefined&&(t.push(e.userinfo),t.push("@")),e.host!==undefined&&t.push(v(g(String(e.host),n),n).replace(n.IPV6ADDRESS,function(e,r,n){return"["+r+(n?"%25"+n:"")+"]"})),"number"!=typeof e.port&&"string"!=typeof e.port||(t.push(":"),t.push(String(e.port))),t.length?t.join(""):undefined}function y(e){for(var r=[];e.length;)if(e.match(X))e=e.replace(X,"");else if(e.match(ee))e=e.replace(ee,"/");else if(e.match(re))e=e.replace(re,"/"),r.pop();else if("."===e||".."===e)e="";else{var n=e.match(ne);if(!n)throw new Error("Unexpected dot segment condition");var t=n[0];e=e.slice(t.length),r.push(t)}return r.join("")}function S(e){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},n=r.iri?R:F,t=[],o=J[(r.scheme||e.scheme||"").toLowerCase()];if(o&&o.serialize&&o.serialize(e,r),e.host)if(n.IPV6ADDRESS.test(e.host));else if(r.domainHost||o&&o.domainHost)try{e.host=r.iri?B.toUnicode(e.host):B.toASCII(e.host.replace(n.PCT_ENCODED,d).toLowerCase())}catch(u){e.error=e.error||"Host's domain name can not be converted to "+(r.iri?"Unicode":"ASCII")+" via punycode: "+u}l(e,n),"suffix"!==r.reference&&e.scheme&&(t.push(e.scheme),t.push(":"));var a=C(e,r);if(a!==undefined&&("suffix"!==r.reference&&t.push("//"),t.push(a),e.path&&"/"!==e.path.charAt(0)&&t.push("/")),e.path!==undefined){var i=e.path;r.absolutePath||o&&o.absolutePath||(i=y(i)),a===undefined&&(i=i.replace(/^\/\//,"/%2F")),t.push(i)}return e.query!==undefined&&(t.push("?"),t.push(e.query)),e.fragment!==undefined&&(t.push("#"),t.push(e.fragment)),t.join("")}function A(e,r){var n=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{},t=arguments[3],o={};return t||(e=E(S(e,n),n),r=E(S(r,n),n)),n=n||{},!n.tolerant&&r.scheme?(o.scheme=r.scheme,o.userinfo=r.userinfo,o.host=r.host,o.port=r.port,o.path=y(r.path||""),o.query=r.query):(r.userinfo!==undefined||r.host!==undefined||r.port!==undefined?(o.userinfo=r.userinfo,o.host=r.host,o.port=r.port,o.path=y(r.path||""),o.query=r.query):(r.path?("/"===r.path.charAt(0)?o.path=y(r.path):(e.userinfo===undefined&&e.host===undefined&&e.port===undefined||e.path?e.path?o.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+r.path:o.path=r.path:o.path="/"+r.path,o.path=y(o.path)),o.query=r.query):(o.path=e.path,r.query!==undefined?o.query=r.query:o.query=e.query),o.userinfo=e.userinfo,o.host=e.host,o.port=e.port),o.scheme=e.scheme),o.fragment=r.fragment,o}function D(e,r,n){var t=i({scheme:"null"},n);return S(A(E(e,t),E(r,t),t,!0),t)}function w(e,r){return"string"==typeof e?e=S(E(e,r),r):"object"===t(e)&&(e=E(S(e,r),r)),e}function b(e,r,n){return"string"==typeof e?e=S(E(e,n),n):"object"===t(e)&&(e=S(e,n)),"string"==typeof r?r=S(E(r,n),n):"object"===t(r)&&(r=S(r,n)),e===r}function x(e,r){return e&&e.toString().replace(r&&r.iri?R.ESCAPE:F.ESCAPE,h)}function O(e,r){return e&&e.toString().replace(r&&r.iri?R.PCT_ENCODED:F.PCT_ENCODED,d)}function N(e){return"boolean"==typeof e.secure?e.secure:"wss"===String(e.scheme).toLowerCase()}function I(e){var r=d(e);return r.match(he)?r:e}var F=u(!1),R=u(!0),T=function(){function e(e,r){var n=[],t=!0,o=!1,a=undefined;try{for(var i,u=e[Symbol.iterator]();!(t=(i=u.next()).done)&&(n.push(i.value),!r||n.length!==r);t=!0);}catch(s){o=!0,a=s}finally{try{!t&&u["return"]&&u["return"]()}finally{if(o)throw a}}return n}return function(r,n){if(Array.isArray(r))return r;if(Symbol.iterator in Object(r))return e(r,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_=function(e){if(Array.isArray(e)){for(var r=0,n=Array(e.length);r<e.length;r++)n[r]=e[r];return n}return Array.from(e)},P=2147483647,q=/^xn--/,U=/[^\0-\x7E]/,j=/[\x2E\u3002\uFF0E\uFF61]/g,H={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},z=Math.floor,L=String.fromCharCode,$=function(e){return String.fromCodePoint.apply(String,_(e))},M=function(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:36},V=function(e,r){return e+22+75*(e<26)-((0!=r)<<5)},k=function(e,r,n){var t=0;for(e=n?z(e/700):e>>1,e+=z(e/r);e>455;t+=36)e=z(e/35);return z(t+36*e/(e+38))},Z=function(e){var r=[],n=e.length,t=0,o=128,a=72,i=e.lastIndexOf("-");i<0&&(i=0);for(var u=0;u<i;++u)e.charCodeAt(u)>=128&&s("not-basic"),r.push(e.charCodeAt(u));for(var f=i>0?i+1:0;f<n;){for(var c=t,p=1,h=36;;h+=36){f>=n&&s("invalid-input");var d=M(e.charCodeAt(f++));(d>=36||d>z((P-t)/p))&&s("overflow"),t+=d*p;var l=h<=a?1:h>=a+26?26:h-a;if(d<l)break;var m=36-l;p>z(P/m)&&s("overflow"),p*=m}var g=r.length+1;a=k(t-c,g,0==c),z(t/g)>P-o&&s("overflow"),o+=z(t/g),t%=g,r.splice(t++,0,o)}return String.fromCodePoint.apply(String,r)},G=function(e){var r=[];e=p(e);var n=e.length,t=128,o=0,a=72,i=!0,u=!1,f=undefined;try{for(var c,h=e[Symbol.iterator]();!(i=(c=h.next()).done);i=!0){var d=c.value;d<128&&r.push(L(d))}}catch(U){u=!0,f=U}finally{try{!i&&h["return"]&&h["return"]()}finally{if(u)throw f}}var l=r.length,m=l;for(l&&r.push("-");m<n;){var g=P,v=!0,E=!1,C=undefined;try{for(var y,S=e[Symbol.iterator]();!(v=(y=S.next()).done);v=!0){var A=y.value;A>=t&&A<g&&(g=A)}}catch(U){E=!0,C=U}finally{try{!v&&S["return"]&&S["return"]()}finally{if(E)throw C}}var D=m+1;g-t>z((P-o)/D)&&s("overflow"),o+=(g-t)*D,t=g;var w=!0,b=!1,x=undefined;try{for(var O,N=e[Symbol.iterator]();!(w=(O=N.next()).done);w=!0){var I=O.value;if(I<t&&++o>P&&s("overflow"),I==t){for(var F=o,R=36;;R+=36){var T=R<=a?1:R>=a+26?26:R-a;if(F<T)break;var _=F-T,q=36-T;r.push(L(V(T+_%q,0))),F=z(_/q)}r.push(L(V(F,0))),a=k(o,D,m==l),o=0,++m}}}catch(U){b=!0,x=U}finally{try{!w&&N["return"]&&N["return"]()}finally{if(b)throw x}}++o,++t}return r.join("")},Q=function(e){return c(e,function(e){return q.test(e)?Z(e.slice(4).toLowerCase()):e})},Y=function(e){return c(e,function(e){return U.test(e)?"xn--"+G(e):e})},B={version:"2.1.0",ucs2:{decode:p,encode:$},decode:Z,encode:G,toASCII:Y,toUnicode:Q},J={},K=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,W="".match(/(){0}/)[1]===undefined,X=/^\.\.?\//,ee=/^\/\.(\/|$)/,re=/^\/\.\.(\/|$)/,ne=/^\/?(?:.|\n)*?(?=\/|$)/,te={scheme:"http",domainHost:!0,parse:function(e,r){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e},serialize:function(e,r){var n="https"===String(e.scheme).toLowerCase();return e.port!==(n?443:80)&&""!==e.port||(e.port=undefined),e.path||(e.path="/"),e}},oe={scheme:"https",domainHost:te.domainHost,parse:te.parse,serialize:te.serialize},ae={scheme:"ws",domainHost:!0,parse:function(e,r){var n=e;return n.secure=N(n),n.resourceName=(n.path||"/")+(n.query?"?"+n.query:""),n.path=undefined,n.query=undefined,n},serialize:function(e,r){if(e.port!==(N(e)?443:80)&&""!==e.port||(e.port=undefined),"boolean"==typeof e.secure&&(e.scheme=e.secure?"wss":"ws",e.secure=undefined),e.resourceName){var n=e.resourceName.split("?"),t=T(n,2),o=t[0],a=t[1];e.path=o&&"/"!==o?o:undefined,e.query=a,e.resourceName=undefined}return e.fragment=undefined,e}},ie={scheme:"wss",domainHost:ae.domainHost,parse:ae.parse,serialize:ae.serialize},ue={},se="[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]",fe="[0-9A-Fa-f]",ce=n(n("%[EFef][0-9A-Fa-f]%"+fe+fe+"%"+fe+fe)+"|"+n("%[89A-Fa-f][0-9A-Fa-f]%"+fe+fe)+"|"+n("%"+fe+fe)),pe=r("[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",'[\\"\\\\]'),he=new RegExp(se,"g"),de=new RegExp(ce,"g"),le=new RegExp(r("[^]","[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]","[\\.]",'[\\"]',pe),"g"),me=new RegExp(r("[^]",se,"[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]"),"g"),ge=me,ve={scheme:"mailto",parse:function(e,r){var n=e,t=n.to=n.path?n.path.split(","):[];if(n.path=undefined,n.query){for(var o=!1,a={},i=n.query.split("&"),u=0,s=i.length;u<s;++u){var f=i[u].split("=");switch(f[0]){case"to":for(var c=f[1].split(","),p=0,h=c.length;p<h;++p)t.push(c[p]);break;case"subject":n.subject=O(f[1],r);break;case"body":n.body=O(f[1],r);break;default:o=!0,a[O(f[0],r)]=O(f[1],r)}}o&&(n.headers=a)}n.query=undefined;for(var d=0,l=t.length;d<l;++d){var m=t[d].split("@");if(m[0]=O(m[0]),r.unicodeSupport)m[1]=O(m[1],r).toLowerCase();else try{m[1]=B.toASCII(O(m[1],r).toLowerCase())}catch(g){n.error=n.error||"Email address's domain name can not be converted to ASCII via punycode: "+g}t[d]=m.join("@")}return n},serialize:function(e,r){var n=e,t=a(e.to);if(t){for(var i=0,u=t.length;i<u;++i){var s=String(t[i]),f=s.lastIndexOf("@"),c=s.slice(0,f).replace(de,I).replace(de,o).replace(le,h),p=s.slice(f+1);try{p=r.iri?B.toUnicode(p):B.toASCII(O(p,r).toLowerCase())}catch(g){n.error=n.error||"Email address's domain name can not be converted to "+(r.iri?"Unicode":"ASCII")+" via punycode: "+g}t[i]=c+"@"+p}n.path=t.join(",")}var d=e.headers=e.headers||{};e.subject&&(d.subject=e.subject),e.body&&(d.body=e.body);var l=[];for(var m in d)d[m]!==ue[m]&&l.push(m.replace(de,I).replace(de,o).replace(me,h)+"="+d[m].replace(de,I).replace(de,o).replace(ge,h));return l.length&&(n.query=l.join("&")),n}},Ee=/^([^\:]+)\:(.*)/,Ce={scheme:"urn",parse:function(e,r){var n=e.path&&e.path.match(Ee),t=e;if(n){var o=r.scheme||t.scheme||"urn",a=n[1].toLowerCase(),i=n[2],u=o+":"+(r.nid||a),s=J[u];t.nid=a,t.nss=i,t.path=undefined,s&&(t=s.parse(t,r))}else t.error=t.error||"URN can not be parsed.";return t},serialize:function(e,r){var n=r.scheme||e.scheme||"urn",t=e.nid,o=n+":"+(r.nid||t),a=J[o];a&&(e=a.serialize(e,r));var i=e,u=e.nss;return i.path=(t||r.nid)+":"+u,i}},ye=/^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/,Se={scheme:"urn:uuid",parse:function(e,r){var n=e;return n.uuid=n.nss,n.nss=undefined,r.tolerant||n.uuid&&n.uuid.match(ye)||(n.error=n.error||"UUID is not valid."),n},serialize:function(e,r){var n=e;return n.nss=(e.uuid||"").toLowerCase(),n}};J[te.scheme]=te,J[oe.scheme]=oe,J[ae.scheme]=ae,J[ie.scheme]=ie,J[ve.scheme]=ve,J[Ce.scheme]=Ce,J[Se.scheme]=Se,e.SCHEMES=J,e.pctEncChar=h,e.pctDecChars=d,e.parse=E,e.removeDotSegments=y,e.serialize=S,e.resolveComponents=A,e.resolve=D,e.normalize=w,e.equal=b,e.escapeComponent=x,e.unescapeComponent=O,Object.defineProperty(e,"__esModule",{value:!0})});
-//# sourceMappingURL=uri.all.min.js.map \ No newline at end of file
diff --git a/deps/npm/node_modules/uri-js/dist/es5/uri.all.min.js.map b/deps/npm/node_modules/uri-js/dist/es5/uri.all.min.js.map
deleted file mode 100755
index 99427a694be..00000000000
--- a/deps/npm/node_modules/uri-js/dist/es5/uri.all.min.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/util.ts","../../src/regexps-uri.ts","../../node_modules/punycode/punycode.es6.js","../../src/uri.ts","../../src/schemes/ws.ts","../../src/schemes/mailto.ts","../../src/regexps-iri.ts","../../src/schemes/http.ts","../../src/schemes/https.ts","../../src/schemes/wss.ts","../../src/schemes/urn.ts","../../src/schemes/urn-uuid.ts","../../src/index.ts"],"names":["merge","sets","Array","_len","_key","arguments","length","slice","xl","x","join","subexp","str","typeOf","o","undefined","Object","prototype","toString","call","split","pop","shift","toLowerCase","toUpperCase","toArray","obj","setInterval","assign","target","source","key","buildExps","isIRI","HEXDIG$$","PCT_ENCODED$","SUB_DELIMS$$","RESERVED$$","UCSCHAR$$","DEC_OCTET_RELAXED$","H16$","LS32$","IPV4ADDRESS$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","ZONEID$","UNRESERVED$$","RegExp","IPRIVATE$$","IPV6ADDRESS$","error","type","RangeError","errors","map","array","fn","result","mapDomain","string","parts","replace","regexSeparators","ucs2decode","output","counter","value","charCodeAt","extra","push","pctEncChar","chr","c","pctDecChars","newStr","i","il","parseInt","substr","String","fromCharCode","c2","c3","_normalizeComponentEncoding","components","protocol","decodeUnreserved","decStr","match","UNRESERVED","scheme","PCT_ENCODED","NOT_SCHEME","userinfo","NOT_USERINFO","host","NOT_HOST","path","NOT_PATH","NOT_PATH_NOSCHEME","query","NOT_QUERY","fragment","NOT_FRAGMENT","_stripLeadingZeros","_normalizeIPv4","matches","IPV4ADDRESS","address","_matches","_normalizeIPv6","IPV6ADDRESS","_matches2","zone","reverse","last","_address$toLowerCase$2","first","firstFields","lastFields","isLastFieldIPv4Address","test","fieldCount","lastFieldsStart","fields","allZeroFields","reduce","acc","field","index","lastLongest","longestZeroFields","sort","a","b","newHost","newFirst","newLast","parse","uriString","options","iri","IRI_PROTOCOL","URI_PROTOCOL","reference","URI_PARSE","NO_MATCH_IS_UNDEFINED","port","isNaN","indexOf","schemeHandler","SCHEMES","unicodeSupport","domainHost","punycode","toASCII","e","_recomposeAuthority","uriTokens","_","$1","$2","removeDotSegments","input","RDS1","RDS2","RDS3","im","RDS5","Error","s","serialize","toUnicode","authority","charAt","absolutePath","resolveComponents","base","relative","skipNormalization","tolerant","lastIndexOf","resolve","baseURI","relativeURI","schemelessOptions","normalize","uri","equal","uriA","uriB","escapeComponent","ESCAPE","unescapeComponent","isSecure","wsComponents","secure","maxInt","regexPunycode","regexNonASCII","floor","Math","stringFromCharCode","ucs2encode","fromCodePoint","apply","toConsumableArray","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","k","baseMinusTMin","decode","inputLength","n","bias","basic","j","oldi","w","t","baseMinusT","out","splice","encode","_step","Symbol","iterator","_iteratorNormalCompletion","_iterator","next","done","currentValue","basicLength","handledCPCount","m","_step2","_iteratorNormalCompletion2","_iterator2","handledCPCountPlusOne","_step3","_iteratorNormalCompletion3","_iterator3","q","qMinusT","handler","http","resourceName","_wsComponents$resourc2","ws","O","VCHAR$$","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","mailtoComponents","to","unknownHeaders","headers","hfields","hfield","toAddrs","subject","body","addr","toAddr","atIdx","localPart","domain","name","URN_PARSE","urnComponents","nid","nss","urnScheme","uriComponents","UUID","uuidComponents","uuid","https","wss","mailto","urn"],"mappings":"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","file":"dist/es5/uri.all.min.js","sourcesContent":["export function merge(...sets:Array<string>):string {\n\tif (sets.length > 1) {\n\t\tsets[0] = sets[0].slice(0, -1);\n\t\tconst xl = sets.length - 1;\n\t\tfor (let x = 1; x < xl; ++x) {\n\t\t\tsets[x] = sets[x].slice(1, -1);\n\t\t}\n\t\tsets[xl] = sets[xl].slice(1);\n\t\treturn sets.join('');\n\t} else {\n\t\treturn sets[0];\n\t}\n}\n\nexport function subexp(str:string):string {\n\treturn \"(?:\" + str + \")\";\n}\n\nexport function typeOf(o:any):string {\n\treturn o === undefined ? \"undefined\" : (o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase());\n}\n\nexport function toUpperCase(str:string):string {\n\treturn str.toUpperCase();\n}\n\nexport function toArray(obj:any):Array<any> {\n\treturn obj !== undefined && obj !== null ? (obj instanceof Array ? obj : (typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj))) : [];\n}\n\n\nexport function assign(target: object, source: any): any {\n\tconst obj = target as any;\n\tif (source) {\n\t\tfor (const key in source) {\n\t\t\tobj[key] = source[key];\n\t\t}\n\t}\n\treturn obj;\n}","import { URIRegExps } from \"./uri\";\nimport { merge, subexp } from \"./util\";\n\nexport function buildExps(isIRI:boolean):URIRegExps {\n\tconst\n\t\tALPHA$$ = \"[A-Za-z]\",\n\t\tCR$ = \"[\\\\x0D]\",\n\t\tDIGIT$$ = \"[0-9]\",\n\t\tDQUOTE$$ = \"[\\\\x22]\",\n\t\tHEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"), //case-insensitive\n\t\tLF$$ = \"[\\\\x0A]\",\n\t\tSP$$ = \"[\\\\x20]\",\n\t\tPCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)), //expanded\n\t\tGEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\",\n\t\tSUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\",\n\t\tRESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),\n\t\tUCSCHAR$$ = isIRI ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\", //subset, excludes bidi control characters\n\t\tIPRIVATE$$ = isIRI ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\", //subset\n\t\tUNRESERVED$$ = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$),\n\t\tSCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"),\n\t\tUSERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"),\n\t\tDEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$),\n\t\tDEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$), //relaxed parsing rules\n\t\tIPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$),\n\t\tH16$ = subexp(HEXDIG$$ + \"{1,4}\"),\n\t\tLS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$),\n\t\tIPV6ADDRESS1$ = subexp( subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$), // 6( h16 \":\" ) ls32\n\t\tIPV6ADDRESS2$ = subexp( \"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$), // \"::\" 5( h16 \":\" ) ls32\n\t\tIPV6ADDRESS3$ = subexp(subexp( H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$), //[ h16 ] \"::\" 4( h16 \":\" ) ls32\n\t\tIPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$), //[ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n\t\tIPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$), //[ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n\t\tIPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" + H16$ + \"\\\\:\" + LS32$), //[ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n\t\tIPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\" + LS32$), //[ *4( h16 \":\" ) h16 ] \"::\" ls32\n\t\tIPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\" + H16$ ), //[ *5( h16 \":\" ) h16 ] \"::\" h16\n\t\tIPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\" ), //[ *6( h16 \":\" ) h16 ] \"::\"\n\t\tIPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")),\n\t\tZONEID$ = subexp(subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$) + \"+\"), //RFC 6874\n\t\tIPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$), //RFC 6874\n\t\tIPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$), //RFC 6874, with relaxed parsing rules\n\t\tIPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"),\n\t\tIP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"), //RFC 6874\n\t\tREG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"),\n\t\tHOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$),\n\t\tPORT$ = subexp(DIGIT$$ + \"*\"),\n\t\tAUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"),\n\t\tPCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")),\n\t\tSEGMENT$ = subexp(PCHAR$ + \"*\"),\n\t\tSEGMENT_NZ$ = subexp(PCHAR$ + \"+\"),\n\t\tSEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"),\n\t\tPATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"),\n\t\tPATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"), //simplified\n\t\tPATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\",\n\t\tPATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tQUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"),\n\t\tFRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"),\n\t\tHIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tURI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tRELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$),\n\t\tRELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tURI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$),\n\t\tABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"),\n\n\t\tGENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tRELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\",\n\t\tSAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tAUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\"\n\t;\n\n\treturn {\n\t\tNOT_SCHEME : new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n\t\tNOT_USERINFO : new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_HOST : new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH : new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH_NOSCHEME : new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_QUERY : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n\t\tNOT_FRAGMENT : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n\t\tESCAPE : new RegExp(merge(\"[^]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tUNRESERVED : new RegExp(UNRESERVED$$, \"g\"),\n\t\tOTHER_CHARS : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, RESERVED$$), \"g\"),\n\t\tPCT_ENCODED : new RegExp(PCT_ENCODED$, \"g\"),\n\t\tIPV4ADDRESS : new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n\t\tIPV6ADDRESS : new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\") //RFC 6874, with relaxed parsing rules\n\t};\n}\n\nexport default buildExps(false);\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tconst parts = string.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tconst labels = string.split('.');\n\tconst encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tlet oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tlet inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tlet basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue == n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport default punycode;\n","/**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author <a href=\"mailto:gary.court@gmail.com\">Gary Court</a>\n * @see http://github.com/garycourt/uri-js\n */\n\n/**\n * Copyright 2011 Gary Court. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification, are\n * permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this list of\n * conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list\n * of conditions and the following disclaimer in the documentation and/or other materials\n * provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\n * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * The views and conclusions contained in the software and documentation are those of the\n * authors and should not be interpreted as representing official policies, either expressed\n * or implied, of Gary Court.\n */\n\nimport URI_PROTOCOL from \"./regexps-uri\";\nimport IRI_PROTOCOL from \"./regexps-iri\";\nimport punycode from \"punycode\";\nimport { toUpperCase, typeOf, assign } from \"./util\";\n\nexport interface URIComponents {\n\tscheme?:string;\n\tuserinfo?:string;\n\thost?:string;\n\tport?:number|string;\n\tpath?:string;\n\tquery?:string;\n\tfragment?:string;\n\treference?:string;\n\terror?:string;\n}\n\nexport interface URIOptions {\n\tscheme?:string;\n\treference?:string;\n\ttolerant?:boolean;\n\tabsolutePath?:boolean;\n\tiri?:boolean;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n}\n\nexport interface URISchemeHandler<Components extends URIComponents = URIComponents, Options extends URIOptions = URIOptions, ParentComponents extends URIComponents = URIComponents> {\n\tscheme:string;\n\tparse(components:ParentComponents, options:Options):Components;\n\tserialize(components:Components, options:Options):ParentComponents;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n\tabsolutePath?:boolean;\n}\n\nexport interface URIRegExps {\n\tNOT_SCHEME : RegExp,\n\tNOT_USERINFO : RegExp,\n\tNOT_HOST : RegExp,\n\tNOT_PATH : RegExp,\n\tNOT_PATH_NOSCHEME : RegExp,\n\tNOT_QUERY : RegExp,\n\tNOT_FRAGMENT : RegExp,\n\tESCAPE : RegExp,\n\tUNRESERVED : RegExp,\n\tOTHER_CHARS : RegExp,\n\tPCT_ENCODED : RegExp,\n\tIPV4ADDRESS : RegExp,\n\tIPV6ADDRESS : RegExp,\n}\n\nexport const SCHEMES:{[scheme:string]:URISchemeHandler} = {};\n\nexport function pctEncChar(chr:string):string {\n\tconst c = chr.charCodeAt(0);\n\tlet e:string;\n\n\tif (c < 16) e = \"%0\" + c.toString(16).toUpperCase();\n\telse if (c < 128) e = \"%\" + c.toString(16).toUpperCase();\n\telse if (c < 2048) e = \"%\" + ((c >> 6) | 192).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\telse e = \"%\" + ((c >> 12) | 224).toString(16).toUpperCase() + \"%\" + (((c >> 6) & 63) | 128).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\n\treturn e;\n}\n\nexport function pctDecChars(str:string):string {\n\tlet newStr = \"\";\n\tlet i = 0;\n\tconst il = str.length;\n\n\twhile (i < il) {\n\t\tconst c = parseInt(str.substr(i + 1, 2), 16);\n\n\t\tif (c < 128) {\n\t\t\tnewStr += String.fromCharCode(c);\n\t\t\ti += 3;\n\t\t}\n\t\telse if (c >= 194 && c < 224) {\n\t\t\tif ((il - i) >= 6) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 6);\n\t\t\t}\n\t\t\ti += 6;\n\t\t}\n\t\telse if (c >= 224) {\n\t\t\tif ((il - i) >= 9) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tconst c3 = parseInt(str.substr(i + 7, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 9);\n\t\t\t}\n\t\t\ti += 9;\n\t\t}\n\t\telse {\n\t\t\tnewStr += str.substr(i, 3);\n\t\t\ti += 3;\n\t\t}\n\t}\n\n\treturn newStr;\n}\n\nfunction _normalizeComponentEncoding(components:URIComponents, protocol:URIRegExps) {\n\tfunction decodeUnreserved(str:string):string {\n\t\tconst decStr = pctDecChars(str);\n\t\treturn (!decStr.match(protocol.UNRESERVED) ? str : decStr);\n\t}\n\n\tif (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n\tif (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace((components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME), pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\n\treturn components;\n};\n\nfunction _stripLeadingZeros(str:string):string {\n\treturn str.replace(/^0*(.*)/, \"$1\") || \"0\";\n}\n\nfunction _normalizeIPv4(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV4ADDRESS) || [];\n\tconst [, address] = matches;\n\t\n\tif (address) {\n\t\treturn address.split(\".\").map(_stripLeadingZeros).join(\".\");\n\t} else {\n\t\treturn host;\n\t}\n}\n\nfunction _normalizeIPv6(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV6ADDRESS) || [];\n\tconst [, address, zone] = matches;\n\n\tif (address) {\n\t\tconst [last, first] = address.toLowerCase().split('::').reverse();\n\t\tconst firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n\t\tconst lastFields = last.split(\":\").map(_stripLeadingZeros);\n\t\tconst isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n\t\tconst fieldCount = isLastFieldIPv4Address ? 7 : 8;\n\t\tconst lastFieldsStart = lastFields.length - fieldCount;\n\t\tconst fields = Array<string>(fieldCount);\n\n\t\tfor (let x = 0; x < fieldCount; ++x) {\n\t\t\tfields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';\n\t\t}\n\n\t\tif (isLastFieldIPv4Address) {\n\t\t\tfields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n\t\t}\n\n\t\tconst allZeroFields = fields.reduce<Array<{index:number,length:number}>>((acc, field, index) => {\n\t\t\tif (!field || field === \"0\") {\n\t\t\t\tconst lastLongest = acc[acc.length - 1];\n\t\t\t\tif (lastLongest && lastLongest.index + lastLongest.length === index) {\n\t\t\t\t\tlastLongest.length++;\n\t\t\t\t} else {\n\t\t\t\t\tacc.push({ index, length : 1 });\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, []);\n\n\t\tconst longestZeroFields = allZeroFields.sort((a, b) => b.length - a.length)[0];\n\n\t\tlet newHost:string;\n\t\tif (longestZeroFields && longestZeroFields.length > 1) {\n\t\t\tconst newFirst = fields.slice(0, longestZeroFields.index) ;\n\t\t\tconst newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n\t\t\tnewHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n\t\t} else {\n\t\t\tnewHost = fields.join(\":\");\n\t\t}\n\n\t\tif (zone) {\n\t\t\tnewHost += \"%\" + zone;\n\t\t}\n\n\t\treturn newHost;\n\t} else {\n\t\treturn host;\n\t}\n}\n\nconst URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\nconst NO_MATCH_IS_UNDEFINED = (<RegExpMatchArray>(\"\").match(/(){0}/))[1] === undefined;\n\nexport function parse(uriString:string, options:URIOptions = {}):URIComponents {\n\tconst components:URIComponents = {};\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\n\tif (options.reference === \"suffix\") uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n\n\tconst matches = uriString.match(URI_PARSE);\n\n\tif (matches) {\n\t\tif (NO_MATCH_IS_UNDEFINED) {\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1];\n\t\t\tcomponents.userinfo = matches[3];\n\t\t\tcomponents.host = matches[4];\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = matches[7];\n\t\t\tcomponents.fragment = matches[8];\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = matches[5];\n\t\t\t}\n\t\t} else { //IE FIX for improper RegExp matching\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1] || undefined;\n\t\t\tcomponents.userinfo = (uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined);\n\t\t\tcomponents.host = (uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined);\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = (uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined);\n\t\t\tcomponents.fragment = (uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined);\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = (uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined);\n\t\t\t}\n\t\t}\n\n\t\tif (components.host) {\n\t\t\t//normalize IP hosts\n\t\t\tcomponents.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n\t\t}\n\n\t\t//determine reference type\n\t\tif (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n\t\t\tcomponents.reference = \"same-document\";\n\t\t} else if (components.scheme === undefined) {\n\t\t\tcomponents.reference = \"relative\";\n\t\t} else if (components.fragment === undefined) {\n\t\t\tcomponents.reference = \"absolute\";\n\t\t} else {\n\t\t\tcomponents.reference = \"uri\";\n\t\t}\n\n\t\t//check for reference errors\n\t\tif (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n\t\t\tcomponents.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n\t\t}\n\n\t\t//find scheme handler\n\t\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t\t//check if scheme can't handle IRIs\n\t\tif (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n\t\t\t//if host component is a domain name\n\t\t\tif (components.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost))) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\tcomponents.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t}\n\t\t\t//convert IRI -> URI\n\t\t\t_normalizeComponentEncoding(components, URI_PROTOCOL);\n\t\t} else {\n\t\t\t//normalize encodings\n\t\t\t_normalizeComponentEncoding(components, protocol);\n\t\t}\n\n\t\t//perform scheme specific parsing\n\t\tif (schemeHandler && schemeHandler.parse) {\n\t\t\tschemeHandler.parse(components, options);\n\t\t}\n\t} else {\n\t\tcomponents.error = components.error || \"URI can not be parsed.\";\n\t}\n\n\treturn components;\n};\n\nfunction _recomposeAuthority(components:URIComponents, options:URIOptions):string|undefined {\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array<string> = [];\n\n\tif (components.userinfo !== undefined) {\n\t\turiTokens.push(components.userinfo);\n\t\turiTokens.push(\"@\");\n\t}\n\n\tif (components.host !== undefined) {\n\t\t//normalize IP hosts, add brackets and escape zone separator for IPv6\n\t\turiTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, (_, $1, $2) => \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\"));\n\t}\n\n\tif (typeof components.port === \"number\" || typeof components.port === \"string\") {\n\t\turiTokens.push(\":\");\n\t\turiTokens.push(String(components.port));\n\t}\n\n\treturn uriTokens.length ? uriTokens.join(\"\") : undefined;\n};\n\nconst RDS1 = /^\\.\\.?\\//;\nconst RDS2 = /^\\/\\.(\\/|$)/;\nconst RDS3 = /^\\/\\.\\.(\\/|$)/;\nconst RDS4 = /^\\.\\.?$/;\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\n\nexport function removeDotSegments(input:string):string {\n\tconst output:Array<string> = [];\n\n\twhile (input.length) {\n\t\tif (input.match(RDS1)) {\n\t\t\tinput = input.replace(RDS1, \"\");\n\t\t} else if (input.match(RDS2)) {\n\t\t\tinput = input.replace(RDS2, \"/\");\n\t\t} else if (input.match(RDS3)) {\n\t\t\tinput = input.replace(RDS3, \"/\");\n\t\t\toutput.pop();\n\t\t} else if (input === \".\" || input === \"..\") {\n\t\t\tinput = \"\";\n\t\t} else {\n\t\t\tconst im = input.match(RDS5);\n\t\t\tif (im) {\n\t\t\t\tconst s = im[0];\n\t\t\t\tinput = input.slice(s.length);\n\t\t\t\toutput.push(s);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unexpected dot segment condition\");\n\t\t\t}\n\t\t}\n\t}\n\n\treturn output.join(\"\");\n};\n\nexport function serialize(components:URIComponents, options:URIOptions = {}):string {\n\tconst protocol = (options.iri ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array<string> = [];\n\n\t//find scheme handler\n\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t//perform scheme specific serialization\n\tif (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);\n\n\tif (components.host) {\n\t\t//if host component is an IPv6 address\n\t\tif (protocol.IPV6ADDRESS.test(components.host)) {\n\t\t\t//TODO: normalize IPv6 address as per RFC 5952\n\t\t}\n\n\t\t//if host component is a domain name\n\t\telse if (options.domainHost || (schemeHandler && schemeHandler.domainHost)) {\n\t\t\t//convert IDN via punycode\n\t\t\ttry {\n\t\t\t\tcomponents.host = (!options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host));\n\t\t\t} catch (e) {\n\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t}\n\t\t}\n\t}\n\n\t//normalize encoding\n\t_normalizeComponentEncoding(components, protocol);\n\n\tif (options.reference !== \"suffix\" && components.scheme) {\n\t\turiTokens.push(components.scheme);\n\t\turiTokens.push(\":\");\n\t}\n\n\tconst authority = _recomposeAuthority(components, options);\n\tif (authority !== undefined) {\n\t\tif (options.reference !== \"suffix\") {\n\t\t\turiTokens.push(\"//\");\n\t\t}\n\n\t\turiTokens.push(authority);\n\n\t\tif (components.path && components.path.charAt(0) !== \"/\") {\n\t\t\turiTokens.push(\"/\");\n\t\t}\n\t}\n\n\tif (components.path !== undefined) {\n\t\tlet s = components.path;\n\n\t\tif (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n\t\t\ts = removeDotSegments(s);\n\t\t}\n\n\t\tif (authority === undefined) {\n\t\t\ts = s.replace(/^\\/\\//, \"/%2F\"); //don't allow the path to start with \"//\"\n\t\t}\n\n\t\turiTokens.push(s);\n\t}\n\n\tif (components.query !== undefined) {\n\t\turiTokens.push(\"?\");\n\t\turiTokens.push(components.query);\n\t}\n\n\tif (components.fragment !== undefined) {\n\t\turiTokens.push(\"#\");\n\t\turiTokens.push(components.fragment);\n\t}\n\n\treturn uriTokens.join(\"\"); //merge tokens into a string\n};\n\nexport function resolveComponents(base:URIComponents, relative:URIComponents, options:URIOptions = {}, skipNormalization?:boolean):URIComponents {\n\tconst target:URIComponents = {};\n\n\tif (!skipNormalization) {\n\t\tbase = parse(serialize(base, options), options); //normalize base components\n\t\trelative = parse(serialize(relative, options), options); //normalize relative components\n\t}\n\toptions = options || {};\n\n\tif (!options.tolerant && relative.scheme) {\n\t\ttarget.scheme = relative.scheme;\n\t\t//target.authority = relative.authority;\n\t\ttarget.userinfo = relative.userinfo;\n\t\ttarget.host = relative.host;\n\t\ttarget.port = relative.port;\n\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\ttarget.query = relative.query;\n\t} else {\n\t\tif (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n\t\t\t//target.authority = relative.authority;\n\t\t\ttarget.userinfo = relative.userinfo;\n\t\t\ttarget.host = relative.host;\n\t\t\ttarget.port = relative.port;\n\t\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\t\ttarget.query = relative.query;\n\t\t} else {\n\t\t\tif (!relative.path) {\n\t\t\t\ttarget.path = base.path;\n\t\t\t\tif (relative.query !== undefined) {\n\t\t\t\t\ttarget.query = relative.query;\n\t\t\t\t} else {\n\t\t\t\t\ttarget.query = base.query;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (relative.path.charAt(0) === \"/\") {\n\t\t\t\t\ttarget.path = removeDotSegments(relative.path);\n\t\t\t\t} else {\n\t\t\t\t\tif ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n\t\t\t\t\t\ttarget.path = \"/\" + relative.path;\n\t\t\t\t\t} else if (!base.path) {\n\t\t\t\t\t\ttarget.path = relative.path;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget.path = base.path.slice(0, base.path.lastIndexOf(\"/\") + 1) + relative.path;\n\t\t\t\t\t}\n\t\t\t\t\ttarget.path = removeDotSegments(target.path);\n\t\t\t\t}\n\t\t\t\ttarget.query = relative.query;\n\t\t\t}\n\t\t\t//target.authority = base.authority;\n\t\t\ttarget.userinfo = base.userinfo;\n\t\t\ttarget.host = base.host;\n\t\t\ttarget.port = base.port;\n\t\t}\n\t\ttarget.scheme = base.scheme;\n\t}\n\n\ttarget.fragment = relative.fragment;\n\n\treturn target;\n};\n\nexport function resolve(baseURI:string, relativeURI:string, options?:URIOptions):string {\n\tconst schemelessOptions = assign({ scheme : 'null' }, options);\n\treturn serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n};\n\nexport function normalize(uri:string, options?:URIOptions):string;\nexport function normalize(uri:URIComponents, options?:URIOptions):URIComponents;\nexport function normalize(uri:any, options?:URIOptions):any {\n\tif (typeof uri === \"string\") {\n\t\turi = serialize(parse(uri, options), options);\n\t} else if (typeOf(uri) === \"object\") {\n\t\turi = parse(serialize(<URIComponents>uri, options), options);\n\t}\n\n\treturn uri;\n};\n\nexport function equal(uriA:string, uriB:string, options?: URIOptions):boolean;\nexport function equal(uriA:URIComponents, uriB:URIComponents, options?:URIOptions):boolean;\nexport function equal(uriA:any, uriB:any, options?:URIOptions):boolean {\n\tif (typeof uriA === \"string\") {\n\t\turiA = serialize(parse(uriA, options), options);\n\t} else if (typeOf(uriA) === \"object\") {\n\t\turiA = serialize(<URIComponents>uriA, options);\n\t}\n\n\tif (typeof uriB === \"string\") {\n\t\turiB = serialize(parse(uriB, options), options);\n\t} else if (typeOf(uriB) === \"object\") {\n\t\turiB = serialize(<URIComponents>uriB, options);\n\t}\n\n\treturn uriA === uriB;\n};\n\nexport function escapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE), pctEncChar);\n};\n\nexport function unescapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED), pctDecChars);\n};\n","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nexport interface WSComponents extends URIComponents {\n\tresourceName?: string;\n\tsecure?: boolean;\n}\n\nfunction isSecure(wsComponents:WSComponents):boolean {\n\treturn typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === \"wss\";\n}\n\n//RFC 6455\nconst handler:URISchemeHandler = {\n\tscheme : \"ws\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):WSComponents {\n\t\tconst wsComponents = components as WSComponents;\n\n\t\t//indicate if the secure flag is set\n\t\twsComponents.secure = isSecure(wsComponents);\n\n\t\t//construct resouce name\n\t\twsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');\n\t\twsComponents.path = undefined;\n\t\twsComponents.query = undefined;\n\n\t\treturn wsComponents;\n\t},\n\n\tserialize : function (wsComponents:WSComponents, options:URIOptions):URIComponents {\n\t\t//normalize the default port\n\t\tif (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === \"\") {\n\t\t\twsComponents.port = undefined;\n\t\t}\n\n\t\t//ensure scheme matches secure flag\n\t\tif (typeof wsComponents.secure === 'boolean') {\n\t\t\twsComponents.scheme = (wsComponents.secure ? 'wss' : 'ws');\n\t\t\twsComponents.secure = undefined;\n\t\t}\n\n\t\t//reconstruct path from resource name\n\t\tif (wsComponents.resourceName) {\n\t\t\tconst [path, query] = wsComponents.resourceName.split('?');\n\t\t\twsComponents.path = (path && path !== '/' ? path : undefined);\n\t\t\twsComponents.query = query;\n\t\t\twsComponents.resourceName = undefined;\n\t\t}\n\n\t\t//forbid fragment component\n\t\twsComponents.fragment = undefined;\n\n\t\treturn wsComponents;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, pctDecChars, unescapeComponent } from \"../uri\";\nimport punycode from \"punycode\";\nimport { merge, subexp, toUpperCase, toArray } from \"../util\";\n\nexport interface MailtoHeaders {\n\t[hfname:string]:string\n}\n\nexport interface MailtoComponents extends URIComponents {\n\tto:Array<string>,\n\theaders?:MailtoHeaders,\n\tsubject?:string,\n\tbody?:string\n}\n\nconst O:MailtoHeaders = {};\nconst isIRI = true;\n\n//RFC 3986\nconst UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\nconst HEXDIG$$ = \"[0-9A-Fa-f]\"; //case-insensitive\nconst PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)); //expanded\n\n//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =\n//const ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\/\\\\=\\\\?\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QTEXT$$ = \"[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F]\"; //(%d1-8 / %d11-12 / %d14-31 / %d127)\n//const QTEXT$$ = merge(\"[\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]\", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext\n//const VCHAR$$ = \"[\\\\x21-\\\\x7E]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QP$ = subexp(\"\\\\\\\\\" + merge(\"[\\\\x00\\\\x0D\\\\x0A]\", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext\n//const FWS$ = subexp(subexp(WSP$$ + \"*\" + \"\\\\x0D\\\\x0A\") + \"?\" + WSP$$ + \"+\");\n//const QUOTED_PAIR$ = subexp(subexp(\"\\\\\\\\\" + subexp(VCHAR$$ + \"|\" + WSP$$)) + \"|\" + OBS_QP$);\n//const QUOTED_STRING$ = subexp('\\\\\"' + subexp(FWS$ + \"?\" + QCONTENT$) + \"*\" + FWS$ + \"?\" + '\\\\\"');\nconst ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\nconst QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\nconst VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\nconst DOT_ATOM_TEXT$ = subexp(ATEXT$$ + \"+\" + subexp(\"\\\\.\" + ATEXT$$ + \"+\") + \"*\");\nconst QUOTED_PAIR$ = subexp(\"\\\\\\\\\" + VCHAR$$);\nconst QCONTENT$ = subexp(QTEXT$$ + \"|\" + QUOTED_PAIR$);\nconst QUOTED_STRING$ = subexp('\\\\\"' + QCONTENT$ + \"*\" + '\\\\\"');\n\n//RFC 6068\nconst DTEXT_NO_OBS$$ = \"[\\\\x21-\\\\x5A\\\\x5E-\\\\x7E]\"; //%d33-90 / %d94-126\nconst SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\nconst QCHAR$ = subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$ + \"|\" + SOME_DELIMS$$);\nconst DOMAIN$ = subexp(DOT_ATOM_TEXT$ + \"|\" + \"\\\\[\" + DTEXT_NO_OBS$$ + \"*\" + \"\\\\]\");\nconst LOCAL_PART$ = subexp(DOT_ATOM_TEXT$ + \"|\" + QUOTED_STRING$);\nconst ADDR_SPEC$ = subexp(LOCAL_PART$ + \"\\\\@\" + DOMAIN$);\nconst TO$ = subexp(ADDR_SPEC$ + subexp(\"\\\\,\" + ADDR_SPEC$) + \"*\");\nconst HFNAME$ = subexp(QCHAR$ + \"*\");\nconst HFVALUE$ = HFNAME$;\nconst HFIELD$ = subexp(HFNAME$ + \"\\\\=\" + HFVALUE$);\nconst HFIELDS2$ = subexp(HFIELD$ + subexp(\"\\\\&\" + HFIELD$) + \"*\");\nconst HFIELDS$ = subexp(\"\\\\?\" + HFIELDS2$);\nconst MAILTO_URI = new RegExp(\"^mailto\\\\:\" + TO$ + \"?\" + HFIELDS$ + \"?$\");\n\nconst UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\nconst PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\nconst NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\nconst NOT_DOMAIN = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", \"[\\\\[]\", DTEXT_NO_OBS$$, \"[\\\\]]\"), \"g\");\nconst NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\nconst NOT_HFVALUE = NOT_HFNAME;\nconst TO = new RegExp(\"^\" + TO$ + \"$\");\nconst HFIELDS = new RegExp(\"^\" + HFIELDS2$ + \"$\");\n\nfunction decodeUnreserved(str:string):string {\n\tconst decStr = pctDecChars(str);\n\treturn (!decStr.match(UNRESERVED) ? str : decStr);\n}\n\nconst handler:URISchemeHandler<MailtoComponents> = {\n\tscheme : \"mailto\",\n\n\tparse : function (components:URIComponents, options:URIOptions):MailtoComponents {\n\t\tconst mailtoComponents = components as MailtoComponents;\n\t\tconst to = mailtoComponents.to = (mailtoComponents.path ? mailtoComponents.path.split(\",\") : []);\n\t\tmailtoComponents.path = undefined;\n\n\t\tif (mailtoComponents.query) {\n\t\t\tlet unknownHeaders = false\n\t\t\tconst headers:MailtoHeaders = {};\n\t\t\tconst hfields = mailtoComponents.query.split(\"&\");\n\n\t\t\tfor (let x = 0, xl = hfields.length; x < xl; ++x) {\n\t\t\t\tconst hfield = hfields[x].split(\"=\");\n\n\t\t\t\tswitch (hfield[0]) {\n\t\t\t\t\tcase \"to\":\n\t\t\t\t\t\tconst toAddrs = hfield[1].split(\",\");\n\t\t\t\t\t\tfor (let x = 0, xl = toAddrs.length; x < xl; ++x) {\n\t\t\t\t\t\t\tto.push(toAddrs[x]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"subject\":\n\t\t\t\t\t\tmailtoComponents.subject = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"body\":\n\t\t\t\t\t\tmailtoComponents.body = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tunknownHeaders = true;\n\t\t\t\t\t\theaders[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (unknownHeaders) mailtoComponents.headers = headers;\n\t\t}\n\n\t\tmailtoComponents.query = undefined;\n\n\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\tconst addr = to[x].split(\"@\");\n\n\t\t\taddr[0] = unescapeComponent(addr[0]);\n\n\t\t\tif (!options.unicodeSupport) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\taddr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tmailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\taddr[1] = unescapeComponent(addr[1], options).toLowerCase();\n\t\t\t}\n\n\t\t\tto[x] = addr.join(\"@\");\n\t\t}\n\n\t\treturn mailtoComponents;\n\t},\n\n\tserialize : function (mailtoComponents:MailtoComponents, options:URIOptions):URIComponents {\n\t\tconst components = mailtoComponents as URIComponents;\n\t\tconst to = toArray(mailtoComponents.to);\n\t\tif (to) {\n\t\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\t\tconst toAddr = String(to[x]);\n\t\t\t\tconst atIdx = toAddr.lastIndexOf(\"@\");\n\t\t\t\tconst localPart = (toAddr.slice(0, atIdx)).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n\t\t\t\tlet domain = toAddr.slice(atIdx + 1);\n\n\t\t\t\t//convert IDN via punycode\n\t\t\t\ttry {\n\t\t\t\t\tdomain = (!options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain));\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t\t}\n\n\t\t\t\tto[x] = localPart + \"@\" + domain;\n\t\t\t}\n\n\t\t\tcomponents.path = to.join(\",\");\n\t\t}\n\n\t\tconst headers = mailtoComponents.headers = mailtoComponents.headers || {};\n\n\t\tif (mailtoComponents.subject) headers[\"subject\"] = mailtoComponents.subject;\n\t\tif (mailtoComponents.body) headers[\"body\"] = mailtoComponents.body;\n\n\t\tconst fields = [];\n\t\tfor (const name in headers) {\n\t\t\tif (headers[name] !== O[name]) {\n\t\t\t\tfields.push(\n\t\t\t\t\tname.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) +\n\t\t\t\t\t\"=\" +\n\t\t\t\t\theaders[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (fields.length) {\n\t\t\tcomponents.query = fields.join(\"&\");\n\t\t}\n\n\t\treturn components;\n\t}\n}\n\nexport default handler;","import { URIRegExps } from \"./uri\";\nimport { buildExps } from \"./regexps-uri\";\n\nexport default buildExps(true);\n","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"http\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\t//report missing host\n\t\tif (!components.host) {\n\t\t\tcomponents.error = components.error || \"HTTP URIs must have a host.\";\n\t\t}\n\n\t\treturn components;\n\t},\n\n\tserialize : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\tconst secure = String(components.scheme).toLowerCase() === \"https\";\n\n\t\t//normalize the default port\n\t\tif (components.port === (secure ? 443 : 80) || components.port === \"\") {\n\t\t\tcomponents.port = undefined;\n\t\t}\n\t\t\n\t\t//normalize the empty path\n\t\tif (!components.path) {\n\t\t\tcomponents.path = \"/\";\n\t\t}\n\n\t\t//NOTE: We do not parse query strings for HTTP URIs\n\t\t//as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n\t\t//and not the HTTP spec.\n\n\t\treturn components;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport http from \"./http\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"https\",\n\tdomainHost : http.domainHost,\n\tparse : http.parse,\n\tserialize : http.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport ws from \"./ws\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"wss\",\n\tdomainHost : ws.domainHost,\n\tparse : ws.parse,\n\tserialize : ws.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, SCHEMES } from \"../uri\";\n\nexport interface URNComponents extends URIComponents {\n\tnid?:string;\n\tnss?:string;\n}\n\nexport interface URNOptions extends URIOptions {\n\tnid?:string;\n}\n\nconst NID$ = \"(?:[0-9A-Za-z][0-9A-Za-z\\\\-]{1,31})\";\nconst PCT_ENCODED$ = \"(?:\\\\%[0-9A-Fa-f]{2})\";\nconst TRANS$$ = \"[0-9A-Za-z\\\\(\\\\)\\\\+\\\\,\\\\-\\\\.\\\\:\\\\=\\\\@\\\\;\\\\$\\\\_\\\\!\\\\*\\\\'\\\\/\\\\?\\\\#]\";\nconst NSS$ = \"(?:(?:\" + PCT_ENCODED$ + \"|\" + TRANS$$ + \")+)\";\nconst URN_SCHEME = new RegExp(\"^urn\\\\:(\" + NID$ + \")$\");\nconst URN_PATH = new RegExp(\"^(\" + NID$ + \")\\\\:(\" + NSS$ + \")$\");\nconst URN_PARSE = /^([^\\:]+)\\:(.*)/;\nconst URN_EXCLUDED = /[\\x00-\\x20\\\\\\\"\\&\\<\\>\\[\\]\\^\\`\\{\\|\\}\\~\\x7F-\\xFF]/g;\n\n//RFC 2141\nconst handler:URISchemeHandler<URNComponents,URNOptions> = {\n\tscheme : \"urn\",\n\n\tparse : function (components:URIComponents, options:URNOptions):URNComponents {\n\t\tconst matches = components.path && components.path.match(URN_PARSE);\n\t\tlet urnComponents = components as URNComponents;\n\n\t\tif (matches) {\n\t\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\t\tconst nid = matches[1].toLowerCase();\n\t\t\tconst nss = matches[2];\n\t\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\t\turnComponents.nid = nid;\n\t\t\turnComponents.nss = nss;\n\t\t\turnComponents.path = undefined;\n\n\t\t\tif (schemeHandler) {\n\t\t\t\turnComponents = schemeHandler.parse(urnComponents, options) as URNComponents;\n\t\t\t}\n\t\t} else {\n\t\t\turnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n\t\t}\n\n\t\treturn urnComponents;\n\t},\n\n\tserialize : function (urnComponents:URNComponents, options:URNOptions):URIComponents {\n\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\tconst nid = urnComponents.nid;\n\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\tif (schemeHandler) {\n\t\t\turnComponents = schemeHandler.serialize(urnComponents, options) as URNComponents;\n\t\t}\n\n\t\tconst uriComponents = urnComponents as URIComponents;\n\t\tconst nss = urnComponents.nss;\n\t\turiComponents.path = `${nid || options.nid}:${nss}`;\n\n\t\treturn uriComponents;\n\t},\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { URNComponents } from \"./urn\";\nimport { SCHEMES } from \"../uri\";\n\nexport interface UUIDComponents extends URNComponents {\n\tuuid?: string;\n}\n\nconst UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\nconst UUID_PARSE = /^[0-9A-Fa-f\\-]{36}/;\n\n//RFC 4122\nconst handler:URISchemeHandler<UUIDComponents, URIOptions, URNComponents> = {\n\tscheme : \"urn:uuid\",\n\n\tparse : function (urnComponents:URNComponents, options:URIOptions):UUIDComponents {\n\t\tconst uuidComponents = urnComponents as UUIDComponents;\n\t\tuuidComponents.uuid = uuidComponents.nss;\n\t\tuuidComponents.nss = undefined;\n\n\t\tif (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n\t\t\tuuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n\t\t}\n\n\t\treturn uuidComponents;\n\t},\n\n\tserialize : function (uuidComponents:UUIDComponents, options:URIOptions):URNComponents {\n\t\tconst urnComponents = uuidComponents as URNComponents;\n\t\t//normalize UUID\n\t\turnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n\t\treturn urnComponents;\n\t},\n};\n\nexport default handler;","import { SCHEMES } from \"./uri\";\n\nimport http from \"./schemes/http\";\nSCHEMES[http.scheme] = http;\n\nimport https from \"./schemes/https\";\nSCHEMES[https.scheme] = https;\n\nimport ws from \"./schemes/ws\";\nSCHEMES[ws.scheme] = ws;\n\nimport wss from \"./schemes/wss\";\nSCHEMES[wss.scheme] = wss;\n\nimport mailto from \"./schemes/mailto\";\nSCHEMES[mailto.scheme] = mailto;\n\nimport urn from \"./schemes/urn\";\nSCHEMES[urn.scheme] = urn;\n\nimport uuid from \"./schemes/urn-uuid\";\nSCHEMES[uuid.scheme] = uuid;\n\nexport * from \"./uri\";\n"]} \ No newline at end of file
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/index.d.ts b/deps/npm/node_modules/uri-js/dist/esnext/index.d.ts
deleted file mode 100755
index f6be760343f..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/index.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./uri";
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/index.js b/deps/npm/node_modules/uri-js/dist/esnext/index.js
deleted file mode 100755
index e3531b5b61b..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/index.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import { SCHEMES } from "./uri";
-import http from "./schemes/http";
-SCHEMES[http.scheme] = http;
-import https from "./schemes/https";
-SCHEMES[https.scheme] = https;
-import ws from "./schemes/ws";
-SCHEMES[ws.scheme] = ws;
-import wss from "./schemes/wss";
-SCHEMES[wss.scheme] = wss;
-import mailto from "./schemes/mailto";
-SCHEMES[mailto.scheme] = mailto;
-import urn from "./schemes/urn";
-SCHEMES[urn.scheme] = urn;
-import uuid from "./schemes/urn-uuid";
-SCHEMES[uuid.scheme] = uuid;
-export * from "./uri";
-//# sourceMappingURL=index.js.map \ No newline at end of file
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/index.js.map b/deps/npm/node_modules/uri-js/dist/esnext/index.js.map
deleted file mode 100755
index 0971f6ebcad..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,IAAI,MAAM,gBAAgB,CAAC;AAClC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;AAE5B,OAAO,KAAK,MAAM,iBAAiB,CAAC;AACpC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;AAE9B,OAAO,EAAE,MAAM,cAAc,CAAC;AAC9B,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AAExB,OAAO,GAAG,MAAM,eAAe,CAAC;AAChC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;AAE1B,OAAO,MAAM,MAAM,kBAAkB,CAAC;AACtC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAEhC,OAAO,GAAG,MAAM,eAAe,CAAC;AAChC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;AAE1B,OAAO,IAAI,MAAM,oBAAoB,CAAC;AACtC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;AAE5B,cAAc,OAAO,CAAC"} \ No newline at end of file
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/regexps-iri.d.ts b/deps/npm/node_modules/uri-js/dist/esnext/regexps-iri.d.ts
deleted file mode 100755
index c91cdacbce6..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/regexps-iri.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { URIRegExps } from "./uri";
-declare const _default: URIRegExps;
-export default _default;
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/regexps-iri.js b/deps/npm/node_modules/uri-js/dist/esnext/regexps-iri.js
deleted file mode 100755
index 34e7de989e3..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/regexps-iri.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import { buildExps } from "./regexps-uri";
-export default buildExps(true);
-//# sourceMappingURL=regexps-iri.js.map \ No newline at end of file
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/regexps-iri.js.map b/deps/npm/node_modules/uri-js/dist/esnext/regexps-iri.js.map
deleted file mode 100755
index 2269c580c74..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/regexps-iri.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"regexps-iri.js","sourceRoot":"","sources":["../../src/regexps-iri.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,eAAe,SAAS,CAAC,IAAI,CAAC,CAAC"} \ No newline at end of file
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/regexps-uri.d.ts b/deps/npm/node_modules/uri-js/dist/esnext/regexps-uri.d.ts
deleted file mode 100755
index 6096bda5cd5..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/regexps-uri.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { URIRegExps } from "./uri";
-export declare function buildExps(isIRI: boolean): URIRegExps;
-declare const _default: URIRegExps;
-export default _default;
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/regexps-uri.js b/deps/npm/node_modules/uri-js/dist/esnext/regexps-uri.js
deleted file mode 100755
index 1cc659f133d..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/regexps-uri.js
+++ /dev/null
@@ -1,42 +0,0 @@
-import { merge, subexp } from "./util";
-export function buildExps(isIRI) {
- const ALPHA$$ = "[A-Za-z]", CR$ = "[\\x0D]", DIGIT$$ = "[0-9]", DQUOTE$$ = "[\\x22]", HEXDIG$$ = merge(DIGIT$$, "[A-Fa-f]"), //case-insensitive
- LF$$ = "[\\x0A]", SP$$ = "[\\x20]", PCT_ENCODED$ = subexp(subexp("%[EFef]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%[89A-Fa-f]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%" + HEXDIG$$ + HEXDIG$$)), //expanded
- GEN_DELIMS$$ = "[\\:\\/\\?\\#\\[\\]\\@]", SUB_DELIMS$$ = "[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]", RESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$), UCSCHAR$$ = isIRI ? "[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]" : "[]", //subset, excludes bidi control characters
- IPRIVATE$$ = isIRI ? "[\\uE000-\\uF8FF]" : "[]", //subset
- UNRESERVED$$ = merge(ALPHA$$, DIGIT$$, "[\\-\\.\\_\\~]", UCSCHAR$$), SCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, "[\\+\\-\\.]") + "*"), USERINFO$ = subexp(subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\:]")) + "*"), DEC_OCTET$ = subexp(subexp("25[0-5]") + "|" + subexp("2[0-4]" + DIGIT$$) + "|" + subexp("1" + DIGIT$$ + DIGIT$$) + "|" + subexp("[1-9]" + DIGIT$$) + "|" + DIGIT$$), DEC_OCTET_RELAXED$ = subexp(subexp("25[0-5]") + "|" + subexp("2[0-4]" + DIGIT$$) + "|" + subexp("1" + DIGIT$$ + DIGIT$$) + "|" + subexp("0?[1-9]" + DIGIT$$) + "|0?0?" + DIGIT$$), //relaxed parsing rules
- IPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$), H16$ = subexp(HEXDIG$$ + "{1,4}"), LS32$ = subexp(subexp(H16$ + "\\:" + H16$) + "|" + IPV4ADDRESS$), IPV6ADDRESS1$ = subexp(subexp(H16$ + "\\:") + "{6}" + LS32$), // 6( h16 ":" ) ls32
- IPV6ADDRESS2$ = subexp("\\:\\:" + subexp(H16$ + "\\:") + "{5}" + LS32$), // "::" 5( h16 ":" ) ls32
- IPV6ADDRESS3$ = subexp(subexp(H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{4}" + LS32$), //[ h16 ] "::" 4( h16 ":" ) ls32
- IPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,1}" + H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{3}" + LS32$), //[ *1( h16 ":" ) h16 ] "::" 3( h16 ":" ) ls32
- IPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,2}" + H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{2}" + LS32$), //[ *2( h16 ":" ) h16 ] "::" 2( h16 ":" ) ls32
- IPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,3}" + H16$) + "?\\:\\:" + H16$ + "\\:" + LS32$), //[ *3( h16 ":" ) h16 ] "::" h16 ":" ls32
- IPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,4}" + H16$) + "?\\:\\:" + LS32$), //[ *4( h16 ":" ) h16 ] "::" ls32
- IPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,5}" + H16$) + "?\\:\\:" + H16$), //[ *5( h16 ":" ) h16 ] "::" h16
- IPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,6}" + H16$) + "?\\:\\:"), //[ *6( h16 ":" ) h16 ] "::"
- IPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join("|")), ZONEID$ = subexp(subexp(UNRESERVED$$ + "|" + PCT_ENCODED$) + "+"), //RFC 6874
- IPV6ADDRZ$ = subexp(IPV6ADDRESS$ + "\\%25" + ZONEID$), //RFC 6874
- IPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp("\\%25|\\%(?!" + HEXDIG$$ + "{2})") + ZONEID$), //RFC 6874, with relaxed parsing rules
- IPVFUTURE$ = subexp("[vV]" + HEXDIG$$ + "+\\." + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\:]") + "+"), IP_LITERAL$ = subexp("\\[" + subexp(IPV6ADDRZ_RELAXED$ + "|" + IPV6ADDRESS$ + "|" + IPVFUTURE$) + "\\]"), //RFC 6874
- REG_NAME$ = subexp(subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$)) + "*"), HOST$ = subexp(IP_LITERAL$ + "|" + IPV4ADDRESS$ + "(?!" + REG_NAME$ + ")" + "|" + REG_NAME$), PORT$ = subexp(DIGIT$$ + "*"), AUTHORITY$ = subexp(subexp(USERINFO$ + "@") + "?" + HOST$ + subexp("\\:" + PORT$) + "?"), PCHAR$ = subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\:\\@]")), SEGMENT$ = subexp(PCHAR$ + "*"), SEGMENT_NZ$ = subexp(PCHAR$ + "+"), SEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\@]")) + "+"), PATH_ABEMPTY$ = subexp(subexp("\\/" + SEGMENT$) + "*"), PATH_ABSOLUTE$ = subexp("\\/" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + "?"), //simplified
- PATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), //simplified
- PATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), //simplified
- PATH_EMPTY$ = "(?!" + PCHAR$ + ")", PATH$ = subexp(PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$), QUERY$ = subexp(subexp(PCHAR$ + "|" + merge("[\\/\\?]", IPRIVATE$$)) + "*"), FRAGMENT$ = subexp(subexp(PCHAR$ + "|[\\/\\?]") + "*"), HIER_PART$ = subexp(subexp("\\/\\/" + AUTHORITY$ + PATH_ABEMPTY$) + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$), URI$ = subexp(SCHEME$ + "\\:" + HIER_PART$ + subexp("\\?" + QUERY$) + "?" + subexp("\\#" + FRAGMENT$) + "?"), RELATIVE_PART$ = subexp(subexp("\\/\\/" + AUTHORITY$ + PATH_ABEMPTY$) + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_EMPTY$), RELATIVE$ = subexp(RELATIVE_PART$ + subexp("\\?" + QUERY$) + "?" + subexp("\\#" + FRAGMENT$) + "?"), URI_REFERENCE$ = subexp(URI$ + "|" + RELATIVE$), ABSOLUTE_URI$ = subexp(SCHEME$ + "\\:" + HIER_PART$ + subexp("\\?" + QUERY$) + "?"), GENERIC_REF$ = "^(" + SCHEME$ + ")\\:" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?" + subexp("\\#(" + FRAGMENT$ + ")") + "?$", RELATIVE_REF$ = "^(){0}" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?" + subexp("\\#(" + FRAGMENT$ + ")") + "?$", ABSOLUTE_REF$ = "^(" + SCHEME$ + ")\\:" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?$", SAMEDOC_REF$ = "^" + subexp("\\#(" + FRAGMENT$ + ")") + "?$", AUTHORITY_REF$ = "^" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?$";
- return {
- NOT_SCHEME: new RegExp(merge("[^]", ALPHA$$, DIGIT$$, "[\\+\\-\\.]"), "g"),
- NOT_USERINFO: new RegExp(merge("[^\\%\\:]", UNRESERVED$$, SUB_DELIMS$$), "g"),
- NOT_HOST: new RegExp(merge("[^\\%\\[\\]\\:]", UNRESERVED$$, SUB_DELIMS$$), "g"),
- NOT_PATH: new RegExp(merge("[^\\%\\/\\:\\@]", UNRESERVED$$, SUB_DELIMS$$), "g"),
- NOT_PATH_NOSCHEME: new RegExp(merge("[^\\%\\/\\@]", UNRESERVED$$, SUB_DELIMS$$), "g"),
- NOT_QUERY: new RegExp(merge("[^\\%]", UNRESERVED$$, SUB_DELIMS$$, "[\\:\\@\\/\\?]", IPRIVATE$$), "g"),
- NOT_FRAGMENT: new RegExp(merge("[^\\%]", UNRESERVED$$, SUB_DELIMS$$, "[\\:\\@\\/\\?]"), "g"),
- ESCAPE: new RegExp(merge("[^]", UNRESERVED$$, SUB_DELIMS$$), "g"),
- UNRESERVED: new RegExp(UNRESERVED$$, "g"),
- OTHER_CHARS: new RegExp(merge("[^\\%]", UNRESERVED$$, RESERVED$$), "g"),
- PCT_ENCODED: new RegExp(PCT_ENCODED$, "g"),
- IPV4ADDRESS: new RegExp("^(" + IPV4ADDRESS$ + ")$"),
- IPV6ADDRESS: new RegExp("^\\[?(" + IPV6ADDRESS$ + ")" + subexp(subexp("\\%25|\\%(?!" + HEXDIG$$ + "{2})") + "(" + ZONEID$ + ")") + "?\\]?$") //RFC 6874, with relaxed parsing rules
- };
-}
-export default buildExps(false);
-//# sourceMappingURL=regexps-uri.js.map \ No newline at end of file
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/regexps-uri.js.map b/deps/npm/node_modules/uri-js/dist/esnext/regexps-uri.js.map
deleted file mode 100755
index cb028b804e3..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/regexps-uri.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"regexps-uri.js","sourceRoot":"","sources":["../../src/regexps-uri.ts"],"names":[],"mappings":"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"} \ No newline at end of file
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/schemes/http.d.ts b/deps/npm/node_modules/uri-js/dist/esnext/schemes/http.d.ts
deleted file mode 100755
index fe5b2f35424..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/schemes/http.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { URISchemeHandler } from "../uri";
-declare const handler: URISchemeHandler;
-export default handler;
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/schemes/http.js b/deps/npm/node_modules/uri-js/dist/esnext/schemes/http.js
deleted file mode 100755
index 6abf0fe6e3f..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/schemes/http.js
+++ /dev/null
@@ -1,28 +0,0 @@
-const handler = {
- scheme: "http",
- domainHost: true,
- parse: function (components, options) {
- //report missing host
- if (!components.host) {
- components.error = components.error || "HTTP URIs must have a host.";
- }
- return components;
- },
- serialize: function (components, options) {
- const secure = String(components.scheme).toLowerCase() === "https";
- //normalize the default port
- if (components.port === (secure ? 443 : 80) || components.port === "") {
- components.port = undefined;
- }
- //normalize the empty path
- if (!components.path) {
- components.path = "/";
- }
- //NOTE: We do not parse query strings for HTTP URIs
- //as WWW Form Url Encoded query strings are part of the HTML4+ spec,
- //and not the HTTP spec.
- return components;
- }
-};
-export default handler;
-//# sourceMappingURL=http.js.map \ No newline at end of file
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/schemes/http.js.map b/deps/npm/node_modules/uri-js/dist/esnext/schemes/http.js.map
deleted file mode 100755
index 82118970c54..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/schemes/http.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/schemes/http.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,GAAoB;IAChC,MAAM,EAAG,MAAM;IAEf,UAAU,EAAG,IAAI;IAEjB,KAAK,EAAG,UAAU,UAAwB,EAAE,OAAkB;QAC7D,qBAAqB;QACrB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;YACrB,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,6BAA6B,CAAC;SACrE;QAED,OAAO,UAAU,CAAC;IACnB,CAAC;IAED,SAAS,EAAG,UAAU,UAAwB,EAAE,OAAkB;QACjE,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC;QAEnE,4BAA4B;QAC5B,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,IAAI,KAAK,EAAE,EAAE;YACtE,UAAU,CAAC,IAAI,GAAG,SAAS,CAAC;SAC5B;QAED,0BAA0B;QAC1B,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;YACrB,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC;SACtB;QAED,mDAAmD;QACnD,oEAAoE;QACpE,wBAAwB;QAExB,OAAO,UAAU,CAAC;IACnB,CAAC;CACD,CAAC;AAEF,eAAe,OAAO,CAAC"} \ No newline at end of file
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/schemes/https.d.ts b/deps/npm/node_modules/uri-js/dist/esnext/schemes/https.d.ts
deleted file mode 100755
index fe5b2f35424..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/schemes/https.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { URISchemeHandler } from "../uri";
-declare const handler: URISchemeHandler;
-export default handler;
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/schemes/https.js b/deps/npm/node_modules/uri-js/dist/esnext/schemes/https.js
deleted file mode 100755
index ec4b6e76de6..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/schemes/https.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import http from "./http";
-const handler = {
- scheme: "https",
- domainHost: http.domainHost,
- parse: http.parse,
- serialize: http.serialize
-};
-export default handler;
-//# sourceMappingURL=https.js.map \ No newline at end of file
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/schemes/https.js.map b/deps/npm/node_modules/uri-js/dist/esnext/schemes/https.js.map
deleted file mode 100755
index 385b8efeaa0..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/schemes/https.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"https.js","sourceRoot":"","sources":["../../../src/schemes/https.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,QAAQ,CAAC;AAE1B,MAAM,OAAO,GAAoB;IAChC,MAAM,EAAG,OAAO;IAChB,UAAU,EAAG,IAAI,CAAC,UAAU;IAC5B,KAAK,EAAG,IAAI,CAAC,KAAK;IAClB,SAAS,EAAG,IAAI,CAAC,SAAS;CAC1B,CAAA;AAED,eAAe,OAAO,CAAC"} \ No newline at end of file
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/schemes/mailto.d.ts b/deps/npm/node_modules/uri-js/dist/esnext/schemes/mailto.d.ts
deleted file mode 100755
index e2aefc2afd1..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/schemes/mailto.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { URISchemeHandler, URIComponents } from "../uri";
-export interface MailtoHeaders {
- [hfname: string]: string;
-}
-export interface MailtoComponents extends URIComponents {
- to: Array<string>;
- headers?: MailtoHeaders;
- subject?: string;
- body?: string;
-}
-declare const handler: URISchemeHandler<MailtoComponents>;
-export default handler;
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/schemes/mailto.js b/deps/npm/node_modules/uri-js/dist/esnext/schemes/mailto.js
deleted file mode 100755
index 2553713cde8..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/schemes/mailto.js
+++ /dev/null
@@ -1,148 +0,0 @@
-import { pctEncChar, pctDecChars, unescapeComponent } from "../uri";
-import punycode from "punycode";
-import { merge, subexp, toUpperCase, toArray } from "../util";
-const O = {};
-const isIRI = true;
-//RFC 3986
-const UNRESERVED$$ = "[A-Za-z0-9\\-\\.\\_\\~" + (isIRI ? "\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF" : "") + "]";
-const HEXDIG$$ = "[0-9A-Fa-f]"; //case-insensitive
-const PCT_ENCODED$ = subexp(subexp("%[EFef]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%[89A-Fa-f]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%" + HEXDIG$$ + HEXDIG$$)); //expanded
-//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =
-//const ATEXT$$ = "[A-Za-z0-9\\!\\#\\$\\%\\&\\'\\*\\+\\-\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~]";
-//const WSP$$ = "[\\x20\\x09]";
-//const OBS_QTEXT$$ = "[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F]"; //(%d1-8 / %d11-12 / %d14-31 / %d127)
-//const QTEXT$$ = merge("[\\x21\\x23-\\x5B\\x5D-\\x7E]", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext
-//const VCHAR$$ = "[\\x21-\\x7E]";
-//const WSP$$ = "[\\x20\\x09]";
-//const OBS_QP$ = subexp("\\\\" + merge("[\\x00\\x0D\\x0A]", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext
-//const FWS$ = subexp(subexp(WSP$$ + "*" + "\\x0D\\x0A") + "?" + WSP$$ + "+");
-//const QUOTED_PAIR$ = subexp(subexp("\\\\" + subexp(VCHAR$$ + "|" + WSP$$)) + "|" + OBS_QP$);
-//const QUOTED_STRING$ = subexp('\\"' + subexp(FWS$ + "?" + QCONTENT$) + "*" + FWS$ + "?" + '\\"');
-const ATEXT$$ = "[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]";
-const QTEXT$$ = "[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]";
-const VCHAR$$ = merge(QTEXT$$, "[\\\"\\\\]");
-const DOT_ATOM_TEXT$ = subexp(ATEXT$$ + "+" + subexp("\\." + ATEXT$$ + "+") + "*");
-const QUOTED_PAIR$ = subexp("\\\\" + VCHAR$$);
-const QCONTENT$ = subexp(QTEXT$$ + "|" + QUOTED_PAIR$);
-const QUOTED_STRING$ = subexp('\\"' + QCONTENT$ + "*" + '\\"');
-//RFC 6068
-const DTEXT_NO_OBS$$ = "[\\x21-\\x5A\\x5E-\\x7E]"; //%d33-90 / %d94-126
-const SOME_DELIMS$$ = "[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]";
-const QCHAR$ = subexp(UNRESERVED$$ + "|" + PCT_ENCODED$ + "|" + SOME_DELIMS$$);
-const DOMAIN$ = subexp(DOT_ATOM_TEXT$ + "|" + "\\[" + DTEXT_NO_OBS$$ + "*" + "\\]");
-const LOCAL_PART$ = subexp(DOT_ATOM_TEXT$ + "|" + QUOTED_STRING$);
-const ADDR_SPEC$ = subexp(LOCAL_PART$ + "\\@" + DOMAIN$);
-const TO$ = subexp(ADDR_SPEC$ + subexp("\\," + ADDR_SPEC$) + "*");
-const HFNAME$ = subexp(QCHAR$ + "*");
-const HFVALUE$ = HFNAME$;
-const HFIELD$ = subexp(HFNAME$ + "\\=" + HFVALUE$);
-const HFIELDS2$ = subexp(HFIELD$ + subexp("\\&" + HFIELD$) + "*");
-const HFIELDS$ = subexp("\\?" + HFIELDS2$);
-const MAILTO_URI = new RegExp("^mailto\\:" + TO$ + "?" + HFIELDS$ + "?$");
-const UNRESERVED = new RegExp(UNRESERVED$$, "g");
-const PCT_ENCODED = new RegExp(PCT_ENCODED$, "g");
-const NOT_LOCAL_PART = new RegExp(merge("[^]", ATEXT$$, "[\\.]", '[\\"]', VCHAR$$), "g");
-const NOT_DOMAIN = new RegExp(merge("[^]", ATEXT$$, "[\\.]", "[\\[]", DTEXT_NO_OBS$$, "[\\]]"), "g");
-const NOT_HFNAME = new RegExp(merge("[^]", UNRESERVED$$, SOME_DELIMS$$), "g");
-const NOT_HFVALUE = NOT_HFNAME;
-const TO = new RegExp("^" + TO$ + "$");
-const HFIELDS = new RegExp("^" + HFIELDS2$ + "$");
-function decodeUnreserved(str) {
- const decStr = pctDecChars(str);
- return (!decStr.match(UNRESERVED) ? str : decStr);
-}
-const handler = {
- scheme: "mailto",
- parse: function (components, options) {
- const mailtoComponents = components;
- const to = mailtoComponents.to = (mailtoComponents.path ? mailtoComponents.path.split(",") : []);
- mailtoComponents.path = undefined;
- if (mailtoComponents.query) {
- let unknownHeaders = false;
- const headers = {};
- const hfields = mailtoComponents.query.split("&");
- for (let x = 0, xl = hfields.length; x < xl; ++x) {
- const hfield = hfields[x].split("=");
- switch (hfield[0]) {
- case "to":
- const toAddrs = hfield[1].split(",");
- for (let x = 0, xl = toAddrs.length; x < xl; ++x) {
- to.push(toAddrs[x]);
- }
- break;
- case "subject":
- mailtoComponents.subject = unescapeComponent(hfield[1], options);
- break;
- case "body":
- mailtoComponents.body = unescapeComponent(hfield[1], options);
- break;
- default:
- unknownHeaders = true;
- headers[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);
- break;
- }
- }
- if (unknownHeaders)
- mailtoComponents.headers = headers;
- }
- mailtoComponents.query = undefined;
- for (let x = 0, xl = to.length; x < xl; ++x) {
- const addr = to[x].split("@");
- addr[0] = unescapeComponent(addr[0]);
- if (!options.unicodeSupport) {
- //convert Unicode IDN -> ASCII IDN
- try {
- addr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());
- }
- catch (e) {
- mailtoComponents.error = mailtoComponents.error || "Email address's domain name can not be converted to ASCII via punycode: " + e;
- }
- }
- else {
- addr[1] = unescapeComponent(addr[1], options).toLowerCase();
- }
- to[x] = addr.join("@");
- }
- return mailtoComponents;
- },
- serialize: function (mailtoComponents, options) {
- const components = mailtoComponents;
- const to = toArray(mailtoComponents.to);
- if (to) {
- for (let x = 0, xl = to.length; x < xl; ++x) {
- const toAddr = String(to[x]);
- const atIdx = toAddr.lastIndexOf("@");
- const localPart = (toAddr.slice(0, atIdx)).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);
- let domain = toAddr.slice(atIdx + 1);
- //convert IDN via punycode
- try {
- domain = (!options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain));
- }
- catch (e) {
- components.error = components.error || "Email address's domain name can not be converted to " + (!options.iri ? "ASCII" : "Unicode") + " via punycode: " + e;
- }
- to[x] = localPart + "@" + domain;
- }
- components.path = to.join(",");
- }
- const headers = mailtoComponents.headers = mailtoComponents.headers || {};
- if (mailtoComponents.subject)
- headers["subject"] = mailtoComponents.subject;
- if (mailtoComponents.body)
- headers["body"] = mailtoComponents.body;
- const fields = [];
- for (const name in headers) {
- if (headers[name] !== O[name]) {
- fields.push(name.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) +
- "=" +
- headers[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar));
- }
- }
- if (fields.length) {
- components.query = fields.join("&");
- }
- return components;
- }
-};
-export default handler;
-//# sourceMappingURL=mailto.js.map \ No newline at end of file
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/schemes/mailto.js.map b/deps/npm/node_modules/uri-js/dist/esnext/schemes/mailto.js.map
deleted file mode 100755
index 82dba9a1612..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/schemes/mailto.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mailto.js","sourceRoot":"","sources":["../../../src/schemes/mailto.ts"],"names":[],"mappings":"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"} \ No newline at end of file
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/schemes/urn-uuid.d.ts b/deps/npm/node_modules/uri-js/dist/esnext/schemes/urn-uuid.d.ts
deleted file mode 100755
index e75f2e793f9..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/schemes/urn-uuid.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { URISchemeHandler, URIOptions } from "../uri";
-import { URNComponents } from "./urn";
-export interface UUIDComponents extends URNComponents {
- uuid?: string;
-}
-declare const handler: URISchemeHandler<UUIDComponents, URIOptions, URNComponents>;
-export default handler;
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js b/deps/npm/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js
deleted file mode 100755
index d1fce495554..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js
+++ /dev/null
@@ -1,23 +0,0 @@
-const UUID = /^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/;
-const UUID_PARSE = /^[0-9A-Fa-f\-]{36}/;
-//RFC 4122
-const handler = {
- scheme: "urn:uuid",
- parse: function (urnComponents, options) {
- const uuidComponents = urnComponents;
- uuidComponents.uuid = uuidComponents.nss;
- uuidComponents.nss = undefined;
- if (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {
- uuidComponents.error = uuidComponents.error || "UUID is not valid.";
- }
- return uuidComponents;
- },
- serialize: function (uuidComponents, options) {
- const urnComponents = uuidComponents;
- //normalize UUID
- urnComponents.nss = (uuidComponents.uuid || "").toLowerCase();
- return urnComponents;
- },
-};
-export default handler;
-//# sourceMappingURL=urn-uuid.js.map \ No newline at end of file
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js.map b/deps/npm/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js.map
deleted file mode 100755
index 3b7a8b3ae60..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"urn-uuid.js","sourceRoot":"","sources":["../../../src/schemes/urn-uuid.ts"],"names":[],"mappings":"AAQA,MAAM,IAAI,GAAG,0DAA0D,CAAC;AACxE,MAAM,UAAU,GAAG,oBAAoB,CAAC;AAExC,UAAU;AACV,MAAM,OAAO,GAA+D;IAC3E,MAAM,EAAG,UAAU;IAEnB,KAAK,EAAG,UAAU,aAA2B,EAAE,OAAkB;QAChE,MAAM,cAAc,GAAG,aAA+B,CAAC;QACvD,cAAc,CAAC,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC;QACzC,cAAc,CAAC,GAAG,GAAG,SAAS,CAAC;QAE/B,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE;YACpF,cAAc,CAAC,KAAK,GAAG,cAAc,CAAC,KAAK,IAAI,oBAAoB,CAAC;SACpE;QAED,OAAO,cAAc,CAAC;IACvB,CAAC;IAED,SAAS,EAAG,UAAU,cAA6B,EAAE,OAAkB;QACtE,MAAM,aAAa,GAAG,cAA+B,CAAC;QACtD,gBAAgB;QAChB,aAAa,CAAC,GAAG,GAAG,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAC9D,OAAO,aAAa,CAAC;IACtB,CAAC;CACD,CAAC;AAEF,eAAe,OAAO,CAAC"} \ No newline at end of file
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/schemes/urn.d.ts b/deps/npm/node_modules/uri-js/dist/esnext/schemes/urn.d.ts
deleted file mode 100755
index 7e0c2fba6c6..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/schemes/urn.d.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { URISchemeHandler, URIComponents, URIOptions } from "../uri";
-export interface URNComponents extends URIComponents {
- nid?: string;
- nss?: string;
-}
-export interface URNOptions extends URIOptions {
- nid?: string;
-}
-declare const handler: URISchemeHandler<URNComponents, URNOptions>;
-export default handler;
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/schemes/urn.js b/deps/npm/node_modules/uri-js/dist/esnext/schemes/urn.js
deleted file mode 100755
index 5d3f10aa0f8..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/schemes/urn.js
+++ /dev/null
@@ -1,49 +0,0 @@
-import { SCHEMES } from "../uri";
-const NID$ = "(?:[0-9A-Za-z][0-9A-Za-z\\-]{1,31})";
-const PCT_ENCODED$ = "(?:\\%[0-9A-Fa-f]{2})";
-const TRANS$$ = "[0-9A-Za-z\\(\\)\\+\\,\\-\\.\\:\\=\\@\\;\\$\\_\\!\\*\\'\\/\\?\\#]";
-const NSS$ = "(?:(?:" + PCT_ENCODED$ + "|" + TRANS$$ + ")+)";
-const URN_SCHEME = new RegExp("^urn\\:(" + NID$ + ")$");
-const URN_PATH = new RegExp("^(" + NID$ + ")\\:(" + NSS$ + ")$");
-const URN_PARSE = /^([^\:]+)\:(.*)/;
-const URN_EXCLUDED = /[\x00-\x20\\\"\&\<\>\[\]\^\`\{\|\}\~\x7F-\xFF]/g;
-//RFC 2141
-const handler = {
- scheme: "urn",
- parse: function (components, options) {
- const matches = components.path && components.path.match(URN_PARSE);
- let urnComponents = components;
- if (matches) {
- const scheme = options.scheme || urnComponents.scheme || "urn";
- const nid = matches[1].toLowerCase();
- const nss = matches[2];
- const urnScheme = `${scheme}:${options.nid || nid}`;
- const schemeHandler = SCHEMES[urnScheme];
- urnComponents.nid = nid;
- urnComponents.nss = nss;
- urnComponents.path = undefined;
- if (schemeHandler) {
- urnComponents = schemeHandler.parse(urnComponents, options);
- }
- }
- else {
- urnComponents.error = urnComponents.error || "URN can not be parsed.";
- }
- return urnComponents;
- },
- serialize: function (urnComponents, options) {
- const scheme = options.scheme || urnComponents.scheme || "urn";
- const nid = urnComponents.nid;
- const urnScheme = `${scheme}:${options.nid || nid}`;
- const schemeHandler = SCHEMES[urnScheme];
- if (schemeHandler) {
- urnComponents = schemeHandler.serialize(urnComponents, options);
- }
- const uriComponents = urnComponents;
- const nss = urnComponents.nss;
- uriComponents.path = `${nid || options.nid}:${nss}`;
- return uriComponents;
- },
-};
-export default handler;
-//# sourceMappingURL=urn.js.map \ No newline at end of file
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/schemes/urn.js.map b/deps/npm/node_modules/uri-js/dist/esnext/schemes/urn.js.map
deleted file mode 100755
index ea43b0bebc3..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/schemes/urn.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"urn.js","sourceRoot":"","sources":["../../../src/schemes/urn.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,OAAO,EAAE,MAAM,QAAQ,CAAC;AAW7C,MAAM,IAAI,GAAG,qCAAqC,CAAC;AACnD,MAAM,YAAY,GAAG,uBAAuB,CAAC;AAC7C,MAAM,OAAO,GAAG,mEAAmE,CAAC;AACpF,MAAM,IAAI,GAAG,QAAQ,GAAG,YAAY,GAAG,GAAG,GAAG,OAAO,GAAG,KAAK,CAAC;AAC7D,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;AACxD,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,IAAI,GAAG,IAAI,GAAG,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;AACjE,MAAM,SAAS,GAAG,iBAAiB,CAAC;AACpC,MAAM,YAAY,GAAG,iDAAiD,CAAC;AAEvE,UAAU;AACV,MAAM,OAAO,GAA8C;IAC1D,MAAM,EAAG,KAAK;IAEd,KAAK,EAAG,UAAU,UAAwB,EAAE,OAAkB;QAC7D,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACpE,IAAI,aAAa,GAAG,UAA2B,CAAC;QAEhD,IAAI,OAAO,EAAE;YACZ,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,IAAI,KAAK,CAAC;YAC/D,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM,SAAS,GAAG,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;YACpD,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;YAEzC,aAAa,CAAC,GAAG,GAAG,GAAG,CAAC;YACxB,aAAa,CAAC,GAAG,GAAG,GAAG,CAAC;YACxB,aAAa,CAAC,IAAI,GAAG,SAAS,CAAC;YAE/B,IAAI,aAAa,EAAE;gBAClB,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,aAAa,EAAE,OAAO,CAAkB,CAAC;aAC7E;SACD;aAAM;YACN,aAAa,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,IAAI,wBAAwB,CAAC;SACtE;QAED,OAAO,aAAa,CAAC;IACtB,CAAC;IAED,SAAS,EAAG,UAAU,aAA2B,EAAE,OAAkB;QACpE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,IAAI,KAAK,CAAC;QAC/D,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC;QAC9B,MAAM,SAAS,GAAG,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;QACpD,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAEzC,IAAI,aAAa,EAAE;YAClB,aAAa,GAAG,aAAa,CAAC,SAAS,CAAC,aAAa,EAAE,OAAO,CAAkB,CAAC;SACjF;QAED,MAAM,aAAa,GAAG,aAA8B,CAAC;QACrD,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC;QAC9B,aAAa,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;QAEpD,OAAO,aAAa,CAAC;IACtB,CAAC;CACD,CAAC;AAEF,eAAe,OAAO,CAAC"} \ No newline at end of file
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/schemes/ws.d.ts b/deps/npm/node_modules/uri-js/dist/esnext/schemes/ws.d.ts
deleted file mode 100755
index 47f4835b24a..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/schemes/ws.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { URISchemeHandler, URIComponents } from "../uri";
-export interface WSComponents extends URIComponents {
- resourceName?: string;
- secure?: boolean;
-}
-declare const handler: URISchemeHandler;
-export default handler;
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/schemes/ws.js b/deps/npm/node_modules/uri-js/dist/esnext/schemes/ws.js
deleted file mode 100755
index 9277f035a0b..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/schemes/ws.js
+++ /dev/null
@@ -1,41 +0,0 @@
-function isSecure(wsComponents) {
- return typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === "wss";
-}
-//RFC 6455
-const handler = {
- scheme: "ws",
- domainHost: true,
- parse: function (components, options) {
- const wsComponents = components;
- //indicate if the secure flag is set
- wsComponents.secure = isSecure(wsComponents);
- //construct resouce name
- wsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');
- wsComponents.path = undefined;
- wsComponents.query = undefined;
- return wsComponents;
- },
- serialize: function (wsComponents, options) {
- //normalize the default port
- if (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === "") {
- wsComponents.port = undefined;
- }
- //ensure scheme matches secure flag
- if (typeof wsComponents.secure === 'boolean') {
- wsComponents.scheme = (wsComponents.secure ? 'wss' : 'ws');
- wsComponents.secure = undefined;
- }
- //reconstruct path from resource name
- if (wsComponents.resourceName) {
- const [path, query] = wsComponents.resourceName.split('?');
- wsComponents.path = (path && path !== '/' ? path : undefined);
- wsComponents.query = query;
- wsComponents.resourceName = undefined;
- }
- //forbid fragment component
- wsComponents.fragment = undefined;
- return wsComponents;
- }
-};
-export default handler;
-//# sourceMappingURL=ws.js.map \ No newline at end of file
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/schemes/ws.js.map b/deps/npm/node_modules/uri-js/dist/esnext/schemes/ws.js.map
deleted file mode 100755
index 186818ccd65..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/schemes/ws.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ws.js","sourceRoot":"","sources":["../../../src/schemes/ws.ts"],"names":[],"mappings":"AAOA,kBAAkB,YAAyB;IAC1C,OAAO,OAAO,YAAY,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC;AAC7H,CAAC;AAED,UAAU;AACV,MAAM,OAAO,GAAoB;IAChC,MAAM,EAAG,IAAI;IAEb,UAAU,EAAG,IAAI;IAEjB,KAAK,EAAG,UAAU,UAAwB,EAAE,OAAkB;QAC7D,MAAM,YAAY,GAAG,UAA0B,CAAC;QAEhD,oCAAoC;QACpC,YAAY,CAAC,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;QAE7C,wBAAwB;QACxB,YAAY,CAAC,YAAY,GAAG,CAAC,YAAY,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9G,YAAY,CAAC,IAAI,GAAG,SAAS,CAAC;QAC9B,YAAY,CAAC,KAAK,GAAG,SAAS,CAAC;QAE/B,OAAO,YAAY,CAAC;IACrB,CAAC;IAED,SAAS,EAAG,UAAU,YAAyB,EAAE,OAAkB;QAClE,4BAA4B;QAC5B,IAAI,YAAY,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,YAAY,CAAC,IAAI,KAAK,EAAE,EAAE;YAC1F,YAAY,CAAC,IAAI,GAAG,SAAS,CAAC;SAC9B;QAED,mCAAmC;QACnC,IAAI,OAAO,YAAY,CAAC,MAAM,KAAK,SAAS,EAAE;YAC7C,YAAY,CAAC,MAAM,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC3D,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC;SAChC;QAED,qCAAqC;QACrC,IAAI,YAAY,CAAC,YAAY,EAAE;YAC9B,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC3D,YAAY,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9D,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;YAC3B,YAAY,CAAC,YAAY,GAAG,SAAS,CAAC;SACtC;QAED,2BAA2B;QAC3B,YAAY,CAAC,QAAQ,GAAG,SAAS,CAAC;QAElC,OAAO,YAAY,CAAC;IACrB,CAAC;CACD,CAAC;AAEF,eAAe,OAAO,CAAC"} \ No newline at end of file
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/schemes/wss.d.ts b/deps/npm/node_modules/uri-js/dist/esnext/schemes/wss.d.ts
deleted file mode 100755
index fe5b2f35424..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/schemes/wss.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { URISchemeHandler } from "../uri";
-declare const handler: URISchemeHandler;
-export default handler;
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/schemes/wss.js b/deps/npm/node_modules/uri-js/dist/esnext/schemes/wss.js
deleted file mode 100755
index d1e22ccd6e0..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/schemes/wss.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import ws from "./ws";
-const handler = {
- scheme: "wss",
- domainHost: ws.domainHost,
- parse: ws.parse,
- serialize: ws.serialize
-};
-export default handler;
-//# sourceMappingURL=wss.js.map \ No newline at end of file
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/schemes/wss.js.map b/deps/npm/node_modules/uri-js/dist/esnext/schemes/wss.js.map
deleted file mode 100755
index e19006d947b..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/schemes/wss.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"wss.js","sourceRoot":"","sources":["../../../src/schemes/wss.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,MAAM,CAAC;AAEtB,MAAM,OAAO,GAAoB;IAChC,MAAM,EAAG,KAAK;IACd,UAAU,EAAG,EAAE,CAAC,UAAU;IAC1B,KAAK,EAAG,EAAE,CAAC,KAAK;IAChB,SAAS,EAAG,EAAE,CAAC,SAAS;CACxB,CAAA;AAED,eAAe,OAAO,CAAC"} \ No newline at end of file
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/uri.d.ts b/deps/npm/node_modules/uri-js/dist/esnext/uri.d.ts
deleted file mode 100755
index da51e235277..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/uri.d.ts
+++ /dev/null
@@ -1,59 +0,0 @@
-export interface URIComponents {
- scheme?: string;
- userinfo?: string;
- host?: string;
- port?: number | string;
- path?: string;
- query?: string;
- fragment?: string;
- reference?: string;
- error?: string;
-}
-export interface URIOptions {
- scheme?: string;
- reference?: string;
- tolerant?: boolean;
- absolutePath?: boolean;
- iri?: boolean;
- unicodeSupport?: boolean;
- domainHost?: boolean;
-}
-export interface URISchemeHandler<Components extends URIComponents = URIComponents, Options extends URIOptions = URIOptions, ParentComponents extends URIComponents = URIComponents> {
- scheme: string;
- parse(components: ParentComponents, options: Options): Components;
- serialize(components: Components, options: Options): ParentComponents;
- unicodeSupport?: boolean;
- domainHost?: boolean;
- absolutePath?: boolean;
-}
-export interface URIRegExps {
- NOT_SCHEME: RegExp;
- NOT_USERINFO: RegExp;
- NOT_HOST: RegExp;
- NOT_PATH: RegExp;
- NOT_PATH_NOSCHEME: RegExp;
- NOT_QUERY: RegExp;
- NOT_FRAGMENT: RegExp;
- ESCAPE: RegExp;
- UNRESERVED: RegExp;
- OTHER_CHARS: RegExp;
- PCT_ENCODED: RegExp;
- IPV4ADDRESS: RegExp;
- IPV6ADDRESS: RegExp;
-}
-export declare const SCHEMES: {
- [scheme: string]: URISchemeHandler;
-};
-export declare function pctEncChar(chr: string): string;
-export declare function pctDecChars(str: string): string;
-export declare function parse(uriString: string, options?: URIOptions): URIComponents;
-export declare function removeDotSegments(input: string): string;
-export declare function serialize(components: URIComponents, options?: URIOptions): string;
-export declare function resolveComponents(base: URIComponents, relative: URIComponents, options?: URIOptions, skipNormalization?: boolean): URIComponents;
-export declare function resolve(baseURI: string, relativeURI: string, options?: URIOptions): string;
-export declare function normalize(uri: string, options?: URIOptions): string;
-export declare function normalize(uri: URIComponents, options?: URIOptions): URIComponents;
-export declare function equal(uriA: string, uriB: string, options?: URIOptions): boolean;
-export declare function equal(uriA: URIComponents, uriB: URIComponents, options?: URIOptions): boolean;
-export declare function escapeComponent(str: string, options?: URIOptions): string;
-export declare function unescapeComponent(str: string, options?: URIOptions): string;
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/uri.js b/deps/npm/node_modules/uri-js/dist/esnext/uri.js
deleted file mode 100755
index 659ce2651ce..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/uri.js
+++ /dev/null
@@ -1,480 +0,0 @@
-/**
- * URI.js
- *
- * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.
- * @author <a href="mailto:gary.court@gmail.com">Gary Court</a>
- * @see http://github.com/garycourt/uri-js
- */
-/**
- * Copyright 2011 Gary Court. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this list of
- * conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice, this list
- * of conditions and the following disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * The views and conclusions contained in the software and documentation are those of the
- * authors and should not be interpreted as representing official policies, either expressed
- * or implied, of Gary Court.
- */
-import URI_PROTOCOL from "./regexps-uri";
-import IRI_PROTOCOL from "./regexps-iri";
-import punycode from "punycode";
-import { toUpperCase, typeOf, assign } from "./util";
-export const SCHEMES = {};
-export function pctEncChar(chr) {
- const c = chr.charCodeAt(0);
- let e;
- if (c < 16)
- e = "%0" + c.toString(16).toUpperCase();
- else if (c < 128)
- e = "%" + c.toString(16).toUpperCase();
- else if (c < 2048)
- e = "%" + ((c >> 6) | 192).toString(16).toUpperCase() + "%" + ((c & 63) | 128).toString(16).toUpperCase();
- else
- e = "%" + ((c >> 12) | 224).toString(16).toUpperCase() + "%" + (((c >> 6) & 63) | 128).toString(16).toUpperCase() + "%" + ((c & 63) | 128).toString(16).toUpperCase();
- return e;
-}
-export function pctDecChars(str) {
- let newStr = "";
- let i = 0;
- const il = str.length;
- while (i < il) {
- const c = parseInt(str.substr(i + 1, 2), 16);
- if (c < 128) {
- newStr += String.fromCharCode(c);
- i += 3;
- }
- else if (c >= 194 && c < 224) {
- if ((il - i) >= 6) {
- const c2 = parseInt(str.substr(i + 4, 2), 16);
- newStr += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
- }
- else {
- newStr += str.substr(i, 6);
- }
- i += 6;
- }
- else if (c >= 224) {
- if ((il - i) >= 9) {
- const c2 = parseInt(str.substr(i + 4, 2), 16);
- const c3 = parseInt(str.substr(i + 7, 2), 16);
- newStr += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
- }
- else {
- newStr += str.substr(i, 9);
- }
- i += 9;
- }
- else {
- newStr += str.substr(i, 3);
- i += 3;
- }
- }
- return newStr;
-}
-function _normalizeComponentEncoding(components, protocol) {
- function decodeUnreserved(str) {
- const decStr = pctDecChars(str);
- return (!decStr.match(protocol.UNRESERVED) ? str : decStr);
- }
- if (components.scheme)
- components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, "");
- if (components.userinfo !== undefined)
- components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);
- if (components.host !== undefined)
- components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);
- if (components.path !== undefined)
- components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace((components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME), pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);
- if (components.query !== undefined)
- components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);
- if (components.fragment !== undefined)
- components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);
- return components;
-}
-;
-function _stripLeadingZeros(str) {
- return str.replace(/^0*(.*)/, "$1") || "0";
-}
-function _normalizeIPv4(host, protocol) {
- const matches = host.match(protocol.IPV4ADDRESS) || [];
- const [, address] = matches;
- if (address) {
- return address.split(".").map(_stripLeadingZeros).join(".");
- }
- else {
- return host;
- }
-}
-function _normalizeIPv6(host, protocol) {
- const matches = host.match(protocol.IPV6ADDRESS) || [];
- const [, address, zone] = matches;
- if (address) {
- const [last, first] = address.toLowerCase().split('::').reverse();
- const firstFields = first ? first.split(":").map(_stripLeadingZeros) : [];
- const lastFields = last.split(":").map(_stripLeadingZeros);
- const isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);
- const fieldCount = isLastFieldIPv4Address ? 7 : 8;
- const lastFieldsStart = lastFields.length - fieldCount;
- const fields = Array(fieldCount);
- for (let x = 0; x < fieldCount; ++x) {
- fields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';
- }
- if (isLastFieldIPv4Address) {
- fields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);
- }
- const allZeroFields = fields.reduce((acc, field, index) => {
- if (!field || field === "0") {
- const lastLongest = acc[acc.length - 1];
- if (lastLongest && lastLongest.index + lastLongest.length === index) {
- lastLongest.length++;
- }
- else {
- acc.push({ index, length: 1 });
- }
- }
- return acc;
- }, []);
- const longestZeroFields = allZeroFields.sort((a, b) => b.length - a.length)[0];
- let newHost;
- if (longestZeroFields && longestZeroFields.length > 1) {
- const newFirst = fields.slice(0, longestZeroFields.index);
- const newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);
- newHost = newFirst.join(":") + "::" + newLast.join(":");
- }
- else {
- newHost = fields.join(":");
- }
- if (zone) {
- newHost += "%" + zone;
- }
- return newHost;
- }
- else {
- return host;
- }
-}
-const URI_PARSE = /^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i;
-const NO_MATCH_IS_UNDEFINED = ("").match(/(){0}/)[1] === undefined;
-export function parse(uriString, options = {}) {
- const components = {};
- const protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);
- if (options.reference === "suffix")
- uriString = (options.scheme ? options.scheme + ":" : "") + "//" + uriString;
- const matches = uriString.match(URI_PARSE);
- if (matches) {
- if (NO_MATCH_IS_UNDEFINED) {
- //store each component
- components.scheme = matches[1];
- components.userinfo = matches[3];
- components.host = matches[4];
- components.port = parseInt(matches[5], 10);
- components.path = matches[6] || "";
- components.query = matches[7];
- components.fragment = matches[8];
- //fix port number
- if (isNaN(components.port)) {
- components.port = matches[5];
- }
- }
- else { //IE FIX for improper RegExp matching
- //store each component
- components.scheme = matches[1] || undefined;
- components.userinfo = (uriString.indexOf("@") !== -1 ? matches[3] : undefined);
- components.host = (uriString.indexOf("//") !== -1 ? matches[4] : undefined);
- components.port = parseInt(matches[5], 10);
- components.path = matches[6] || "";
- components.query = (uriString.indexOf("?") !== -1 ? matches[7] : undefined);
- components.fragment = (uriString.indexOf("#") !== -1 ? matches[8] : undefined);
- //fix port number
- if (isNaN(components.port)) {
- components.port = (uriString.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/) ? matches[4] : undefined);
- }
- }
- if (components.host) {
- //normalize IP hosts
- components.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);
- }
- //determine reference type
- if (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {
- components.reference = "same-document";
- }
- else if (components.scheme === undefined) {
- components.reference = "relative";
- }
- else if (components.fragment === undefined) {
- components.reference = "absolute";
- }
- else {
- components.reference = "uri";
- }
- //check for reference errors
- if (options.reference && options.reference !== "suffix" && options.reference !== components.reference) {
- components.error = components.error || "URI is not a " + options.reference + " reference.";
- }
- //find scheme handler
- const schemeHandler = SCHEMES[(options.scheme || components.scheme || "").toLowerCase()];
- //check if scheme can't handle IRIs
- if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {
- //if host component is a domain name
- if (components.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost))) {
- //convert Unicode IDN -> ASCII IDN
- try {
- components.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());
- }
- catch (e) {
- components.error = components.error || "Host's domain name can not be converted to ASCII via punycode: " + e;
- }
- }
- //convert IRI -> URI
- _normalizeComponentEncoding(components, URI_PROTOCOL);
- }
- else {
- //normalize encodings
- _normalizeComponentEncoding(components, protocol);
- }
- //perform scheme specific parsing
- if (schemeHandler && schemeHandler.parse) {
- schemeHandler.parse(components, options);
- }
- }
- else {
- components.error = components.error || "URI can not be parsed.";
- }
- return components;
-}
-;
-function _recomposeAuthority(components, options) {
- const protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);
- const uriTokens = [];
- if (components.userinfo !== undefined) {
- uriTokens.push(components.userinfo);
- uriTokens.push("@");
- }
- if (components.host !== undefined) {
- //normalize IP hosts, add brackets and escape zone separator for IPv6
- uriTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, (_, $1, $2) => "[" + $1 + ($2 ? "%25" + $2 : "") + "]"));
- }
- if (typeof components.port === "number" || typeof components.port === "string") {
- uriTokens.push(":");
- uriTokens.push(String(components.port));
- }
- return uriTokens.length ? uriTokens.join("") : undefined;
-}
-;
-const RDS1 = /^\.\.?\//;
-const RDS2 = /^\/\.(\/|$)/;
-const RDS3 = /^\/\.\.(\/|$)/;
-const RDS4 = /^\.\.?$/;
-const RDS5 = /^\/?(?:.|\n)*?(?=\/|$)/;
-export function removeDotSegments(input) {
- const output = [];
- while (input.length) {
- if (input.match(RDS1)) {
- input = input.replace(RDS1, "");
- }
- else if (input.match(RDS2)) {
- input = input.replace(RDS2, "/");
- }
- else if (input.match(RDS3)) {
- input = input.replace(RDS3, "/");
- output.pop();
- }
- else if (input === "." || input === "..") {
- input = "";
- }
- else {
- const im = input.match(RDS5);
- if (im) {
- const s = im[0];
- input = input.slice(s.length);
- output.push(s);
- }
- else {
- throw new Error("Unexpected dot segment condition");
- }
- }
- }
- return output.join("");
-}
-;
-export function serialize(components, options = {}) {
- const protocol = (options.iri ? IRI_PROTOCOL : URI_PROTOCOL);
- const uriTokens = [];
- //find scheme handler
- const schemeHandler = SCHEMES[(options.scheme || components.scheme || "").toLowerCase()];
- //perform scheme specific serialization
- if (schemeHandler && schemeHandler.serialize)
- schemeHandler.serialize(components, options);
- if (components.host) {
- //if host component is an IPv6 address
- if (protocol.IPV6ADDRESS.test(components.host)) {
- //TODO: normalize IPv6 address as per RFC 5952
- }
- //if host component is a domain name
- else if (options.domainHost || (schemeHandler && schemeHandler.domainHost)) {
- //convert IDN via punycode
- try {
- components.host = (!options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host));
- }
- catch (e) {
- components.error = components.error || "Host's domain name can not be converted to " + (!options.iri ? "ASCII" : "Unicode") + " via punycode: " + e;
- }
- }
- }
- //normalize encoding
- _normalizeComponentEncoding(components, protocol);
- if (options.reference !== "suffix" && components.scheme) {
- uriTokens.push(components.scheme);
- uriTokens.push(":");
- }
- const authority = _recomposeAuthority(components, options);
- if (authority !== undefined) {
- if (options.reference !== "suffix") {
- uriTokens.push("//");
- }
- uriTokens.push(authority);
- if (components.path && components.path.charAt(0) !== "/") {
- uriTokens.push("/");
- }
- }
- if (components.path !== undefined) {
- let s = components.path;
- if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {
- s = removeDotSegments(s);
- }
- if (authority === undefined) {
- s = s.replace(/^\/\//, "/%2F"); //don't allow the path to start with "//"
- }
- uriTokens.push(s);
- }
- if (components.query !== undefined) {
- uriTokens.push("?");
- uriTokens.push(components.query);
- }
- if (components.fragment !== undefined) {
- uriTokens.push("#");
- uriTokens.push(components.fragment);
- }
- return uriTokens.join(""); //merge tokens into a string
-}
-;
-export function resolveComponents(base, relative, options = {}, skipNormalization) {
- const target = {};
- if (!skipNormalization) {
- base = parse(serialize(base, options), options); //normalize base components
- relative = parse(serialize(relative, options), options); //normalize relative components
- }
- options = options || {};
- if (!options.tolerant && relative.scheme) {
- target.scheme = relative.scheme;
- //target.authority = relative.authority;
- target.userinfo = relative.userinfo;
- target.host = relative.host;
- target.port = relative.port;
- target.path = removeDotSegments(relative.path || "");
- target.query = relative.query;
- }
- else {
- if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {
- //target.authority = relative.authority;
- target.userinfo = relative.userinfo;
- target.host = relative.host;
- target.port = relative.port;
- target.path = removeDotSegments(relative.path || "");
- target.query = relative.query;
- }
- else {
- if (!relative.path) {
- target.path = base.path;
- if (relative.query !== undefined) {
- target.query = relative.query;
- }
- else {
- target.query = base.query;
- }
- }
- else {
- if (relative.path.charAt(0) === "/") {
- target.path = removeDotSegments(relative.path);
- }
- else {
- if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {
- target.path = "/" + relative.path;
- }
- else if (!base.path) {
- target.path = relative.path;
- }
- else {
- target.path = base.path.slice(0, base.path.lastIndexOf("/") + 1) + relative.path;
- }
- target.path = removeDotSegments(target.path);
- }
- target.query = relative.query;
- }
- //target.authority = base.authority;
- target.userinfo = base.userinfo;
- target.host = base.host;
- target.port = base.port;
- }
- target.scheme = base.scheme;
- }
- target.fragment = relative.fragment;
- return target;
-}
-;
-export function resolve(baseURI, relativeURI, options) {
- const schemelessOptions = assign({ scheme: 'null' }, options);
- return serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);
-}
-;
-export function normalize(uri, options) {
- if (typeof uri === "string") {
- uri = serialize(parse(uri, options), options);
- }
- else if (typeOf(uri) === "object") {
- uri = parse(serialize(uri, options), options);
- }
- return uri;
-}
-;
-export function equal(uriA, uriB, options) {
- if (typeof uriA === "string") {
- uriA = serialize(parse(uriA, options), options);
- }
- else if (typeOf(uriA) === "object") {
- uriA = serialize(uriA, options);
- }
- if (typeof uriB === "string") {
- uriB = serialize(parse(uriB, options), options);
- }
- else if (typeOf(uriB) === "object") {
- uriB = serialize(uriB, options);
- }
- return uriA === uriB;
-}
-;
-export function escapeComponent(str, options) {
- return str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE), pctEncChar);
-}
-;
-export function unescapeComponent(str, options) {
- return str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED), pctDecChars);
-}
-;
-//# sourceMappingURL=uri.js.map \ No newline at end of file
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/uri.js.map b/deps/npm/node_modules/uri-js/dist/esnext/uri.js.map
deleted file mode 100755
index 2e72ab18d11..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/uri.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"uri.js","sourceRoot":"","sources":["../../src/uri.ts"],"names":[],"mappings":"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"} \ No newline at end of file
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/util.d.ts b/deps/npm/node_modules/uri-js/dist/esnext/util.d.ts
deleted file mode 100755
index 7c12857543a..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/util.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-export declare function merge(...sets: Array<string>): string;
-export declare function subexp(str: string): string;
-export declare function typeOf(o: any): string;
-export declare function toUpperCase(str: string): string;
-export declare function toArray(obj: any): Array<any>;
-export declare function assign(target: object, source: any): any;
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/util.js b/deps/npm/node_modules/uri-js/dist/esnext/util.js
deleted file mode 100755
index 072711efdbf..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/util.js
+++ /dev/null
@@ -1,36 +0,0 @@
-export function merge(...sets) {
- if (sets.length > 1) {
- sets[0] = sets[0].slice(0, -1);
- const xl = sets.length - 1;
- for (let x = 1; x < xl; ++x) {
- sets[x] = sets[x].slice(1, -1);
- }
- sets[xl] = sets[xl].slice(1);
- return sets.join('');
- }
- else {
- return sets[0];
- }
-}
-export function subexp(str) {
- return "(?:" + str + ")";
-}
-export function typeOf(o) {
- return o === undefined ? "undefined" : (o === null ? "null" : Object.prototype.toString.call(o).split(" ").pop().split("]").shift().toLowerCase());
-}
-export function toUpperCase(str) {
- return str.toUpperCase();
-}
-export function toArray(obj) {
- return obj !== undefined && obj !== null ? (obj instanceof Array ? obj : (typeof obj.length !== "number" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj))) : [];
-}
-export function assign(target, source) {
- const obj = target;
- if (source) {
- for (const key in source) {
- obj[key] = source[key];
- }
- }
- return obj;
-}
-//# sourceMappingURL=util.js.map \ No newline at end of file
diff --git a/deps/npm/node_modules/uri-js/dist/esnext/util.js.map b/deps/npm/node_modules/uri-js/dist/esnext/util.js.map
deleted file mode 100755
index 05d9df021f9..00000000000
--- a/deps/npm/node_modules/uri-js/dist/esnext/util.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AAAA,MAAM,gBAAgB,GAAG,IAAkB;IAC1C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;QACpB,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;YAC5B,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAC/B;QACD,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACrB;SAAM;QACN,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;KACf;AACF,CAAC;AAED,MAAM,iBAAiB,GAAU;IAChC,OAAO,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC;AAC1B,CAAC;AAED,MAAM,iBAAiB,CAAK;IAC3B,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AACpJ,CAAC;AAED,MAAM,sBAAsB,GAAU;IACrC,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,kBAAkB,GAAO;IAC9B,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACvM,CAAC;AAGD,MAAM,iBAAiB,MAAc,EAAE,MAAW;IACjD,MAAM,GAAG,GAAG,MAAa,CAAC;IAC1B,IAAI,MAAM,EAAE;QACX,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;YACzB,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;SACvB;KACD;IACD,OAAO,GAAG,CAAC;AACZ,CAAC"} \ No newline at end of file
diff --git a/deps/npm/node_modules/uri-js/package.json b/deps/npm/node_modules/uri-js/package.json
deleted file mode 100755
index de95d91aa1a..00000000000
--- a/deps/npm/node_modules/uri-js/package.json
+++ /dev/null
@@ -1,77 +0,0 @@
-{
- "name": "uri-js",
- "version": "4.4.1",
- "description": "An RFC 3986/3987 compliant, scheme extendable URI/IRI parsing/validating/resolving library for JavaScript.",
- "main": "dist/es5/uri.all.js",
- "types": "dist/es5/uri.all.d.ts",
- "directories": {
- "test": "tests"
- },
- "files": [
- "dist",
- "package.json",
- "yarn.lock",
- "README.md",
- "CHANGELOG",
- "LICENSE"
- ],
- "scripts": {
- "build:esnext": "tsc",
- "build:es5": "rollup -c && cp dist/esnext/uri.d.ts dist/es5/uri.all.d.ts && npm run build:es5:fix-sourcemap",
- "build:es5:fix-sourcemap": "sorcery -i dist/es5/uri.all.js",
- "build:es5:min": "uglifyjs dist/es5/uri.all.js --support-ie8 --output dist/es5/uri.all.min.js --in-source-map dist/es5/uri.all.js.map --source-map uri.all.min.js.map --comments --compress --mangle --pure-funcs merge subexp && mv uri.all.min.js.map dist/es5/ && cp dist/es5/uri.all.d.ts dist/es5/uri.all.min.d.ts",
- "build": "npm run build:esnext && npm run build:es5 && npm run build:es5:min",
- "clean": "rm -rf dist",
- "test": "mocha -u mocha-qunit-ui dist/es5/uri.all.js tests/tests.js"
- },
- "repository": {
- "type": "git",
- "url": "http://github.com/garycourt/uri-js"
- },
- "keywords": [
- "URI",
- "IRI",
- "IDN",
- "URN",
- "UUID",
- "HTTP",
- "HTTPS",
- "WS",
- "WSS",
- "MAILTO",
- "RFC3986",
- "RFC3987",
- "RFC5891",
- "RFC2616",
- "RFC2818",
- "RFC2141",
- "RFC4122",
- "RFC4291",
- "RFC5952",
- "RFC6068",
- "RFC6455",
- "RFC6874"
- ],
- "author": "Gary Court <gary.court@gmail.com>",
- "license": "BSD-2-Clause",
- "bugs": {
- "url": "https://github.com/garycourt/uri-js/issues"
- },
- "homepage": "https://github.com/garycourt/uri-js",
- "devDependencies": {
- "babel-cli": "^6.26.0",
- "babel-plugin-external-helpers": "^6.22.0",
- "babel-preset-latest": "^6.24.1",
- "mocha": "^8.2.1",
- "mocha-qunit-ui": "^0.1.3",
- "rollup": "^0.41.6",
- "rollup-plugin-babel": "^2.7.1",
- "rollup-plugin-node-resolve": "^2.0.0",
- "sorcery": "^0.10.0",
- "typescript": "^2.8.1",
- "uglify-js": "^2.8.14"
- },
- "dependencies": {
- "punycode": "^2.1.0"
- }
-}
diff --git a/deps/npm/node_modules/uri-js/yarn.lock b/deps/npm/node_modules/uri-js/yarn.lock
deleted file mode 100755
index 3c42ded1259..00000000000
--- a/deps/npm/node_modules/uri-js/yarn.lock
+++ /dev/null
@@ -1,2558 +0,0 @@
-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
-# yarn lockfile v1
-
-
-"@ungap/promise-all-settled@1.1.2":
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44"
- integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==
-
-align-text@^0.1.1, align-text@^0.1.3:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
- dependencies:
- kind-of "^3.0.2"
- longest "^1.0.1"
- repeat-string "^1.5.2"
-
-ansi-colors@4.1.1:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
- integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
-
-ansi-regex@^2.0.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
- integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
-
-ansi-regex@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
- integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
-
-ansi-regex@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
- integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
-
-ansi-styles@^2.2.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
- integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=
-
-ansi-styles@^3.2.0:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
- integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
- dependencies:
- color-convert "^1.9.0"
-
-ansi-styles@^4.1.0:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
- integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
- dependencies:
- color-convert "^2.0.1"
-
-anymatch@^1.3.0:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a"
- integrity sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==
- dependencies:
- micromatch "^2.1.5"
- normalize-path "^2.0.0"
-
-anymatch@~3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142"
- integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==
- dependencies:
- normalize-path "^3.0.0"
- picomatch "^2.0.4"
-
-argparse@^1.0.7:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
- integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
- dependencies:
- sprintf-js "~1.0.2"
-
-arr-diff@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
- integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=
- dependencies:
- arr-flatten "^1.0.1"
-
-arr-diff@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
- integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=
-
-arr-flatten@^1.0.1, arr-flatten@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
- integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
-
-arr-union@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
- integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
-
-array-unique@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
- integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=
-
-array-unique@^0.3.2:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
- integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
-
-assign-symbols@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
- integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
-
-async-each@^1.0.0:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf"
- integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==
-
-atob@^2.1.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
- integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
-
-babel-cli@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1"
- integrity sha1-UCq1SHTX24itALiHoGODzgPQAvE=
- dependencies:
- babel-core "^6.26.0"
- babel-polyfill "^6.26.0"
- babel-register "^6.26.0"
- babel-runtime "^6.26.0"
- commander "^2.11.0"
- convert-source-map "^1.5.0"
- fs-readdir-recursive "^1.0.0"
- glob "^7.1.2"
- lodash "^4.17.4"
- output-file-sync "^1.1.2"
- path-is-absolute "^1.0.1"
- slash "^1.0.0"
- source-map "^0.5.6"
- v8flags "^2.1.1"
- optionalDependencies:
- chokidar "^1.6.1"
-
-babel-code-frame@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
- integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=
- dependencies:
- chalk "^1.1.3"
- esutils "^2.0.2"
- js-tokens "^3.0.2"
-
-babel-core@6:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8"
- dependencies:
- babel-code-frame "^6.26.0"
- babel-generator "^6.26.0"
- babel-helpers "^6.24.1"
- babel-messages "^6.23.0"
- babel-register "^6.26.0"
- babel-runtime "^6.26.0"
- babel-template "^6.26.0"
- babel-traverse "^6.26.0"
- babel-types "^6.26.0"
- babylon "^6.18.0"
- convert-source-map "^1.5.0"
- debug "^2.6.8"
- json5 "^0.5.1"
- lodash "^4.17.4"
- minimatch "^3.0.4"
- path-is-absolute "^1.0.1"
- private "^0.1.7"
- slash "^1.0.0"
- source-map "^0.5.6"
-
-babel-core@^6.26.0:
- version "6.26.3"
- resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207"
- integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==
- dependencies:
- babel-code-frame "^6.26.0"
- babel-generator "^6.26.0"
- babel-helpers "^6.24.1"
- babel-messages "^6.23.0"
- babel-register "^6.26.0"
- babel-runtime "^6.26.0"
- babel-template "^6.26.0"
- babel-traverse "^6.26.0"
- babel-types "^6.26.0"
- babylon "^6.18.0"
- convert-source-map "^1.5.1"
- debug "^2.6.9"
- json5 "^0.5.1"
- lodash "^4.17.4"
- minimatch "^3.0.4"
- path-is-absolute "^1.0.1"
- private "^0.1.8"
- slash "^1.0.0"
- source-map "^0.5.7"
-
-babel-generator@^6.26.0:
- version "6.26.1"
- resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90"
- integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==
- dependencies:
- babel-messages "^6.23.0"
- babel-runtime "^6.26.0"
- babel-types "^6.26.0"
- detect-indent "^4.0.0"
- jsesc "^1.3.0"
- lodash "^4.17.4"
- source-map "^0.5.7"
- trim-right "^1.0.1"
-
-babel-helper-builder-binary-assignment-operator-visitor@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664"
- dependencies:
- babel-helper-explode-assignable-expression "^6.24.1"
- babel-runtime "^6.22.0"
- babel-types "^6.24.1"
-
-babel-helper-call-delegate@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d"
- dependencies:
- babel-helper-hoist-variables "^6.24.1"
- babel-runtime "^6.22.0"
- babel-traverse "^6.24.1"
- babel-types "^6.24.1"
-
-babel-helper-define-map@^6.24.1:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f"
- dependencies:
- babel-helper-function-name "^6.24.1"
- babel-runtime "^6.26.0"
- babel-types "^6.26.0"
- lodash "^4.17.4"
-
-babel-helper-explode-assignable-expression@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa"
- dependencies:
- babel-runtime "^6.22.0"
- babel-traverse "^6.24.1"
- babel-types "^6.24.1"
-
-babel-helper-function-name@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9"
- dependencies:
- babel-helper-get-function-arity "^6.24.1"
- babel-runtime "^6.22.0"
- babel-template "^6.24.1"
- babel-traverse "^6.24.1"
- babel-types "^6.24.1"
-
-babel-helper-get-function-arity@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d"
- dependencies:
- babel-runtime "^6.22.0"
- babel-types "^6.24.1"
-
-babel-helper-hoist-variables@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76"
- dependencies:
- babel-runtime "^6.22.0"
- babel-types "^6.24.1"
-
-babel-helper-optimise-call-expression@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257"
- dependencies:
- babel-runtime "^6.22.0"
- babel-types "^6.24.1"
-
-babel-helper-regex@^6.24.1:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72"
- dependencies:
- babel-runtime "^6.26.0"
- babel-types "^6.26.0"
- lodash "^4.17.4"
-
-babel-helper-remap-async-to-generator@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b"
- dependencies:
- babel-helper-function-name "^6.24.1"
- babel-runtime "^6.22.0"
- babel-template "^6.24.1"
- babel-traverse "^6.24.1"
- babel-types "^6.24.1"
-
-babel-helper-replace-supers@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a"
- dependencies:
- babel-helper-optimise-call-expression "^6.24.1"
- babel-messages "^6.23.0"
- babel-runtime "^6.22.0"
- babel-template "^6.24.1"
- babel-traverse "^6.24.1"
- babel-types "^6.24.1"
-
-babel-helpers@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2"
- integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=
- dependencies:
- babel-runtime "^6.22.0"
- babel-template "^6.24.1"
-
-babel-messages@^6.23.0:
- version "6.23.0"
- resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e"
- integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=
- dependencies:
- babel-runtime "^6.22.0"
-
-babel-plugin-check-es2015-constants@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a"
- dependencies:
- babel-runtime "^6.22.0"
-
-babel-plugin-external-helpers@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-external-helpers/-/babel-plugin-external-helpers-6.22.0.tgz#2285f48b02bd5dede85175caf8c62e86adccefa1"
- dependencies:
- babel-runtime "^6.22.0"
-
-babel-plugin-syntax-async-functions@^6.8.0:
- version "6.13.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95"
-
-babel-plugin-syntax-exponentiation-operator@^6.8.0:
- version "6.13.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de"
-
-babel-plugin-syntax-trailing-function-commas@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3"
-
-babel-plugin-transform-async-to-generator@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761"
- dependencies:
- babel-helper-remap-async-to-generator "^6.24.1"
- babel-plugin-syntax-async-functions "^6.8.0"
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-arrow-functions@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221"
- dependencies:
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-block-scoped-functions@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141"
- dependencies:
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-block-scoping@^6.24.1:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f"
- dependencies:
- babel-runtime "^6.26.0"
- babel-template "^6.26.0"
- babel-traverse "^6.26.0"
- babel-types "^6.26.0"
- lodash "^4.17.4"
-
-babel-plugin-transform-es2015-classes@^6.24.1, babel-plugin-transform-es2015-classes@^6.9.0:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db"
- dependencies:
- babel-helper-define-map "^6.24.1"
- babel-helper-function-name "^6.24.1"
- babel-helper-optimise-call-expression "^6.24.1"
- babel-helper-replace-supers "^6.24.1"
- babel-messages "^6.23.0"
- babel-runtime "^6.22.0"
- babel-template "^6.24.1"
- babel-traverse "^6.24.1"
- babel-types "^6.24.1"
-
-babel-plugin-transform-es2015-computed-properties@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3"
- dependencies:
- babel-runtime "^6.22.0"
- babel-template "^6.24.1"
-
-babel-plugin-transform-es2015-destructuring@^6.22.0:
- version "6.23.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d"
- dependencies:
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-duplicate-keys@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e"
- dependencies:
- babel-runtime "^6.22.0"
- babel-types "^6.24.1"
-
-babel-plugin-transform-es2015-for-of@^6.22.0:
- version "6.23.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691"
- dependencies:
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-function-name@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b"
- dependencies:
- babel-helper-function-name "^6.24.1"
- babel-runtime "^6.22.0"
- babel-types "^6.24.1"
-
-babel-plugin-transform-es2015-literals@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e"
- dependencies:
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-modules-amd@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154"
- dependencies:
- babel-plugin-transform-es2015-modules-commonjs "^6.24.1"
- babel-runtime "^6.22.0"
- babel-template "^6.24.1"
-
-babel-plugin-transform-es2015-modules-commonjs@^6.24.1:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a"
- dependencies:
- babel-plugin-transform-strict-mode "^6.24.1"
- babel-runtime "^6.26.0"
- babel-template "^6.26.0"
- babel-types "^6.26.0"
-
-babel-plugin-transform-es2015-modules-systemjs@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23"
- dependencies:
- babel-helper-hoist-variables "^6.24.1"
- babel-runtime "^6.22.0"
- babel-template "^6.24.1"
-
-babel-plugin-transform-es2015-modules-umd@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468"
- dependencies:
- babel-plugin-transform-es2015-modules-amd "^6.24.1"
- babel-runtime "^6.22.0"
- babel-template "^6.24.1"
-
-babel-plugin-transform-es2015-object-super@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d"
- dependencies:
- babel-helper-replace-supers "^6.24.1"
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-parameters@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b"
- dependencies:
- babel-helper-call-delegate "^6.24.1"
- babel-helper-get-function-arity "^6.24.1"
- babel-runtime "^6.22.0"
- babel-template "^6.24.1"
- babel-traverse "^6.24.1"
- babel-types "^6.24.1"
-
-babel-plugin-transform-es2015-shorthand-properties@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0"
- dependencies:
- babel-runtime "^6.22.0"
- babel-types "^6.24.1"
-
-babel-plugin-transform-es2015-spread@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1"
- dependencies:
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-sticky-regex@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc"
- dependencies:
- babel-helper-regex "^6.24.1"
- babel-runtime "^6.22.0"
- babel-types "^6.24.1"
-
-babel-plugin-transform-es2015-template-literals@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d"
- dependencies:
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-typeof-symbol@^6.22.0:
- version "6.23.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372"
- dependencies:
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-unicode-regex@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9"
- dependencies:
- babel-helper-regex "^6.24.1"
- babel-runtime "^6.22.0"
- regexpu-core "^2.0.0"
-
-babel-plugin-transform-exponentiation-operator@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e"
- dependencies:
- babel-helper-builder-binary-assignment-operator-visitor "^6.24.1"
- babel-plugin-syntax-exponentiation-operator "^6.8.0"
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-regenerator@^6.24.1:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f"
- dependencies:
- regenerator-transform "^0.10.0"
-
-babel-plugin-transform-strict-mode@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758"
- dependencies:
- babel-runtime "^6.22.0"
- babel-types "^6.24.1"
-
-babel-polyfill@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153"
- integrity sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=
- dependencies:
- babel-runtime "^6.26.0"
- core-js "^2.5.0"
- regenerator-runtime "^0.10.5"
-
-babel-preset-es2015@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939"
- dependencies:
- babel-plugin-check-es2015-constants "^6.22.0"
- babel-plugin-transform-es2015-arrow-functions "^6.22.0"
- babel-plugin-transform-es2015-block-scoped-functions "^6.22.0"
- babel-plugin-transform-es2015-block-scoping "^6.24.1"
- babel-plugin-transform-es2015-classes "^6.24.1"
- babel-plugin-transform-es2015-computed-properties "^6.24.1"
- babel-plugin-transform-es2015-destructuring "^6.22.0"
- babel-plugin-transform-es2015-duplicate-keys "^6.24.1"
- babel-plugin-transform-es2015-for-of "^6.22.0"
- babel-plugin-transform-es2015-function-name "^6.24.1"
- babel-plugin-transform-es2015-literals "^6.22.0"
- babel-plugin-transform-es2015-modules-amd "^6.24.1"
- babel-plugin-transform-es2015-modules-commonjs "^6.24.1"
- babel-plugin-transform-es2015-modules-systemjs "^6.24.1"
- babel-plugin-transform-es2015-modules-umd "^6.24.1"
- babel-plugin-transform-es2015-object-super "^6.24.1"
- babel-plugin-transform-es2015-parameters "^6.24.1"
- babel-plugin-transform-es2015-shorthand-properties "^6.24.1"
- babel-plugin-transform-es2015-spread "^6.22.0"
- babel-plugin-transform-es2015-sticky-regex "^6.24.1"
- babel-plugin-transform-es2015-template-literals "^6.22.0"
- babel-plugin-transform-es2015-typeof-symbol "^6.22.0"
- babel-plugin-transform-es2015-unicode-regex "^6.24.1"
- babel-plugin-transform-regenerator "^6.24.1"
-
-babel-preset-es2016@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-preset-es2016/-/babel-preset-es2016-6.24.1.tgz#f900bf93e2ebc0d276df9b8ab59724ebfd959f8b"
- dependencies:
- babel-plugin-transform-exponentiation-operator "^6.24.1"
-
-babel-preset-es2017@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-preset-es2017/-/babel-preset-es2017-6.24.1.tgz#597beadfb9f7f208bcfd8a12e9b2b29b8b2f14d1"
- dependencies:
- babel-plugin-syntax-trailing-function-commas "^6.22.0"
- babel-plugin-transform-async-to-generator "^6.24.1"
-
-babel-preset-latest@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-preset-latest/-/babel-preset-latest-6.24.1.tgz#677de069154a7485c2d25c577c02f624b85b85e8"
- dependencies:
- babel-preset-es2015 "^6.24.1"
- babel-preset-es2016 "^6.24.1"
- babel-preset-es2017 "^6.24.1"
-
-babel-register@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071"
- integrity sha1-btAhFz4vy0htestFxgCahW9kcHE=
- dependencies:
- babel-core "^6.26.0"
- babel-runtime "^6.26.0"
- core-js "^2.5.0"
- home-or-tmp "^2.0.0"
- lodash "^4.17.4"
- mkdirp "^0.5.1"
- source-map-support "^0.4.15"
-
-babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
- integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4=
- dependencies:
- core-js "^2.4.0"
- regenerator-runtime "^0.11.0"
-
-babel-template@^6.24.1, babel-template@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02"
- integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=
- dependencies:
- babel-runtime "^6.26.0"
- babel-traverse "^6.26.0"
- babel-types "^6.26.0"
- babylon "^6.18.0"
- lodash "^4.17.4"
-
-babel-traverse@^6.24.1, babel-traverse@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee"
- dependencies:
- babel-code-frame "^6.26.0"
- babel-messages "^6.23.0"
- babel-runtime "^6.26.0"
- babel-types "^6.26.0"
- babylon "^6.18.0"
- debug "^2.6.8"
- globals "^9.18.0"
- invariant "^2.2.2"
- lodash "^4.17.4"
-
-babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497"
- dependencies:
- babel-runtime "^6.26.0"
- esutils "^2.0.2"
- lodash "^4.17.4"
- to-fast-properties "^1.0.3"
-
-babylon@^6.18.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
- integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==
-
-balanced-match@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
- integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
-
-base@^0.11.1:
- version "0.11.2"
- resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
- integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==
- dependencies:
- cache-base "^1.0.1"
- class-utils "^0.3.5"
- component-emitter "^1.2.1"
- define-property "^1.0.0"
- isobject "^3.0.1"
- mixin-deep "^1.2.0"
- pascalcase "^0.1.1"
-
-binary-extensions@^1.0.0:
- version "1.13.1"
- resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65"
- integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==
-
-binary-extensions@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9"
- integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==
-
-bindings@^1.5.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df"
- integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==
- dependencies:
- file-uri-to-path "1.0.0"
-
-brace-expansion@^1.1.7:
- version "1.1.11"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
- integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
- dependencies:
- balanced-match "^1.0.0"
- concat-map "0.0.1"
-
-braces@^1.8.2:
- version "1.8.5"
- resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7"
- integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=
- dependencies:
- expand-range "^1.8.1"
- preserve "^0.2.0"
- repeat-element "^1.1.2"
-
-braces@^2.3.1:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
- integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==
- dependencies:
- arr-flatten "^1.1.0"
- array-unique "^0.3.2"
- extend-shallow "^2.0.1"
- fill-range "^4.0.0"
- isobject "^3.0.1"
- repeat-element "^1.1.2"
- snapdragon "^0.8.1"
- snapdragon-node "^2.0.1"
- split-string "^3.0.2"
- to-regex "^3.0.1"
-
-braces@~3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
- integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
- dependencies:
- fill-range "^7.0.1"
-
-browser-resolve@^1.11.0:
- version "1.11.2"
- resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce"
- dependencies:
- resolve "1.1.7"
-
-browser-stdout@1.3.1:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60"
- integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==
-
-buffer-crc32@^0.2.5:
- version "0.2.13"
- resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
-
-builtin-modules@^1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
-
-cache-base@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
- integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==
- dependencies:
- collection-visit "^1.0.0"
- component-emitter "^1.2.1"
- get-value "^2.0.6"
- has-value "^1.0.0"
- isobject "^3.0.1"
- set-value "^2.0.0"
- to-object-path "^0.3.0"
- union-value "^1.0.0"
- unset-value "^1.0.0"
-
-camelcase@^1.0.2:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
-
-camelcase@^5.0.0:
- version "5.3.1"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
- integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
-
-camelcase@^6.0.0:
- version "6.2.0"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809"
- integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==
-
-center-align@^0.1.1:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
- dependencies:
- align-text "^0.1.3"
- lazy-cache "^1.0.3"
-
-chalk@^1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
- integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=
- dependencies:
- ansi-styles "^2.2.1"
- escape-string-regexp "^1.0.2"
- has-ansi "^2.0.0"
- strip-ansi "^3.0.0"
- supports-color "^2.0.0"
-
-chalk@^4.0.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
- integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==
- dependencies:
- ansi-styles "^4.1.0"
- supports-color "^7.1.0"
-
-chokidar@3.4.3:
- version "3.4.3"
- resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b"
- integrity sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==
- dependencies:
- anymatch "~3.1.1"
- braces "~3.0.2"
- glob-parent "~5.1.0"
- is-binary-path "~2.1.0"
- is-glob "~4.0.1"
- normalize-path "~3.0.0"
- readdirp "~3.5.0"
- optionalDependencies:
- fsevents "~2.1.2"
-
-chokidar@^1.6.1:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468"
- integrity sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=
- dependencies:
- anymatch "^1.3.0"
- async-each "^1.0.0"
- glob-parent "^2.0.0"
- inherits "^2.0.1"
- is-binary-path "^1.0.0"
- is-glob "^2.0.0"
- path-is-absolute "^1.0.0"
- readdirp "^2.0.0"
- optionalDependencies:
- fsevents "^1.0.0"
-
-class-utils@^0.3.5:
- version "0.3.6"
- resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
- integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==
- dependencies:
- arr-union "^3.1.0"
- define-property "^0.2.5"
- isobject "^3.0.0"
- static-extend "^0.1.1"
-
-cliui@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
- dependencies:
- center-align "^0.1.1"
- right-align "^0.1.1"
- wordwrap "0.0.2"
-
-cliui@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5"
- integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==
- dependencies:
- string-width "^3.1.0"
- strip-ansi "^5.2.0"
- wrap-ansi "^5.1.0"
-
-collection-visit@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
- integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=
- dependencies:
- map-visit "^1.0.0"
- object-visit "^1.0.0"
-
-color-convert@^1.9.0:
- version "1.9.3"
- resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
- integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
- dependencies:
- color-name "1.1.3"
-
-color-convert@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
- integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
- dependencies:
- color-name "~1.1.4"
-
-color-name@1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
- integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
-
-color-name@~1.1.4:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
- integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
-
-commander@^2.11.0:
- version "2.20.3"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
- integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
-
-component-emitter@^1.2.1:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
- integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
-
-concat-map@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
- integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
-
-convert-source-map@^1.5.0, convert-source-map@^1.5.1:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
- integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==
- dependencies:
- safe-buffer "~5.1.1"
-
-copy-descriptor@^0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
- integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
-
-core-js@^2.4.0, core-js@^2.5.0:
- version "2.6.12"
- resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec"
- integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
-
-core-util-is@~1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
- integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
-
-debug@4.2.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1"
- integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==
- dependencies:
- ms "2.1.2"
-
-debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9:
- version "2.6.9"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
- integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
- dependencies:
- ms "2.0.0"
-
-decamelize@^1.0.0, decamelize@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
-
-decamelize@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837"
- integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==
-
-decode-uri-component@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
- integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
-
-define-property@^0.2.5:
- version "0.2.5"
- resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
- integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=
- dependencies:
- is-descriptor "^0.1.0"
-
-define-property@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
- integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY=
- dependencies:
- is-descriptor "^1.0.0"
-
-define-property@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d"
- integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==
- dependencies:
- is-descriptor "^1.0.2"
- isobject "^3.0.1"
-
-detect-indent@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208"
- integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg=
- dependencies:
- repeating "^2.0.0"
-
-diff@4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
- integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
-
-emoji-regex@^7.0.1:
- version "7.0.3"
- resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
- integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
-
-es6-promise@^3.1.2:
- version "3.3.1"
- resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613"
-
-escape-string-regexp@4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
- integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
-
-escape-string-regexp@^1.0.2:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
- integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
-
-esprima@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
- integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
-
-estree-walker@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.2.1.tgz#bdafe8095383d8414d5dc2ecf4c9173b6db9412e"
-
-esutils@^2.0.2:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
- integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
-
-expand-brackets@^0.1.4:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
- integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=
- dependencies:
- is-posix-bracket "^0.1.0"
-
-expand-brackets@^2.1.4:
- version "2.1.4"
- resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
- integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI=
- dependencies:
- debug "^2.3.3"
- define-property "^0.2.5"
- extend-shallow "^2.0.1"
- posix-character-classes "^0.1.0"
- regex-not "^1.0.0"
- snapdragon "^0.8.1"
- to-regex "^3.0.1"
-
-expand-range@^1.8.1:
- version "1.8.2"
- resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337"
- integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=
- dependencies:
- fill-range "^2.1.0"
-
-extend-shallow@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
- integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=
- dependencies:
- is-extendable "^0.1.0"
-
-extend-shallow@^3.0.0, extend-shallow@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
- integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=
- dependencies:
- assign-symbols "^1.0.0"
- is-extendable "^1.0.1"
-
-extglob@^0.3.1:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
- integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=
- dependencies:
- is-extglob "^1.0.0"
-
-extglob@^2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
- integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==
- dependencies:
- array-unique "^0.3.2"
- define-property "^1.0.0"
- expand-brackets "^2.1.4"
- extend-shallow "^2.0.1"
- fragment-cache "^0.2.1"
- regex-not "^1.0.0"
- snapdragon "^0.8.1"
- to-regex "^3.0.1"
-
-file-uri-to-path@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
- integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
-
-filename-regex@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
- integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=
-
-fill-range@^2.1.0:
- version "2.2.4"
- resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565"
- integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==
- dependencies:
- is-number "^2.1.0"
- isobject "^2.0.0"
- randomatic "^3.0.0"
- repeat-element "^1.1.2"
- repeat-string "^1.5.2"
-
-fill-range@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
- integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=
- dependencies:
- extend-shallow "^2.0.1"
- is-number "^3.0.0"
- repeat-string "^1.6.1"
- to-regex-range "^2.1.0"
-
-fill-range@^7.0.1:
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
- integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
- dependencies:
- to-regex-range "^5.0.1"
-
-find-up@5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
- integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
- dependencies:
- locate-path "^6.0.0"
- path-exists "^4.0.0"
-
-find-up@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
- integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==
- dependencies:
- locate-path "^3.0.0"
-
-flat@^5.0.2:
- version "5.0.2"
- resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241"
- integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==
-
-for-in@^1.0.1, for-in@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
- integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
-
-for-own@^0.1.4:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce"
- integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=
- dependencies:
- for-in "^1.0.1"
-
-fragment-cache@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
- integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=
- dependencies:
- map-cache "^0.2.2"
-
-fs-readdir-recursive@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27"
- integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==
-
-fs.realpath@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
- integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
-
-fsevents@^1.0.0:
- version "1.2.13"
- resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38"
- integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==
- dependencies:
- bindings "^1.5.0"
- nan "^2.12.1"
-
-fsevents@~2.1.2:
- version "2.1.3"
- resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e"
- integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==
-
-get-caller-file@^2.0.1:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
- integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
-
-get-value@^2.0.3, get-value@^2.0.6:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
- integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
-
-glob-base@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
- integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=
- dependencies:
- glob-parent "^2.0.0"
- is-glob "^2.0.0"
-
-glob-parent@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28"
- integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=
- dependencies:
- is-glob "^2.0.0"
-
-glob-parent@~5.1.0:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229"
- integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==
- dependencies:
- is-glob "^4.0.1"
-
-glob@7.1.6, glob@^7.1.2, glob@^7.1.3:
- version "7.1.6"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
- integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
- dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^3.0.4"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
-globals@^9.18.0:
- version "9.18.0"
- resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
- integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==
-
-graceful-fs@^4.1.11, graceful-fs@^4.1.4:
- version "4.2.4"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
- integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
-
-graceful-fs@^4.1.3:
- version "4.2.3"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423"
-
-growl@1.10.5:
- version "1.10.5"
- resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e"
- integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==
-
-has-ansi@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
- integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=
- dependencies:
- ansi-regex "^2.0.0"
-
-has-flag@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
- integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
-
-has-value@^0.3.1:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
- integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=
- dependencies:
- get-value "^2.0.3"
- has-values "^0.1.4"
- isobject "^2.0.0"
-
-has-value@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
- integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=
- dependencies:
- get-value "^2.0.6"
- has-values "^1.0.0"
- isobject "^3.0.0"
-
-has-values@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
- integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E=
-
-has-values@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
- integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=
- dependencies:
- is-number "^3.0.0"
- kind-of "^4.0.0"
-
-he@1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
- integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
-
-home-or-tmp@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8"
- integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg=
- dependencies:
- os-homedir "^1.0.0"
- os-tmpdir "^1.0.1"
-
-inflight@^1.0.4:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
- integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
- dependencies:
- once "^1.3.0"
- wrappy "1"
-
-inherits@2, inherits@^2.0.1, inherits@~2.0.3:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
- integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
-
-invariant@^2.2.2:
- version "2.2.4"
- resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
- integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
- dependencies:
- loose-envify "^1.0.0"
-
-is-accessor-descriptor@^0.1.6:
- version "0.1.6"
- resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
- integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=
- dependencies:
- kind-of "^3.0.2"
-
-is-accessor-descriptor@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
- integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==
- dependencies:
- kind-of "^6.0.0"
-
-is-binary-path@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
- integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=
- dependencies:
- binary-extensions "^1.0.0"
-
-is-binary-path@~2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
- integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
- dependencies:
- binary-extensions "^2.0.0"
-
-is-buffer@^1.1.5:
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
- integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
-
-is-data-descriptor@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
- integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=
- dependencies:
- kind-of "^3.0.2"
-
-is-data-descriptor@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
- integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==
- dependencies:
- kind-of "^6.0.0"
-
-is-descriptor@^0.1.0:
- version "0.1.6"
- resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
- integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==
- dependencies:
- is-accessor-descriptor "^0.1.6"
- is-data-descriptor "^0.1.4"
- kind-of "^5.0.0"
-
-is-descriptor@^1.0.0, is-descriptor@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
- integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==
- dependencies:
- is-accessor-descriptor "^1.0.0"
- is-data-descriptor "^1.0.0"
- kind-of "^6.0.2"
-
-is-dotfile@^1.0.0:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
- integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=
-
-is-equal-shallow@^0.1.3:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534"
- integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=
- dependencies:
- is-primitive "^2.0.0"
-
-is-extendable@^0.1.0, is-extendable@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
- integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
-
-is-extendable@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
- integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==
- dependencies:
- is-plain-object "^2.0.4"
-
-is-extglob@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
- integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=
-
-is-extglob@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
- integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
-
-is-finite@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3"
- integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==
-
-is-fullwidth-code-point@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
- integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
-
-is-glob@^2.0.0, is-glob@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
- integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=
- dependencies:
- is-extglob "^1.0.0"
-
-is-glob@^4.0.1, is-glob@~4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
- integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
- dependencies:
- is-extglob "^2.1.1"
-
-is-number@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
- integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=
- dependencies:
- kind-of "^3.0.2"
-
-is-number@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
- integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=
- dependencies:
- kind-of "^3.0.2"
-
-is-number@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff"
- integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==
-
-is-number@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
- integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
-
-is-plain-obj@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287"
- integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==
-
-is-plain-object@^2.0.3, is-plain-object@^2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
- integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
- dependencies:
- isobject "^3.0.1"
-
-is-posix-bracket@^0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
- integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=
-
-is-primitive@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
- integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU=
-
-is-windows@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
- integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
-
-isarray@1.0.0, isarray@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
- integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
-
-isexe@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
- integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
-
-isobject@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
- integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=
- dependencies:
- isarray "1.0.0"
-
-isobject@^3.0.0, isobject@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
- integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
-
-"js-tokens@^3.0.0 || ^4.0.0":
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
- integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
-
-js-tokens@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
- integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls=
-
-js-yaml@3.14.0:
- version "3.14.0"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482"
- integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==
- dependencies:
- argparse "^1.0.7"
- esprima "^4.0.0"
-
-jsesc@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
- integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s=
-
-jsesc@~0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
-
-json5@^0.5.1:
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
- integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=
-
-kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
- integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
- dependencies:
- is-buffer "^1.1.5"
-
-kind-of@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
- integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc=
- dependencies:
- is-buffer "^1.1.5"
-
-kind-of@^5.0.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
- integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
-
-kind-of@^6.0.0, kind-of@^6.0.2:
- version "6.0.3"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
- integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
-
-lazy-cache@^1.0.3:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
-
-locate-path@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
- integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==
- dependencies:
- p-locate "^3.0.0"
- path-exists "^3.0.0"
-
-locate-path@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
- integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
- dependencies:
- p-locate "^5.0.0"
-
-lodash@^4.17.4:
- version "4.17.20"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
- integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
-
-log-symbols@4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920"
- integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==
- dependencies:
- chalk "^4.0.0"
-
-longest@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
-
-loose-envify@^1.0.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
- integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
- dependencies:
- js-tokens "^3.0.0 || ^4.0.0"
-
-map-cache@^0.2.2:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
- integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=
-
-map-visit@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
- integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=
- dependencies:
- object-visit "^1.0.0"
-
-math-random@^1.0.1:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c"
- integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==
-
-micromatch@^2.1.5:
- version "2.3.11"
- resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
- integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=
- dependencies:
- arr-diff "^2.0.0"
- array-unique "^0.2.1"
- braces "^1.8.2"
- expand-brackets "^0.1.4"
- extglob "^0.3.1"
- filename-regex "^2.0.0"
- is-extglob "^1.0.0"
- is-glob "^2.0.1"
- kind-of "^3.0.2"
- normalize-path "^2.0.1"
- object.omit "^2.0.0"
- parse-glob "^3.0.4"
- regex-cache "^0.4.2"
-
-micromatch@^3.1.10:
- version "3.1.10"
- resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
- integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
- dependencies:
- arr-diff "^4.0.0"
- array-unique "^0.3.2"
- braces "^2.3.1"
- define-property "^2.0.2"
- extend-shallow "^3.0.2"
- extglob "^2.0.4"
- fragment-cache "^0.2.1"
- kind-of "^6.0.2"
- nanomatch "^1.2.9"
- object.pick "^1.3.0"
- regex-not "^1.0.0"
- snapdragon "^0.8.1"
- to-regex "^3.0.2"
-
-minimatch@3.0.4, minimatch@^3.0.2, minimatch@^3.0.4:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
- dependencies:
- brace-expansion "^1.1.7"
-
-minimist@^1.2.0, minimist@^1.2.5:
- version "1.2.5"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
- integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
-
-mixin-deep@^1.2.0:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
- integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==
- dependencies:
- for-in "^1.0.2"
- is-extendable "^1.0.1"
-
-mkdirp@^0.5.1:
- version "0.5.5"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
- integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
- dependencies:
- minimist "^1.2.5"
-
-mocha-qunit-ui@^0.1.3:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/mocha-qunit-ui/-/mocha-qunit-ui-0.1.3.tgz#e3e1ff1dac33222b10cef681efd7f82664141ea9"
-
-mocha@^8.2.1:
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.2.1.tgz#f2fa68817ed0e53343d989df65ccd358bc3a4b39"
- integrity sha512-cuLBVfyFfFqbNR0uUKbDGXKGk+UDFe6aR4os78XIrMQpZl/nv7JYHcvP5MFIAb374b2zFXsdgEGwmzMtP0Xg8w==
- dependencies:
- "@ungap/promise-all-settled" "1.1.2"
- ansi-colors "4.1.1"
- browser-stdout "1.3.1"
- chokidar "3.4.3"
- debug "4.2.0"
- diff "4.0.2"
- escape-string-regexp "4.0.0"
- find-up "5.0.0"
- glob "7.1.6"
- growl "1.10.5"
- he "1.2.0"
- js-yaml "3.14.0"
- log-symbols "4.0.0"
- minimatch "3.0.4"
- ms "2.1.2"
- nanoid "3.1.12"
- serialize-javascript "5.0.1"
- strip-json-comments "3.1.1"
- supports-color "7.2.0"
- which "2.0.2"
- wide-align "1.1.3"
- workerpool "6.0.2"
- yargs "13.3.2"
- yargs-parser "13.1.2"
- yargs-unparser "2.0.0"
-
-ms@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
- integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
-
-ms@2.1.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
- integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
-
-nan@^2.12.1:
- version "2.14.2"
- resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19"
- integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==
-
-nanoid@3.1.12:
- version "3.1.12"
- resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.12.tgz#6f7736c62e8d39421601e4a0c77623a97ea69654"
- integrity sha512-1qstj9z5+x491jfiC4Nelk+f8XBad7LN20PmyWINJEMRSf3wcAjAWysw1qaA8z6NSKe2sjq1hRSDpBH5paCb6A==
-
-nanomatch@^1.2.9:
- version "1.2.13"
- resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
- integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==
- dependencies:
- arr-diff "^4.0.0"
- array-unique "^0.3.2"
- define-property "^2.0.2"
- extend-shallow "^3.0.2"
- fragment-cache "^0.2.1"
- is-windows "^1.0.2"
- kind-of "^6.0.2"
- object.pick "^1.3.0"
- regex-not "^1.0.0"
- snapdragon "^0.8.1"
- to-regex "^3.0.1"
-
-normalize-path@^2.0.0, normalize-path@^2.0.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
- integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=
- dependencies:
- remove-trailing-separator "^1.0.1"
-
-normalize-path@^3.0.0, normalize-path@~3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
- integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
-
-object-assign@^4.1.0:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
- integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
-
-object-copy@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
- integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw=
- dependencies:
- copy-descriptor "^0.1.0"
- define-property "^0.2.5"
- kind-of "^3.0.3"
-
-object-visit@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
- integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=
- dependencies:
- isobject "^3.0.0"
-
-object.omit@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
- integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=
- dependencies:
- for-own "^0.1.4"
- is-extendable "^0.1.1"
-
-object.pick@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
- integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=
- dependencies:
- isobject "^3.0.1"
-
-once@^1.3.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
- integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
- dependencies:
- wrappy "1"
-
-os-homedir@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
- integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M=
-
-os-tmpdir@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
- integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
-
-output-file-sync@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76"
- integrity sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=
- dependencies:
- graceful-fs "^4.1.4"
- mkdirp "^0.5.1"
- object-assign "^4.1.0"
-
-p-limit@^2.0.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
- integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
- dependencies:
- p-try "^2.0.0"
-
-p-limit@^3.0.2:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
- integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
- dependencies:
- yocto-queue "^0.1.0"
-
-p-locate@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
- integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==
- dependencies:
- p-limit "^2.0.0"
-
-p-locate@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
- integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
- dependencies:
- p-limit "^3.0.2"
-
-p-try@^2.0.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
- integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
-
-parse-glob@^3.0.4:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
- integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw=
- dependencies:
- glob-base "^0.3.0"
- is-dotfile "^1.0.0"
- is-extglob "^1.0.0"
- is-glob "^2.0.0"
-
-pascalcase@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
- integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
-
-path-exists@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
- integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
-
-path-exists@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
- integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
-
-path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
- integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
-
-path-parse@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
-
-picomatch@^2.0.4, picomatch@^2.2.1:
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
- integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
-
-posix-character-classes@^0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
- integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
-
-preserve@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
- integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=
-
-private@^0.1.6, private@^0.1.7, private@^0.1.8:
- version "0.1.8"
- resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
-
-process-nextick-args@~2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
- integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
-
-punycode@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d"
-
-randomatic@^3.0.0:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed"
- integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==
- dependencies:
- is-number "^4.0.0"
- kind-of "^6.0.0"
- math-random "^1.0.1"
-
-randombytes@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
- integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
- dependencies:
- safe-buffer "^5.1.0"
-
-readable-stream@^2.0.2:
- version "2.3.7"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
- integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
- dependencies:
- core-util-is "~1.0.0"
- inherits "~2.0.3"
- isarray "~1.0.0"
- process-nextick-args "~2.0.0"
- safe-buffer "~5.1.1"
- string_decoder "~1.1.1"
- util-deprecate "~1.0.1"
-
-readdirp@^2.0.0:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
- integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==
- dependencies:
- graceful-fs "^4.1.11"
- micromatch "^3.1.10"
- readable-stream "^2.0.2"
-
-readdirp@~3.5.0:
- version "3.5.0"
- resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e"
- integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==
- dependencies:
- picomatch "^2.2.1"
-
-regenerate@^1.2.1:
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f"
-
-regenerator-runtime@^0.10.5:
- version "0.10.5"
- resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658"
- integrity sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=
-
-regenerator-runtime@^0.11.0:
- version "0.11.1"
- resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
- integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
-
-regenerator-transform@^0.10.0:
- version "0.10.1"
- resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd"
- dependencies:
- babel-runtime "^6.18.0"
- babel-types "^6.19.0"
- private "^0.1.6"
-
-regex-cache@^0.4.2:
- version "0.4.4"
- resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd"
- integrity sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==
- dependencies:
- is-equal-shallow "^0.1.3"
-
-regex-not@^1.0.0, regex-not@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
- integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==
- dependencies:
- extend-shallow "^3.0.2"
- safe-regex "^1.1.0"
-
-regexpu-core@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240"
- dependencies:
- regenerate "^1.2.1"
- regjsgen "^0.2.0"
- regjsparser "^0.1.4"
-
-regjsgen@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7"
-
-regjsparser@^0.1.4:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c"
- dependencies:
- jsesc "~0.5.0"
-
-remove-trailing-separator@^1.0.1:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
- integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8=
-
-repeat-element@^1.1.2:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce"
- integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==
-
-repeat-string@^1.5.2, repeat-string@^1.6.1:
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
- integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
-
-repeating@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda"
- integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=
- dependencies:
- is-finite "^1.0.0"
-
-require-directory@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
- integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
-
-require-main-filename@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
- integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
-
-resolve-url@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
- integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
-
-resolve@1.1.7:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
-
-resolve@^1.1.6:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.6.0.tgz#0fbd21278b27b4004481c395349e7aba60a9ff5c"
- dependencies:
- path-parse "^1.0.5"
-
-ret@~0.1.10:
- version "0.1.15"
- resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
- integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
-
-right-align@^0.1.1:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
- dependencies:
- align-text "^0.1.1"
-
-rimraf@^2.5.2:
- version "2.7.1"
- resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
- dependencies:
- glob "^7.1.3"
-
-rollup-plugin-babel@^2.7.1:
- version "2.7.1"
- resolved "https://registry.yarnpkg.com/rollup-plugin-babel/-/rollup-plugin-babel-2.7.1.tgz#16528197b0f938a1536f44683c7a93d573182f57"
- dependencies:
- babel-core "6"
- babel-plugin-transform-es2015-classes "^6.9.0"
- object-assign "^4.1.0"
- rollup-pluginutils "^1.5.0"
-
-rollup-plugin-node-resolve@^2.0.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-2.1.1.tgz#cbb783b0d15b02794d58915350b2f0d902b8ddc8"
- dependencies:
- browser-resolve "^1.11.0"
- builtin-modules "^1.1.0"
- resolve "^1.1.6"
-
-rollup-pluginutils@^1.5.0:
- version "1.5.2"
- resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz#1e156e778f94b7255bfa1b3d0178be8f5c552408"
- dependencies:
- estree-walker "^0.2.1"
- minimatch "^3.0.2"
-
-rollup@^0.41.6:
- version "0.41.6"
- resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.41.6.tgz#e0d05497877a398c104d816d2733a718a7a94e2a"
- dependencies:
- source-map-support "^0.4.0"
-
-safe-buffer@^5.1.0:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
- integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
-
-safe-buffer@~5.1.0, safe-buffer@~5.1.1:
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
- integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
-
-safe-regex@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
- integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4=
- dependencies:
- ret "~0.1.10"
-
-sander@^0.5.0:
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/sander/-/sander-0.5.1.tgz#741e245e231f07cafb6fdf0f133adfa216a502ad"
- dependencies:
- es6-promise "^3.1.2"
- graceful-fs "^4.1.3"
- mkdirp "^0.5.1"
- rimraf "^2.5.2"
-
-serialize-javascript@5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4"
- integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==
- dependencies:
- randombytes "^2.1.0"
-
-set-blocking@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
-
-set-value@^2.0.0, set-value@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
- integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==
- dependencies:
- extend-shallow "^2.0.1"
- is-extendable "^0.1.1"
- is-plain-object "^2.0.3"
- split-string "^3.0.1"
-
-slash@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
- integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=
-
-snapdragon-node@^2.0.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
- integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==
- dependencies:
- define-property "^1.0.0"
- isobject "^3.0.0"
- snapdragon-util "^3.0.1"
-
-snapdragon-util@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2"
- integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==
- dependencies:
- kind-of "^3.2.0"
-
-snapdragon@^0.8.1:
- version "0.8.2"
- resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d"
- integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==
- dependencies:
- base "^0.11.1"
- debug "^2.2.0"
- define-property "^0.2.5"
- extend-shallow "^2.0.1"
- map-cache "^0.2.2"
- source-map "^0.5.6"
- source-map-resolve "^0.5.0"
- use "^3.1.0"
-
-sorcery@^0.10.0:
- version "0.10.0"
- resolved "https://registry.yarnpkg.com/sorcery/-/sorcery-0.10.0.tgz#8ae90ad7d7cb05fc59f1ab0c637845d5c15a52b7"
- dependencies:
- buffer-crc32 "^0.2.5"
- minimist "^1.2.0"
- sander "^0.5.0"
- sourcemap-codec "^1.3.0"
-
-source-map-resolve@^0.5.0:
- version "0.5.3"
- resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
- integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==
- dependencies:
- atob "^2.1.2"
- decode-uri-component "^0.2.0"
- resolve-url "^0.2.1"
- source-map-url "^0.4.0"
- urix "^0.1.0"
-
-source-map-support@^0.4.0, source-map-support@^0.4.15:
- version "0.4.18"
- resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f"
- dependencies:
- source-map "^0.5.6"
-
-source-map-url@^0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
- integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=
-
-source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1:
- version "0.5.7"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
- integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
-
-sourcemap-codec@^1.3.0:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.1.tgz#c8fd92d91889e902a07aee392bdd2c5863958ba2"
-
-split-string@^3.0.1, split-string@^3.0.2:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
- integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==
- dependencies:
- extend-shallow "^3.0.0"
-
-sprintf-js@~1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
- integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
-
-static-extend@^0.1.1:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
- integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=
- dependencies:
- define-property "^0.2.5"
- object-copy "^0.1.0"
-
-"string-width@^1.0.2 || 2":
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
- integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
- dependencies:
- is-fullwidth-code-point "^2.0.0"
- strip-ansi "^4.0.0"
-
-string-width@^3.0.0, string-width@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
- integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
- dependencies:
- emoji-regex "^7.0.1"
- is-fullwidth-code-point "^2.0.0"
- strip-ansi "^5.1.0"
-
-string_decoder@~1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
- integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
- dependencies:
- safe-buffer "~5.1.0"
-
-strip-ansi@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
- integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
- dependencies:
- ansi-regex "^2.0.0"
-
-strip-ansi@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
- integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
- dependencies:
- ansi-regex "^3.0.0"
-
-strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
- integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
- dependencies:
- ansi-regex "^4.1.0"
-
-strip-json-comments@3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
- integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
-
-supports-color@7.2.0, supports-color@^7.1.0:
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
- integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
- dependencies:
- has-flag "^4.0.0"
-
-supports-color@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
- integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
-
-to-fast-properties@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
- integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=
-
-to-object-path@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
- integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=
- dependencies:
- kind-of "^3.0.2"
-
-to-regex-range@^2.1.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38"
- integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=
- dependencies:
- is-number "^3.0.0"
- repeat-string "^1.6.1"
-
-to-regex-range@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
- integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
- dependencies:
- is-number "^7.0.0"
-
-to-regex@^3.0.1, to-regex@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
- integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==
- dependencies:
- define-property "^2.0.2"
- extend-shallow "^3.0.2"
- regex-not "^1.0.2"
- safe-regex "^1.1.0"
-
-trim-right@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
- integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=
-
-typescript@^2.8.1:
- version "2.8.1"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.8.1.tgz#6160e4f8f195d5ba81d4876f9c0cc1fbc0820624"
-
-uglify-js@^2.8.14:
- version "2.8.29"
- resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd"
- dependencies:
- source-map "~0.5.1"
- yargs "~3.10.0"
- optionalDependencies:
- uglify-to-browserify "~1.0.0"
-
-uglify-to-browserify@~1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
-
-union-value@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
- integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==
- dependencies:
- arr-union "^3.1.0"
- get-value "^2.0.6"
- is-extendable "^0.1.1"
- set-value "^2.0.1"
-
-unset-value@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
- integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=
- dependencies:
- has-value "^0.3.1"
- isobject "^3.0.0"
-
-urix@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
- integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
-
-use@^3.1.0:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
- integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
-
-user-home@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190"
- integrity sha1-K1viOjK2Onyd640PKNSFcko98ZA=
-
-util-deprecate@~1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
- integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
-
-v8flags@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4"
- integrity sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=
- dependencies:
- user-home "^1.1.1"
-
-which-module@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
- integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
-
-which@2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
- integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
- dependencies:
- isexe "^2.0.0"
-
-wide-align@1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
- integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==
- dependencies:
- string-width "^1.0.2 || 2"
-
-window-size@0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
-
-wordwrap@0.0.2:
- version "0.0.2"
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
-
-workerpool@6.0.2:
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.0.2.tgz#e241b43d8d033f1beb52c7851069456039d1d438"
- integrity sha512-DSNyvOpFKrNusaaUwk+ej6cBj1bmhLcBfj80elGk+ZIo5JSkq+unB1dLKEOcNfJDZgjGICfhQ0Q5TbP0PvF4+Q==
-
-wrap-ansi@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09"
- integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==
- dependencies:
- ansi-styles "^3.2.0"
- string-width "^3.0.0"
- strip-ansi "^5.0.0"
-
-wrappy@1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
- integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
-
-y18n@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4"
- integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==
-
-yargs-parser@13.1.2, yargs-parser@^13.1.2:
- version "13.1.2"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38"
- integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==
- dependencies:
- camelcase "^5.0.0"
- decamelize "^1.2.0"
-
-yargs-unparser@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb"
- integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==
- dependencies:
- camelcase "^6.0.0"
- decamelize "^4.0.0"
- flat "^5.0.2"
- is-plain-obj "^2.1.0"
-
-yargs@13.3.2:
- version "13.3.2"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd"
- integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==
- dependencies:
- cliui "^5.0.0"
- find-up "^3.0.0"
- get-caller-file "^2.0.1"
- require-directory "^2.1.1"
- require-main-filename "^2.0.0"
- set-blocking "^2.0.0"
- string-width "^3.0.0"
- which-module "^2.0.0"
- y18n "^4.0.0"
- yargs-parser "^13.1.2"
-
-yargs@~3.10.0:
- version "3.10.0"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
- dependencies:
- camelcase "^1.0.2"
- cliui "^2.1.0"
- decamelize "^1.0.0"
- window-size "0.1.0"
-
-yocto-queue@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
- integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
diff --git a/deps/npm/node_modules/uuid/AUTHORS b/deps/npm/node_modules/uuid/AUTHORS
deleted file mode 100644
index 5a10523062f..00000000000
--- a/deps/npm/node_modules/uuid/AUTHORS
+++ /dev/null
@@ -1,5 +0,0 @@
-Robert Kieffer <robert@broofa.com>
-Christoph Tavan <dev@tavan.de>
-AJ ONeal <coolaj86@gmail.com>
-Vincent Voyer <vincent@zeroload.net>
-Roman Shtylman <shtylman@gmail.com>
diff --git a/deps/npm/node_modules/uuid/CHANGELOG.md b/deps/npm/node_modules/uuid/CHANGELOG.md
deleted file mode 100644
index f811b8a0cb9..00000000000
--- a/deps/npm/node_modules/uuid/CHANGELOG.md
+++ /dev/null
@@ -1,119 +0,0 @@
-# Changelog
-
-All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
-
-## [3.4.0](https://github.com/uuidjs/uuid/compare/v3.3.3...v3.4.0) (2020-01-16)
-
-
-### Features
-
-* rename repository to github:uuidjs/uuid ([#351](https://github.com/uuidjs/uuid/issues/351)) ([e2d7314](https://github.com/uuidjs/uuid/commit/e2d7314)), closes [#338](https://github.com/uuidjs/uuid/issues/338)
-
-### [3.3.3](https://github.com/uuidjs/uuid/compare/v3.3.2...v3.3.3) (2019-08-19)
-
-<a name="3.3.2"></a>
-## [3.3.2](https://github.com/uuidjs/uuid/compare/v3.3.1...v3.3.2) (2018-06-28)
-
-
-### Bug Fixes
-
-* typo ([305d877](https://github.com/uuidjs/uuid/commit/305d877))
-
-
-
-<a name="3.3.1"></a>
-## [3.3.1](https://github.com/uuidjs/uuid/compare/v3.3.0...v3.3.1) (2018-06-28)
-
-
-### Bug Fixes
-
-* fix [#284](https://github.com/uuidjs/uuid/issues/284) by setting function name in try-catch ([f2a60f2](https://github.com/uuidjs/uuid/commit/f2a60f2))
-
-
-
-<a name="3.3.0"></a>
-# [3.3.0](https://github.com/uuidjs/uuid/compare/v3.2.1...v3.3.0) (2018-06-22)
-
-
-### Bug Fixes
-
-* assignment to readonly property to allow running in strict mode ([#270](https://github.com/uuidjs/uuid/issues/270)) ([d062fdc](https://github.com/uuidjs/uuid/commit/d062fdc))
-* fix [#229](https://github.com/uuidjs/uuid/issues/229) ([c9684d4](https://github.com/uuidjs/uuid/commit/c9684d4))
-* Get correct version of IE11 crypto ([#274](https://github.com/uuidjs/uuid/issues/274)) ([153d331](https://github.com/uuidjs/uuid/commit/153d331))
-* mem issue when generating uuid ([#267](https://github.com/uuidjs/uuid/issues/267)) ([c47702c](https://github.com/uuidjs/uuid/commit/c47702c))
-
-### Features
-
-* enforce Conventional Commit style commit messages ([#282](https://github.com/uuidjs/uuid/issues/282)) ([cc9a182](https://github.com/uuidjs/uuid/commit/cc9a182))
-
-
-<a name="3.2.1"></a>
-## [3.2.1](https://github.com/uuidjs/uuid/compare/v3.2.0...v3.2.1) (2018-01-16)
-
-
-### Bug Fixes
-
-* use msCrypto if available. Fixes [#241](https://github.com/uuidjs/uuid/issues/241) ([#247](https://github.com/uuidjs/uuid/issues/247)) ([1fef18b](https://github.com/uuidjs/uuid/commit/1fef18b))
-
-
-
-<a name="3.2.0"></a>
-# [3.2.0](https://github.com/uuidjs/uuid/compare/v3.1.0...v3.2.0) (2018-01-16)
-
-
-### Bug Fixes
-
-* remove mistakenly added typescript dependency, rollback version (standard-version will auto-increment) ([09fa824](https://github.com/uuidjs/uuid/commit/09fa824))
-* use msCrypto if available. Fixes [#241](https://github.com/uuidjs/uuid/issues/241) ([#247](https://github.com/uuidjs/uuid/issues/247)) ([1fef18b](https://github.com/uuidjs/uuid/commit/1fef18b))
-
-
-### Features
-
-* Add v3 Support ([#217](https://github.com/uuidjs/uuid/issues/217)) ([d94f726](https://github.com/uuidjs/uuid/commit/d94f726))
-
-
-# [3.1.0](https://github.com/uuidjs/uuid/compare/v3.1.0...v3.0.1) (2017-06-17)
-
-### Bug Fixes
-
-* (fix) Add .npmignore file to exclude test/ and other non-essential files from packing. (#183)
-* Fix typo (#178)
-* Simple typo fix (#165)
-
-### Features
-* v5 support in CLI (#197)
-* V5 support (#188)
-
-
-# 3.0.1 (2016-11-28)
-
-* split uuid versions into separate files
-
-
-# 3.0.0 (2016-11-17)
-
-* remove .parse and .unparse
-
-
-# 2.0.0
-
-* Removed uuid.BufferClass
-
-
-# 1.4.0
-
-* Improved module context detection
-* Removed public RNG functions
-
-
-# 1.3.2
-
-* Improve tests and handling of v1() options (Issue #24)
-* Expose RNG option to allow for perf testing with different generators
-
-
-# 1.3.0
-
-* Support for version 1 ids, thanks to [@ctavan](https://github.com/ctavan)!
-* Support for node.js crypto API
-* De-emphasizing performance in favor of a) cryptographic quality PRNGs where available and b) more manageable code
diff --git a/deps/npm/node_modules/uuid/LICENSE.md b/deps/npm/node_modules/uuid/LICENSE.md
deleted file mode 100644
index 8c84e398668..00000000000
--- a/deps/npm/node_modules/uuid/LICENSE.md
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2010-2016 Robert Kieffer 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.
diff --git a/deps/npm/node_modules/uuid/README.md b/deps/npm/node_modules/uuid/README.md
deleted file mode 100644
index 1752e4751fc..00000000000
--- a/deps/npm/node_modules/uuid/README.md
+++ /dev/null
@@ -1,276 +0,0 @@
-<!--
- -- This file is auto-generated from README_js.md. Changes should be made there.
- -->
-
-# uuid [![Build Status](https://secure.travis-ci.org/kelektiv/node-uuid.svg?branch=master)](http://travis-ci.org/kelektiv/node-uuid) #
-
-Simple, fast generation of [RFC4122](http://www.ietf.org/rfc/rfc4122.txt) UUIDS.
-
-Features:
-
-* Support for version 1, 3, 4 and 5 UUIDs
-* Cross-platform
-* Uses cryptographically-strong random number APIs (when available)
-* Zero-dependency, small footprint (... but not [this small](https://gist.github.com/982883))
-
-[**Deprecation warning**: The use of `require('uuid')` is deprecated and will not be
-supported after version 3.x of this module. Instead, use `require('uuid/[v1|v3|v4|v5]')` as shown in the examples below.]
-
-## Quickstart - CommonJS (Recommended)
-
-```shell
-npm install uuid
-```
-
-Then generate your uuid version of choice ...
-
-Version 1 (timestamp):
-
-```javascript
-const uuidv1 = require('uuid/v1');
-uuidv1(); // ⇨ '2c5ea4c0-4067-11e9-8bad-9b1deb4d3b7d'
-
-```
-
-Version 3 (namespace):
-
-```javascript
-const uuidv3 = require('uuid/v3');
-
-// ... using predefined DNS namespace (for domain names)
-uuidv3('hello.example.com', uuidv3.DNS); // ⇨ '9125a8dc-52ee-365b-a5aa-81b0b3681cf6'
-
-// ... using predefined URL namespace (for, well, URLs)
-uuidv3('http://example.com/hello', uuidv3.URL); // ⇨ 'c6235813-3ba4-3801-ae84-e0a6ebb7d138'
-
-// ... using a custom namespace
-//
-// Note: Custom namespaces should be a UUID string specific to your application!
-// E.g. the one here was generated using this modules `uuid` CLI.
-const MY_NAMESPACE = '1b671a64-40d5-491e-99b0-da01ff1f3341';
-uuidv3('Hello, World!', MY_NAMESPACE); // ⇨ 'e8b5a51d-11c8-3310-a6ab-367563f20686'
-
-```
-
-Version 4 (random):
-
-```javascript
-const uuidv4 = require('uuid/v4');
-uuidv4(); // ⇨ '1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed'
-
-```
-
-Version 5 (namespace):
-
-```javascript
-const uuidv5 = require('uuid/v5');
-
-// ... using predefined DNS namespace (for domain names)
-uuidv5('hello.example.com', uuidv5.DNS); // ⇨ 'fdda765f-fc57-5604-a269-52a7df8164ec'
-
-// ... using predefined URL namespace (for, well, URLs)
-uuidv5('http://example.com/hello', uuidv5.URL); // ⇨ '3bbcee75-cecc-5b56-8031-b6641c1ed1f1'
-
-// ... using a custom namespace
-//
-// Note: Custom namespaces should be a UUID string specific to your application!
-// E.g. the one here was generated using this modules `uuid` CLI.
-const MY_NAMESPACE = '1b671a64-40d5-491e-99b0-da01ff1f3341';
-uuidv5('Hello, World!', MY_NAMESPACE); // ⇨ '630eb68f-e0fa-5ecc-887a-7c7a62614681'
-
-```
-
-## API
-
-### Version 1
-
-```javascript
-const uuidv1 = require('uuid/v1');
-
-// Incantations
-uuidv1();
-uuidv1(options);
-uuidv1(options, buffer, offset);
-```
-
-Generate and return a RFC4122 v1 (timestamp-based) UUID.
-
-* `options` - (Object) Optional uuid state to apply. Properties may include:
-
- * `node` - (Array) Node id as Array of 6 bytes (per 4.1.6). Default: Randomly generated ID. See note 1.
- * `clockseq` - (Number between 0 - 0x3fff) RFC clock sequence. Default: An internally maintained clockseq is used.
- * `msecs` - (Number) Time in milliseconds since unix Epoch. Default: The current time is used.
- * `nsecs` - (Number between 0-9999) additional time, in 100-nanosecond units. Ignored if `msecs` is unspecified. Default: internal uuid counter is used, as per 4.2.1.2.
-
-* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.
-* `offset` - (Number) Starting index in `buffer` at which to begin writing.
-
-Returns `buffer`, if specified, otherwise the string form of the UUID
-
-Note: The default [node id](https://tools.ietf.org/html/rfc4122#section-4.1.6) (the last 12 digits in the UUID) is generated once, randomly, on process startup, and then remains unchanged for the duration of the process.
-
-Example: Generate string UUID with fully-specified options
-
-```javascript
-const v1options = {
- node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab],
- clockseq: 0x1234,
- msecs: new Date('2011-11-01').getTime(),
- nsecs: 5678
-};
-uuidv1(v1options); // ⇨ '710b962e-041c-11e1-9234-0123456789ab'
-
-```
-
-Example: In-place generation of two binary IDs
-
-```javascript
-// Generate two ids in an array
-const arr = new Array();
-uuidv1(null, arr, 0); // ⇨
- // [
- // 44, 94, 164, 192, 64, 103,
- // 17, 233, 146, 52, 155, 29,
- // 235, 77, 59, 125
- // ]
-uuidv1(null, arr, 16); // ⇨
- // [
- // 44, 94, 164, 192, 64, 103, 17, 233,
- // 146, 52, 155, 29, 235, 77, 59, 125,
- // 44, 94, 164, 193, 64, 103, 17, 233,
- // 146, 52, 155, 29, 235, 77, 59, 125
- // ]
-
-```
-
-### Version 3
-
-```javascript
-const uuidv3 = require('uuid/v3');
-
-// Incantations
-uuidv3(name, namespace);
-uuidv3(name, namespace, buffer);
-uuidv3(name, namespace, buffer, offset);
-```
-
-Generate and return a RFC4122 v3 UUID.
-
-* `name` - (String | Array[]) "name" to create UUID with
-* `namespace` - (String | Array[]) "namespace" UUID either as a String or Array[16] of byte values
-* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.
-* `offset` - (Number) Starting index in `buffer` at which to begin writing. Default = 0
-
-Returns `buffer`, if specified, otherwise the string form of the UUID
-
-Example:
-
-```javascript
-uuidv3('hello world', MY_NAMESPACE); // ⇨ '042ffd34-d989-321c-ad06-f60826172424'
-
-```
-
-### Version 4
-
-```javascript
-const uuidv4 = require('uuid/v4')
-
-// Incantations
-uuidv4();
-uuidv4(options);
-uuidv4(options, buffer, offset);
-```
-
-Generate and return a RFC4122 v4 UUID.
-
-* `options` - (Object) Optional uuid state to apply. Properties may include:
- * `random` - (Number[16]) Array of 16 numbers (0-255) to use in place of randomly generated values
- * `rng` - (Function) Random # generator function that returns an Array[16] of byte values (0-255)
-* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.
-* `offset` - (Number) Starting index in `buffer` at which to begin writing.
-
-Returns `buffer`, if specified, otherwise the string form of the UUID
-
-Example: Generate string UUID with predefined `random` values
-
-```javascript
-const v4options = {
- random: [
- 0x10, 0x91, 0x56, 0xbe, 0xc4, 0xfb, 0xc1, 0xea,
- 0x71, 0xb4, 0xef, 0xe1, 0x67, 0x1c, 0x58, 0x36
- ]
-};
-uuidv4(v4options); // ⇨ '109156be-c4fb-41ea-b1b4-efe1671c5836'
-
-```
-
-Example: Generate two IDs in a single buffer
-
-```javascript
-const buffer = new Array();
-uuidv4(null, buffer, 0); // ⇨
- // [
- // 155, 29, 235, 77, 59,
- // 125, 75, 173, 155, 221,
- // 43, 13, 123, 61, 203,
- // 109
- // ]
-uuidv4(null, buffer, 16); // ⇨
- // [
- // 155, 29, 235, 77, 59, 125, 75, 173,
- // 155, 221, 43, 13, 123, 61, 203, 109,
- // 27, 157, 107, 205, 187, 253, 75, 45,
- // 155, 93, 171, 141, 251, 189, 75, 237
- // ]
-
-```
-
-### Version 5
-
-```javascript
-const uuidv5 = require('uuid/v5');
-
-// Incantations
-uuidv5(name, namespace);
-uuidv5(name, namespace, buffer);
-uuidv5(name, namespace, buffer, offset);
-```
-
-Generate and return a RFC4122 v5 UUID.
-
-* `name` - (String | Array[]) "name" to create UUID with
-* `namespace` - (String | Array[]) "namespace" UUID either as a String or Array[16] of byte values
-* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.
-* `offset` - (Number) Starting index in `buffer` at which to begin writing. Default = 0
-
-Returns `buffer`, if specified, otherwise the string form of the UUID
-
-Example:
-
-```javascript
-uuidv5('hello world', MY_NAMESPACE); // ⇨ '9f282611-e0fd-5650-8953-89c8e342da0b'
-
-```
-
-## Command Line
-
-UUIDs can be generated from the command line with the `uuid` command.
-
-```shell
-$ uuid
-ddeb27fb-d9a0-4624-be4d-4615062daed4
-
-$ uuid v1
-02d37060-d446-11e7-a9fa-7bdae751ebe1
-```
-
-Type `uuid --help` for usage details
-
-## Testing
-
-```shell
-npm test
-```
-
-----
-Markdown generated from [README_js.md](README_js.md) by [![RunMD Logo](http://i.imgur.com/h0FVyzU.png)](https://github.com/broofa/runmd) \ No newline at end of file
diff --git a/deps/npm/node_modules/uuid/bin/uuid b/deps/npm/node_modules/uuid/bin/uuid
deleted file mode 100755
index 502626e60f5..00000000000
--- a/deps/npm/node_modules/uuid/bin/uuid
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/usr/bin/env node
-var assert = require('assert');
-
-function usage() {
- console.log('Usage:');
- console.log(' uuid');
- console.log(' uuid v1');
- console.log(' uuid v3 <name> <namespace uuid>');
- console.log(' uuid v4');
- console.log(' uuid v5 <name> <namespace uuid>');
- console.log(' uuid --help');
- console.log('\nNote: <namespace uuid> may be "URL" or "DNS" to use the corresponding UUIDs defined by RFC4122');
-}
-
-var args = process.argv.slice(2);
-
-if (args.indexOf('--help') >= 0) {
- usage();
- process.exit(0);
-}
-var version = args.shift() || 'v4';
-
-switch (version) {
- case 'v1':
- var uuidV1 = require('../v1');
- console.log(uuidV1());
- break;
-
- case 'v3':
- var uuidV3 = require('../v3');
-
- var name = args.shift();
- var namespace = args.shift();
- assert(name != null, 'v3 name not specified');
- assert(namespace != null, 'v3 namespace not specified');
-
- if (namespace == 'URL') namespace = uuidV3.URL;
- if (namespace == 'DNS') namespace = uuidV3.DNS;
-
- console.log(uuidV3(name, namespace));
- break;
-
- case 'v4':
- var uuidV4 = require('../v4');
- console.log(uuidV4());
- break;
-
- case 'v5':
- var uuidV5 = require('../v5');
-
- var name = args.shift();
- var namespace = args.shift();
- assert(name != null, 'v5 name not specified');
- assert(namespace != null, 'v5 namespace not specified');
-
- if (namespace == 'URL') namespace = uuidV5.URL;
- if (namespace == 'DNS') namespace = uuidV5.DNS;
-
- console.log(uuidV5(name, namespace));
- break;
-
- default:
- usage();
- process.exit(1);
-}
diff --git a/deps/npm/node_modules/uuid/index.js b/deps/npm/node_modules/uuid/index.js
deleted file mode 100644
index e96791ab4ba..00000000000
--- a/deps/npm/node_modules/uuid/index.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var v1 = require('./v1');
-var v4 = require('./v4');
-
-var uuid = v4;
-uuid.v1 = v1;
-uuid.v4 = v4;
-
-module.exports = uuid;
diff --git a/deps/npm/node_modules/uuid/lib/bytesToUuid.js b/deps/npm/node_modules/uuid/lib/bytesToUuid.js
deleted file mode 100644
index 24b60412a2d..00000000000
--- a/deps/npm/node_modules/uuid/lib/bytesToUuid.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
- * Convert array of 16 byte values to UUID string format of the form:
- * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
- */
-var byteToHex = [];
-for (var i = 0; i < 256; ++i) {
- byteToHex[i] = (i + 0x100).toString(16).substr(1);
-}
-
-function bytesToUuid(buf, offset) {
- var i = offset || 0;
- var bth = byteToHex;
- // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4
- return ([
- bth[buf[i++]], bth[buf[i++]],
- bth[buf[i++]], bth[buf[i++]], '-',
- bth[buf[i++]], bth[buf[i++]], '-',
- bth[buf[i++]], bth[buf[i++]], '-',
- bth[buf[i++]], bth[buf[i++]], '-',
- bth[buf[i++]], bth[buf[i++]],
- bth[buf[i++]], bth[buf[i++]],
- bth[buf[i++]], bth[buf[i++]]
- ]).join('');
-}
-
-module.exports = bytesToUuid;
diff --git a/deps/npm/node_modules/uuid/lib/md5-browser.js b/deps/npm/node_modules/uuid/lib/md5-browser.js
deleted file mode 100644
index 9b3b6c7eff8..00000000000
--- a/deps/npm/node_modules/uuid/lib/md5-browser.js
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- * Browser-compatible JavaScript MD5
- *
- * Modification of JavaScript MD5
- * https://github.com/blueimp/JavaScript-MD5
- *
- * Copyright 2011, Sebastian Tschan
- * https://blueimp.net
- *
- * Licensed under the MIT license:
- * https://opensource.org/licenses/MIT
- *
- * Based on
- * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
- * Digest Algorithm, as defined in RFC 1321.
- * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009
- * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
- * Distributed under the BSD License
- * See http://pajhome.org.uk/crypt/md5 for more info.
- */
-
-'use strict';
-
-function md5(bytes) {
- if (typeof(bytes) == 'string') {
- var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape
- bytes = new Array(msg.length);
- for (var i = 0; i < msg.length; i++) bytes[i] = msg.charCodeAt(i);
- }
-
- return md5ToHexEncodedArray(
- wordsToMd5(
- bytesToWords(bytes)
- , bytes.length * 8)
- );
-}
-
-
-/*
-* Convert an array of little-endian words to an array of bytes
-*/
-function md5ToHexEncodedArray(input) {
- var i;
- var x;
- var output = [];
- var length32 = input.length * 32;
- var hexTab = '0123456789abcdef';
- var hex;
-
- for (i = 0; i < length32; i += 8) {
- x = (input[i >> 5] >>> (i % 32)) & 0xFF;
-
- hex = parseInt(hexTab.charAt((x >>> 4) & 0x0F) + hexTab.charAt(x & 0x0F), 16);
-
- output.push(hex);
- }
- return output;
-}
-
-/*
-* Calculate the MD5 of an array of little-endian words, and a bit length.
-*/
-function wordsToMd5(x, len) {
- /* append padding */
- x[len >> 5] |= 0x80 << (len % 32);
- x[(((len + 64) >>> 9) << 4) + 14] = len;
-
- var i;
- var olda;
- var oldb;
- var oldc;
- var oldd;
- var a = 1732584193;
- var b = -271733879;
- var c = -1732584194;
-
- var d = 271733878;
-
- for (i = 0; i < x.length; i += 16) {
- olda = a;
- oldb = b;
- oldc = c;
- oldd = d;
-
- a = md5ff(a, b, c, d, x[i], 7, -680876936);
- d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);
- c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);
- b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);
- a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);
- d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);
- c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);
- b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);
- a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);
- d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);
- c = md5ff(c, d, a, b, x[i + 10], 17, -42063);
- b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);
- a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);
- d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);
- c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);
- b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);
-
- a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);
- d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);
- c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);
- b = md5gg(b, c, d, a, x[i], 20, -373897302);
- a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);
- d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);
- c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);
- b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);
- a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);
- d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);
- c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);
- b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);
- a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);
- d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);
- c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);
- b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);
-
- a = md5hh(a, b, c, d, x[i + 5], 4, -378558);
- d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);
- c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);
- b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);
- a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);
- d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);
- c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);
- b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);
- a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);
- d = md5hh(d, a, b, c, x[i], 11, -358537222);
- c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);
- b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);
- a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);
- d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);
- c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);
- b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);
-
- a = md5ii(a, b, c, d, x[i], 6, -198630844);
- d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);
- c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);
- b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);
- a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);
- d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);
- c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);
- b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);
- a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);
- d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);
- c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);
- b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);
- a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);
- d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);
- c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);
- b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);
-
- a = safeAdd(a, olda);
- b = safeAdd(b, oldb);
- c = safeAdd(c, oldc);
- d = safeAdd(d, oldd);
- }
- return [a, b, c, d];
-}
-
-/*
-* Convert an array bytes to an array of little-endian words
-* Characters >255 have their high-byte silently ignored.
-*/
-function bytesToWords(input) {
- var i;
- var output = [];
- output[(input.length >> 2) - 1] = undefined;
- for (i = 0; i < output.length; i += 1) {
- output[i] = 0;
- }
- var length8 = input.length * 8;
- for (i = 0; i < length8; i += 8) {
- output[i >> 5] |= (input[(i / 8)] & 0xFF) << (i % 32);
- }
-
- return output;
-}
-
-/*
-* Add integers, wrapping at 2^32. This uses 16-bit operations internally
-* to work around bugs in some JS interpreters.
-*/
-function safeAdd(x, y) {
- var lsw = (x & 0xFFFF) + (y & 0xFFFF);
- var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
- return (msw << 16) | (lsw & 0xFFFF);
-}
-
-/*
-* Bitwise rotate a 32-bit number to the left.
-*/
-function bitRotateLeft(num, cnt) {
- return (num << cnt) | (num >>> (32 - cnt));
-}
-
-/*
-* These functions implement the four basic operations the algorithm uses.
-*/
-function md5cmn(q, a, b, x, s, t) {
- return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);
-}
-function md5ff(a, b, c, d, x, s, t) {
- return md5cmn((b & c) | ((~b) & d), a, b, x, s, t);
-}
-function md5gg(a, b, c, d, x, s, t) {
- return md5cmn((b & d) | (c & (~d)), a, b, x, s, t);
-}
-function md5hh(a, b, c, d, x, s, t) {
- return md5cmn(b ^ c ^ d, a, b, x, s, t);
-}
-function md5ii(a, b, c, d, x, s, t) {
- return md5cmn(c ^ (b | (~d)), a, b, x, s, t);
-}
-
-module.exports = md5;
diff --git a/deps/npm/node_modules/uuid/lib/md5.js b/deps/npm/node_modules/uuid/lib/md5.js
deleted file mode 100644
index 7044b872f57..00000000000
--- a/deps/npm/node_modules/uuid/lib/md5.js
+++ /dev/null
@@ -1,25 +0,0 @@
-'use strict';
-
-var crypto = require('crypto');
-
-function md5(bytes) {
- if (typeof Buffer.from === 'function') {
- // Modern Buffer API
- if (Array.isArray(bytes)) {
- bytes = Buffer.from(bytes);
- } else if (typeof bytes === 'string') {
- bytes = Buffer.from(bytes, 'utf8');
- }
- } else {
- // Pre-v4 Buffer API
- if (Array.isArray(bytes)) {
- bytes = new Buffer(bytes);
- } else if (typeof bytes === 'string') {
- bytes = new Buffer(bytes, 'utf8');
- }
- }
-
- return crypto.createHash('md5').update(bytes).digest();
-}
-
-module.exports = md5;
diff --git a/deps/npm/node_modules/uuid/lib/rng-browser.js b/deps/npm/node_modules/uuid/lib/rng-browser.js
deleted file mode 100644
index 6361fb81479..00000000000
--- a/deps/npm/node_modules/uuid/lib/rng-browser.js
+++ /dev/null
@@ -1,34 +0,0 @@
-// Unique ID creation requires a high quality random # generator. In the
-// browser this is a little complicated due to unknown quality of Math.random()
-// and inconsistent support for the `crypto` API. We do the best we can via
-// feature-detection
-
-// getRandomValues needs to be invoked in a context where "this" is a Crypto
-// implementation. Also, find the complete implementation of crypto on IE11.
-var getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||
- (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));
-
-if (getRandomValues) {
- // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto
- var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef
-
- module.exports = function whatwgRNG() {
- getRandomValues(rnds8);
- return rnds8;
- };
-} else {
- // Math.random()-based (RNG)
- //
- // If all else fails, use Math.random(). It's fast, but is of unspecified
- // quality.
- var rnds = new Array(16);
-
- module.exports = function mathRNG() {
- for (var i = 0, r; i < 16; i++) {
- if ((i & 0x03) === 0) r = Math.random() * 0x100000000;
- rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;
- }
-
- return rnds;
- };
-}
diff --git a/deps/npm/node_modules/uuid/lib/rng.js b/deps/npm/node_modules/uuid/lib/rng.js
deleted file mode 100644
index 58f0dc9cfb6..00000000000
--- a/deps/npm/node_modules/uuid/lib/rng.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// Unique ID creation requires a high quality random # generator. In node.js
-// this is pretty straight-forward - we use the crypto API.
-
-var crypto = require('crypto');
-
-module.exports = function nodeRNG() {
- return crypto.randomBytes(16);
-};
diff --git a/deps/npm/node_modules/uuid/lib/sha1-browser.js b/deps/npm/node_modules/uuid/lib/sha1-browser.js
deleted file mode 100644
index 5758ed75c96..00000000000
--- a/deps/npm/node_modules/uuid/lib/sha1-browser.js
+++ /dev/null
@@ -1,89 +0,0 @@
-// Adapted from Chris Veness' SHA1 code at
-// http://www.movable-type.co.uk/scripts/sha1.html
-'use strict';
-
-function f(s, x, y, z) {
- switch (s) {
- case 0: return (x & y) ^ (~x & z);
- case 1: return x ^ y ^ z;
- case 2: return (x & y) ^ (x & z) ^ (y & z);
- case 3: return x ^ y ^ z;
- }
-}
-
-function ROTL(x, n) {
- return (x << n) | (x>>> (32 - n));
-}
-
-function sha1(bytes) {
- var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];
- var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];
-
- if (typeof(bytes) == 'string') {
- var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape
- bytes = new Array(msg.length);
- for (var i = 0; i < msg.length; i++) bytes[i] = msg.charCodeAt(i);
- }
-
- bytes.push(0x80);
-
- var l = bytes.length/4 + 2;
- var N = Math.ceil(l/16);
- var M = new Array(N);
-
- for (var i=0; i<N; i++) {
- M[i] = new Array(16);
- for (var j=0; j<16; j++) {
- M[i][j] =
- bytes[i * 64 + j * 4] << 24 |
- bytes[i * 64 + j * 4 + 1] << 16 |
- bytes[i * 64 + j * 4 + 2] << 8 |
- bytes[i * 64 + j * 4 + 3];
- }
- }
-
- M[N - 1][14] = ((bytes.length - 1) * 8) /
- Math.pow(2, 32); M[N - 1][14] = Math.floor(M[N - 1][14]);
- M[N - 1][15] = ((bytes.length - 1) * 8) & 0xffffffff;
-
- for (var i=0; i<N; i++) {
- var W = new Array(80);
-
- for (var t=0; t<16; t++) W[t] = M[i][t];
- for (var t=16; t<80; t++) {
- W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);
- }
-
- var a = H[0];
- var b = H[1];
- var c = H[2];
- var d = H[3];
- var e = H[4];
-
- for (var t=0; t<80; t++) {
- var s = Math.floor(t/20);
- var T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0;
- e = d;
- d = c;
- c = ROTL(b, 30) >>> 0;
- b = a;
- a = T;
- }
-
- H[0] = (H[0] + a) >>> 0;
- H[1] = (H[1] + b) >>> 0;
- H[2] = (H[2] + c) >>> 0;
- H[3] = (H[3] + d) >>> 0;
- H[4] = (H[4] + e) >>> 0;
- }
-
- return [
- H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff,
- H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff,
- H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff,
- H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff,
- H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff
- ];
-}
-
-module.exports = sha1;
diff --git a/deps/npm/node_modules/uuid/lib/sha1.js b/deps/npm/node_modules/uuid/lib/sha1.js
deleted file mode 100644
index 0b54b25072c..00000000000
--- a/deps/npm/node_modules/uuid/lib/sha1.js
+++ /dev/null
@@ -1,25 +0,0 @@
-'use strict';
-
-var crypto = require('crypto');
-
-function sha1(bytes) {
- if (typeof Buffer.from === 'function') {
- // Modern Buffer API
- if (Array.isArray(bytes)) {
- bytes = Buffer.from(bytes);
- } else if (typeof bytes === 'string') {
- bytes = Buffer.from(bytes, 'utf8');
- }
- } else {
- // Pre-v4 Buffer API
- if (Array.isArray(bytes)) {
- bytes = new Buffer(bytes);
- } else if (typeof bytes === 'string') {
- bytes = new Buffer(bytes, 'utf8');
- }
- }
-
- return crypto.createHash('sha1').update(bytes).digest();
-}
-
-module.exports = sha1;
diff --git a/deps/npm/node_modules/uuid/lib/v35.js b/deps/npm/node_modules/uuid/lib/v35.js
deleted file mode 100644
index 8b066cc5e3a..00000000000
--- a/deps/npm/node_modules/uuid/lib/v35.js
+++ /dev/null
@@ -1,57 +0,0 @@
-var bytesToUuid = require('./bytesToUuid');
-
-function uuidToBytes(uuid) {
- // Note: We assume we're being passed a valid uuid string
- var bytes = [];
- uuid.replace(/[a-fA-F0-9]{2}/g, function(hex) {
- bytes.push(parseInt(hex, 16));
- });
-
- return bytes;
-}
-
-function stringToBytes(str) {
- str = unescape(encodeURIComponent(str)); // UTF8 escape
- var bytes = new Array(str.length);
- for (var i = 0; i < str.length; i++) {
- bytes[i] = str.charCodeAt(i);
- }
- return bytes;
-}
-
-module.exports = function(name, version, hashfunc) {
- var generateUUID = function(value, namespace, buf, offset) {
- var off = buf && offset || 0;
-
- if (typeof(value) == 'string') value = stringToBytes(value);
- if (typeof(namespace) == 'string') namespace = uuidToBytes(namespace);
-
- if (!Array.isArray(value)) throw TypeError('value must be an array of bytes');
- if (!Array.isArray(namespace) || namespace.length !== 16) throw TypeError('namespace must be uuid string or an Array of 16 byte values');
-
- // Per 4.3
- var bytes = hashfunc(namespace.concat(value));
- bytes[6] = (bytes[6] & 0x0f) | version;
- bytes[8] = (bytes[8] & 0x3f) | 0x80;
-
- if (buf) {
- for (var idx = 0; idx < 16; ++idx) {
- buf[off+idx] = bytes[idx];
- }
- }
-
- return buf || bytesToUuid(bytes);
- };
-
- // Function#name is not settable on some platforms (#270)
- try {
- generateUUID.name = name;
- } catch (err) {
- }
-
- // Pre-defined namespaces, per Appendix C
- generateUUID.DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';
- generateUUID.URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';
-
- return generateUUID;
-};
diff --git a/deps/npm/node_modules/uuid/package.json b/deps/npm/node_modules/uuid/package.json
deleted file mode 100644
index efc07b8f6c3..00000000000
--- a/deps/npm/node_modules/uuid/package.json
+++ /dev/null
@@ -1,49 +0,0 @@
-{
- "name": "uuid",
- "version": "3.4.0",
- "description": "RFC4122 (v1, v4, and v5) UUIDs",
- "commitlint": {
- "extends": [
- "@commitlint/config-conventional"
- ]
- },
- "keywords": [
- "uuid",
- "guid",
- "rfc4122"
- ],
- "license": "MIT",
- "bin": {
- "uuid": "./bin/uuid"
- },
- "devDependencies": {
- "@commitlint/cli": "~8.2.0",
- "@commitlint/config-conventional": "~8.2.0",
- "eslint": "~6.4.0",
- "husky": "~3.0.5",
- "mocha": "6.2.0",
- "runmd": "1.2.1",
- "standard-version": "7.0.0"
- },
- "scripts": {
- "lint": "eslint .",
- "test": "npm run lint && mocha test/test.js",
- "md": "runmd --watch --output=README.md README_js.md",
- "release": "standard-version",
- "prepare": "runmd --output=README.md README_js.md"
- },
- "browser": {
- "./lib/rng.js": "./lib/rng-browser.js",
- "./lib/sha1.js": "./lib/sha1-browser.js",
- "./lib/md5.js": "./lib/md5-browser.js"
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/uuidjs/uuid.git"
- },
- "husky": {
- "hooks": {
- "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
- }
- }
-}
diff --git a/deps/npm/node_modules/uuid/v1.js b/deps/npm/node_modules/uuid/v1.js
deleted file mode 100644
index 8c245de43db..00000000000
--- a/deps/npm/node_modules/uuid/v1.js
+++ /dev/null
@@ -1,109 +0,0 @@
-var rng = require('./lib/rng');
-var bytesToUuid = require('./lib/bytesToUuid');
-
-// **`v1()` - Generate time-based UUID**
-//
-// Inspired by https://github.com/LiosK/UUID.js
-// and http://docs.python.org/library/uuid.html
-
-var _nodeId;
-var _clockseq;
-
-// Previous uuid creation time
-var _lastMSecs = 0;
-var _lastNSecs = 0;
-
-// See https://github.com/uuidjs/uuid for API details
-function v1(options, buf, offset) {
- var i = buf && offset || 0;
- var b = buf || [];
-
- options = options || {};
- var node = options.node || _nodeId;
- var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;
-
- // node and clockseq need to be initialized to random values if they're not
- // specified. We do this lazily to minimize issues related to insufficient
- // system entropy. See #189
- if (node == null || clockseq == null) {
- var seedBytes = rng();
- if (node == null) {
- // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)
- node = _nodeId = [
- seedBytes[0] | 0x01,
- seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]
- ];
- }
- if (clockseq == null) {
- // Per 4.2.2, randomize (14 bit) clockseq
- clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;
- }
- }
-
- // UUID timestamps are 100 nano-second units since the Gregorian epoch,
- // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so
- // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'
- // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.
- var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();
-
- // Per 4.2.1.2, use count of uuid's generated during the current clock
- // cycle to simulate higher resolution clock
- var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;
-
- // Time since last uuid creation (in msecs)
- var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;
-
- // Per 4.2.1.2, Bump clockseq on clock regression
- if (dt < 0 && options.clockseq === undefined) {
- clockseq = clockseq + 1 & 0x3fff;
- }
-
- // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new
- // time interval
- if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {
- nsecs = 0;
- }
-
- // Per 4.2.1.2 Throw error if too many uuids are requested
- if (nsecs >= 10000) {
- throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec');
- }
-
- _lastMSecs = msecs;
- _lastNSecs = nsecs;
- _clockseq = clockseq;
-
- // Per 4.1.4 - Convert from unix epoch to Gregorian epoch
- msecs += 12219292800000;
-
- // `time_low`
- var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;
- b[i++] = tl >>> 24 & 0xff;
- b[i++] = tl >>> 16 & 0xff;
- b[i++] = tl >>> 8 & 0xff;
- b[i++] = tl & 0xff;
-
- // `time_mid`
- var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;
- b[i++] = tmh >>> 8 & 0xff;
- b[i++] = tmh & 0xff;
-
- // `time_high_and_version`
- b[i++] = tmh >>> 24 & 0xf | 0x10; // include version
- b[i++] = tmh >>> 16 & 0xff;
-
- // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)
- b[i++] = clockseq >>> 8 | 0x80;
-
- // `clock_seq_low`
- b[i++] = clockseq & 0xff;
-
- // `node`
- for (var n = 0; n < 6; ++n) {
- b[i + n] = node[n];
- }
-
- return buf ? buf : bytesToUuid(b);
-}
-
-module.exports = v1;
diff --git a/deps/npm/node_modules/uuid/v3.js b/deps/npm/node_modules/uuid/v3.js
deleted file mode 100644
index ee7e14c0f0e..00000000000
--- a/deps/npm/node_modules/uuid/v3.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var v35 = require('./lib/v35.js');
-var md5 = require('./lib/md5');
-
-module.exports = v35('v3', 0x30, md5); \ No newline at end of file
diff --git a/deps/npm/node_modules/uuid/v4.js b/deps/npm/node_modules/uuid/v4.js
deleted file mode 100644
index 1f07be1c530..00000000000
--- a/deps/npm/node_modules/uuid/v4.js
+++ /dev/null
@@ -1,29 +0,0 @@
-var rng = require('./lib/rng');
-var bytesToUuid = require('./lib/bytesToUuid');
-
-function v4(options, buf, offset) {
- var i = buf && offset || 0;
-
- if (typeof(options) == 'string') {
- buf = options === 'binary' ? new Array(16) : null;
- options = null;
- }
- options = options || {};
-
- var rnds = options.random || (options.rng || rng)();
-
- // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
- rnds[6] = (rnds[6] & 0x0f) | 0x40;
- rnds[8] = (rnds[8] & 0x3f) | 0x80;
-
- // Copy bytes to buffer, if provided
- if (buf) {
- for (var ii = 0; ii < 16; ++ii) {
- buf[i + ii] = rnds[ii];
- }
- }
-
- return buf || bytesToUuid(rnds);
-}
-
-module.exports = v4;
diff --git a/deps/npm/node_modules/uuid/v5.js b/deps/npm/node_modules/uuid/v5.js
deleted file mode 100644
index 4945baf3854..00000000000
--- a/deps/npm/node_modules/uuid/v5.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var v35 = require('./lib/v35.js');
-var sha1 = require('./lib/sha1');
-module.exports = v35('v5', 0x50, sha1);
diff --git a/deps/npm/node_modules/verror/CHANGES.md b/deps/npm/node_modules/verror/CHANGES.md
deleted file mode 100644
index bbb745a2f32..00000000000
--- a/deps/npm/node_modules/verror/CHANGES.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# Changelog
-
-## Not yet released
-
-None yet.
-
-## v1.10.0
-
-* #49 want convenience functions for MultiErrors
-
-## v1.9.0
-
-* #47 could use VError.hasCauseWithName()
-
-## v1.8.1
-
-* #39 captureStackTrace lost when inheriting from WError
-
-## v1.8.0
-
-* #23 Preserve original stack trace(s)
-
-## v1.7.0
-
-* #10 better support for extra properties on Errors
-* #11 make it easy to find causes of a particular kind
-* #29 No documentation on how to Install this package
-* #36 elide development-only files from npm package
diff --git a/deps/npm/node_modules/verror/CONTRIBUTING.md b/deps/npm/node_modules/verror/CONTRIBUTING.md
deleted file mode 100644
index 750cef8dfd5..00000000000
--- a/deps/npm/node_modules/verror/CONTRIBUTING.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# Contributing
-
-This repository uses [cr.joyent.us](https://cr.joyent.us) (Gerrit) for new
-changes. Anyone can submit changes. To get started, see the [cr.joyent.us user
-guide](https://github.com/joyent/joyent-gerrit/blob/master/docs/user/README.md).
-This repo does not use GitHub pull requests.
-
-See the [Joyent Engineering
-Guidelines](https://github.com/joyent/eng/blob/master/docs/index.md) for general
-best practices expected in this repository.
-
-Contributions should be "make prepush" clean. The "prepush" target runs the
-"check" target, which requires these separate tools:
-
-* https://github.com/davepacheco/jsstyle
-* https://github.com/davepacheco/javascriptlint
-
-If you're changing something non-trivial or user-facing, you may want to submit
-an issue first.
diff --git a/deps/npm/node_modules/verror/LICENSE b/deps/npm/node_modules/verror/LICENSE
deleted file mode 100644
index 82a5cb8634f..00000000000
--- a/deps/npm/node_modules/verror/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2016, Joyent, Inc. All rights reserved.
-
-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/deps/npm/node_modules/verror/lib/verror.js b/deps/npm/node_modules/verror/lib/verror.js
deleted file mode 100644
index 8663ddeadc6..00000000000
--- a/deps/npm/node_modules/verror/lib/verror.js
+++ /dev/null
@@ -1,451 +0,0 @@
-/*
- * verror.js: richer JavaScript errors
- */
-
-var mod_assertplus = require('assert-plus');
-var mod_util = require('util');
-
-var mod_extsprintf = require('extsprintf');
-var mod_isError = require('core-util-is').isError;
-var sprintf = mod_extsprintf.sprintf;
-
-/*
- * Public interface
- */
-
-/* So you can 'var VError = require('verror')' */
-module.exports = VError;
-/* For compatibility */
-VError.VError = VError;
-/* Other exported classes */
-VError.SError = SError;
-VError.WError = WError;
-VError.MultiError = MultiError;
-
-/*
- * Common function used to parse constructor arguments for VError, WError, and
- * SError. Named arguments to this function:
- *
- * strict force strict interpretation of sprintf arguments, even
- * if the options in "argv" don't say so
- *
- * argv error's constructor arguments, which are to be
- * interpreted as described in README.md. For quick
- * reference, "argv" has one of the following forms:
- *
- * [ sprintf_args... ] (argv[0] is a string)
- * [ cause, sprintf_args... ] (argv[0] is an Error)
- * [ options, sprintf_args... ] (argv[0] is an object)
- *
- * This function normalizes these forms, producing an object with the following
- * properties:
- *
- * options equivalent to "options" in third form. This will never
- * be a direct reference to what the caller passed in
- * (i.e., it may be a shallow copy), so it can be freely
- * modified.
- *
- * shortmessage result of sprintf(sprintf_args), taking options.strict
- * into account as described in README.md.
- */
-function parseConstructorArguments(args)
-{
- var argv, options, sprintf_args, shortmessage, k;
-
- mod_assertplus.object(args, 'args');
- mod_assertplus.bool(args.strict, 'args.strict');
- mod_assertplus.array(args.argv, 'args.argv');
- argv = args.argv;
-
- /*
- * First, figure out which form of invocation we've been given.
- */
- if (argv.length === 0) {
- options = {};
- sprintf_args = [];
- } else if (mod_isError(argv[0])) {
- options = { 'cause': argv[0] };
- sprintf_args = argv.slice(1);
- } else if (typeof (argv[0]) === 'object') {
- options = {};
- for (k in argv[0]) {
- options[k] = argv[0][k];
- }
- sprintf_args = argv.slice(1);
- } else {
- mod_assertplus.string(argv[0],
- 'first argument to VError, SError, or WError ' +
- 'constructor must be a string, object, or Error');
- options = {};
- sprintf_args = argv;
- }
-
- /*
- * Now construct the error's message.
- *
- * extsprintf (which we invoke here with our caller's arguments in order
- * to construct this Error's message) is strict in its interpretation of
- * values to be processed by the "%s" specifier. The value passed to
- * extsprintf must actually be a string or something convertible to a
- * String using .toString(). Passing other values (notably "null" and
- * "undefined") is considered a programmer error. The assumption is
- * that if you actually want to print the string "null" or "undefined",
- * then that's easy to do that when you're calling extsprintf; on the
- * other hand, if you did NOT want that (i.e., there's actually a bug
- * where the program assumes some variable is non-null and tries to
- * print it, which might happen when constructing a packet or file in
- * some specific format), then it's better to stop immediately than
- * produce bogus output.
- *
- * However, sometimes the bug is only in the code calling VError, and a
- * programmer might prefer to have the error message contain "null" or
- * "undefined" rather than have the bug in the error path crash the
- * program (making the first bug harder to identify). For that reason,
- * by default VError converts "null" or "undefined" arguments to their
- * string representations and passes those to extsprintf. Programmers
- * desiring the strict behavior can use the SError class or pass the
- * "strict" option to the VError constructor.
- */
- mod_assertplus.object(options);
- if (!options.strict && !args.strict) {
- sprintf_args = sprintf_args.map(function (a) {
- return (a === null ? 'null' :
- a === undefined ? 'undefined' : a);
- });
- }
-
- if (sprintf_args.length === 0) {
- shortmessage = '';
- } else {
- shortmessage = sprintf.apply(null, sprintf_args);
- }
-
- return ({
- 'options': options,
- 'shortmessage': shortmessage
- });
-}
-
-/*
- * See README.md for reference documentation.
- */
-function VError()
-{
- var args, obj, parsed, cause, ctor, message, k;
-
- args = Array.prototype.slice.call(arguments, 0);
-
- /*
- * This is a regrettable pattern, but JavaScript's built-in Error class
- * is defined to work this way, so we allow the constructor to be called
- * without "new".
- */
- if (!(this instanceof VError)) {
- obj = Object.create(VError.prototype);
- VError.apply(obj, arguments);
- return (obj);
- }
-
- /*
- * For convenience and backwards compatibility, we support several
- * different calling forms. Normalize them here.
- */
- parsed = parseConstructorArguments({
- 'argv': args,
- 'strict': false
- });
-
- /*
- * If we've been given a name, apply it now.
- */
- if (parsed.options.name) {
- mod_assertplus.string(parsed.options.name,
- 'error\'s "name" must be a string');
- this.name = parsed.options.name;
- }
-
- /*
- * For debugging, we keep track of the original short message (attached
- * this Error particularly) separately from the complete message (which
- * includes the messages of our cause chain).
- */
- this.jse_shortmsg = parsed.shortmessage;
- message = parsed.shortmessage;
-
- /*
- * If we've been given a cause, record a reference to it and update our
- * message appropriately.
- */
- cause = parsed.options.cause;
- if (cause) {
- mod_assertplus.ok(mod_isError(cause), 'cause is not an Error');
- this.jse_cause = cause;
-
- if (!parsed.options.skipCauseMessage) {
- message += ': ' + cause.message;
- }
- }
-
- /*
- * If we've been given an object with properties, shallow-copy that
- * here. We don't want to use a deep copy in case there are non-plain
- * objects here, but we don't want to use the original object in case
- * the caller modifies it later.
- */
- this.jse_info = {};
- if (parsed.options.info) {
- for (k in parsed.options.info) {
- this.jse_info[k] = parsed.options.info[k];
- }
- }
-
- this.message = message;
- Error.call(this, message);
-
- if (Error.captureStackTrace) {
- ctor = parsed.options.constructorOpt || this.constructor;
- Error.captureStackTrace(this, ctor);
- }
-
- return (this);
-}
-
-mod_util.inherits(VError, Error);
-VError.prototype.name = 'VError';
-
-VError.prototype.toString = function ve_toString()
-{
- var str = (this.hasOwnProperty('name') && this.name ||
- this.constructor.name || this.constructor.prototype.name);
- if (this.message)
- str += ': ' + this.message;
-
- return (str);
-};
-
-/*
- * This method is provided for compatibility. New callers should use
- * VError.cause() instead. That method also uses the saner `null` return value
- * when there is no cause.
- */
-VError.prototype.cause = function ve_cause()
-{
- var cause = VError.cause(this);
- return (cause === null ? undefined : cause);
-};
-
-/*
- * Static methods
- *
- * These class-level methods are provided so that callers can use them on
- * instances of Errors that are not VErrors. New interfaces should be provided
- * only using static methods to eliminate the class of programming mistake where
- * people fail to check whether the Error object has the corresponding methods.
- */
-
-VError.cause = function (err)
-{
- mod_assertplus.ok(mod_isError(err), 'err must be an Error');
- return (mod_isError(err.jse_cause) ? err.jse_cause : null);
-};
-
-VError.info = function (err)
-{
- var rv, cause, k;
-
- mod_assertplus.ok(mod_isError(err), 'err must be an Error');
- cause = VError.cause(err);
- if (cause !== null) {
- rv = VError.info(cause);
- } else {
- rv = {};
- }
-
- if (typeof (err.jse_info) == 'object' && err.jse_info !== null) {
- for (k in err.jse_info) {
- rv[k] = err.jse_info[k];
- }
- }
-
- return (rv);
-};
-
-VError.findCauseByName = function (err, name)
-{
- var cause;
-
- mod_assertplus.ok(mod_isError(err), 'err must be an Error');
- mod_assertplus.string(name, 'name');
- mod_assertplus.ok(name.length > 0, 'name cannot be empty');
-
- for (cause = err; cause !== null; cause = VError.cause(cause)) {
- mod_assertplus.ok(mod_isError(cause));
- if (cause.name == name) {
- return (cause);
- }
- }
-
- return (null);
-};
-
-VError.hasCauseWithName = function (err, name)
-{
- return (VError.findCauseByName(err, name) !== null);
-};
-
-VError.fullStack = function (err)
-{
- mod_assertplus.ok(mod_isError(err), 'err must be an Error');
-
- var cause = VError.cause(err);
-
- if (cause) {
- return (err.stack + '\ncaused by: ' + VError.fullStack(cause));
- }
-
- return (err.stack);
-};
-
-VError.errorFromList = function (errors)
-{
- mod_assertplus.arrayOfObject(errors, 'errors');
-
- if (errors.length === 0) {
- return (null);
- }
-
- errors.forEach(function (e) {
- mod_assertplus.ok(mod_isError(e));
- });
-
- if (errors.length == 1) {
- return (errors[0]);
- }
-
- return (new MultiError(errors));
-};
-
-VError.errorForEach = function (err, func)
-{
- mod_assertplus.ok(mod_isError(err), 'err must be an Error');
- mod_assertplus.func(func, 'func');
-
- if (err instanceof MultiError) {
- err.errors().forEach(function iterError(e) { func(e); });
- } else {
- func(err);
- }
-};
-
-
-/*
- * SError is like VError, but stricter about types. You cannot pass "null" or
- * "undefined" as string arguments to the formatter.
- */
-function SError()
-{
- var args, obj, parsed, options;
-
- args = Array.prototype.slice.call(arguments, 0);
- if (!(this instanceof SError)) {
- obj = Object.create(SError.prototype);
- SError.apply(obj, arguments);
- return (obj);
- }
-
- parsed = parseConstructorArguments({
- 'argv': args,
- 'strict': true
- });
-
- options = parsed.options;
- VError.call(this, options, '%s', parsed.shortmessage);
-
- return (this);
-}
-
-/*
- * We don't bother setting SError.prototype.name because once constructed,
- * SErrors are just like VErrors.
- */
-mod_util.inherits(SError, VError);
-
-
-/*
- * Represents a collection of errors for the purpose of consumers that generally
- * only deal with one error. Callers can extract the individual errors
- * contained in this object, but may also just treat it as a normal single
- * error, in which case a summary message will be printed.
- */
-function MultiError(errors)
-{
- mod_assertplus.array(errors, 'list of errors');
- mod_assertplus.ok(errors.length > 0, 'must be at least one error');
- this.ase_errors = errors;
-
- VError.call(this, {
- 'cause': errors[0]
- }, 'first of %d error%s', errors.length, errors.length == 1 ? '' : 's');
-}
-
-mod_util.inherits(MultiError, VError);
-MultiError.prototype.name = 'MultiError';
-
-MultiError.prototype.errors = function me_errors()
-{
- return (this.ase_errors.slice(0));
-};
-
-
-/*
- * See README.md for reference details.
- */
-function WError()
-{
- var args, obj, parsed, options;
-
- args = Array.prototype.slice.call(arguments, 0);
- if (!(this instanceof WError)) {
- obj = Object.create(WError.prototype);
- WError.apply(obj, args);
- return (obj);
- }
-
- parsed = parseConstructorArguments({
- 'argv': args,
- 'strict': false
- });
-
- options = parsed.options;
- options['skipCauseMessage'] = true;
- VError.call(this, options, '%s', parsed.shortmessage);
-
- return (this);
-}
-
-mod_util.inherits(WError, VError);
-WError.prototype.name = 'WError';
-
-WError.prototype.toString = function we_toString()
-{
- var str = (this.hasOwnProperty('name') && this.name ||
- this.constructor.name || this.constructor.prototype.name);
- if (this.message)
- str += ': ' + this.message;
- if (this.jse_cause && this.jse_cause.message)
- str += '; caused by ' + this.jse_cause.toString();
-
- return (str);
-};
-
-/*
- * For purely historical reasons, WError's cause() function allows you to set
- * the cause.
- */
-WError.prototype.cause = function we_cause(c)
-{
- if (mod_isError(c))
- this.jse_cause = c;
-
- return (this.jse_cause);
-};
diff --git a/deps/npm/node_modules/verror/package.json b/deps/npm/node_modules/verror/package.json
deleted file mode 100644
index 79295c57a80..00000000000
--- a/deps/npm/node_modules/verror/package.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "name": "verror",
- "version": "1.10.0",
- "description": "richer JavaScript errors",
- "main": "./lib/verror.js",
- "repository": {
- "type": "git",
- "url": "git://github.com/davepacheco/node-verror.git"
- },
- "dependencies": {
- "assert-plus": "^1.0.0",
- "core-util-is": "1.0.2",
- "extsprintf": "^1.2.0"
- },
- "engines": [
- "node >=0.6.0"
- ],
- "scripts": {
- "test": "make test"
- },
- "license": "MIT"
-}
diff --git a/deps/npm/package.json b/deps/npm/package.json
index 38b45947706..70590a84e7e 100644
--- a/deps/npm/package.json
+++ b/deps/npm/package.json
@@ -1,5 +1,5 @@
{
- "version": "7.24.0",
+ "version": "8.0.0",
"name": "npm",
"description": "a package manager for JavaScript",
"workspaces": [
@@ -38,7 +38,7 @@
"lib": "./lib",
"man": "./man"
},
- "main": "./lib/npm.js",
+ "main": "./index.js",
"bin": {
"npm": "bin/npm-cli.js",
"npx": "bin/npx-cli.js"
@@ -46,19 +46,20 @@
"exports": {
".": [
{
- "default": "./lib/npm.js"
+ "default": "./index.js"
},
- "./lib/npm.js"
+ "./index.js"
],
"./package.json": "./package.json"
},
"dependencies": {
- "@npmcli/arborist": "^2.8.3",
+ "@isaacs/string-locale-compare": "^1.1.0",
+ "@npmcli/arborist": "^3.0.0",
"@npmcli/ci-detect": "^1.2.0",
"@npmcli/config": "^2.3.0",
"@npmcli/map-workspaces": "^1.0.4",
"@npmcli/package-json": "^1.0.1",
- "@npmcli/run-script": "^1.8.6",
+ "@npmcli/run-script": "^2.0.0",
"abbrev": "~1.1.1",
"ansicolors": "~0.3.2",
"ansistyles": "~0.1.3",
@@ -66,11 +67,11 @@
"cacache": "^15.3.0",
"chalk": "^4.1.2",
"chownr": "^2.0.0",
- "cli-columns": "^3.1.2",
+ "cli-columns": "^4.0.0",
"cli-table3": "^0.6.0",
"columnify": "~1.5.4",
"fastest-levenshtein": "^1.0.12",
- "glob": "^7.1.7",
+ "glob": "^7.2.0",
"graceful-fs": "^4.2.8",
"hosted-git-info": "^4.0.2",
"ini": "^2.0.0",
@@ -79,22 +80,22 @@
"json-parse-even-better-errors": "^2.3.1",
"libnpmaccess": "^4.0.2",
"libnpmdiff": "^2.0.4",
- "libnpmexec": "^2.0.1",
- "libnpmfund": "^1.1.0",
+ "libnpmexec": "^3.0.0",
+ "libnpmfund": "^2.0.0",
"libnpmhook": "^6.0.2",
"libnpmorg": "^2.0.2",
- "libnpmpack": "^2.0.1",
+ "libnpmpack": "^3.0.0",
"libnpmpublish": "^4.0.1",
"libnpmsearch": "^3.1.1",
"libnpmteam": "^2.0.3",
- "libnpmversion": "^1.2.1",
+ "libnpmversion": "^2.0.1",
"make-fetch-happen": "^9.1.0",
"minipass": "^3.1.3",
"minipass-pipeline": "^1.2.4",
"mkdirp": "^1.0.4",
"mkdirp-infer-owner": "^2.0.0",
"ms": "^2.1.2",
- "node-gyp": "^7.1.2",
+ "node-gyp": "^8.2.0",
"nopt": "^5.0.0",
"npm-audit-report": "^2.1.5",
"npm-install-checks": "^4.0.0",
@@ -105,7 +106,7 @@
"npm-user-validate": "^1.0.1",
"npmlog": "^5.0.1",
"opener": "^1.5.2",
- "pacote": "^11.3.5",
+ "pacote": "^12.0.0",
"parse-conflict-json": "^1.1.1",
"qrcode-terminal": "^0.12.0",
"read": "~1.0.7",
@@ -124,6 +125,7 @@
"write-file-atomic": "^3.0.3"
},
"bundleDependencies": [
+ "@isaacs/string-locale-compare",
"@npmcli/arborist",
"@npmcli/ci-detect",
"@npmcli/config",
@@ -228,13 +230,13 @@
"LC_ALL=sk"
],
"color": 1,
- "files": "test/{lib,bin}",
+ "files": "test/{lib,bin,index.js}",
"coverage-map": "test/coverage-map.js",
"check-coverage": true,
"timeout": 600
},
"license": "Artistic-2.0",
"engines": {
- "node": ">=10"
+ "node": "^12.13.0 || ^14.15.0 || >=16"
}
}
diff --git a/deps/npm/tap-snapshots/test/lib/publish.js.test.cjs b/deps/npm/tap-snapshots/test/lib/publish.js.test.cjs
index 13e8f7d4b49..7a7502e02e3 100644
--- a/deps/npm/tap-snapshots/test/lib/publish.js.test.cjs
+++ b/deps/npm/tap-snapshots/test/lib/publish.js.test.cjs
@@ -15,7 +15,6 @@ exports[`test/lib/publish.js TAP private workspaces colorless > should publish a
Array [
Object {
"_id": "@npmcli/b@1.0.0",
- "gitHead": "{GITHEAD}",
"name": "@npmcli/b",
"readme": "ERROR: No README data found!",
"version": "1.0.0",
@@ -33,7 +32,6 @@ exports[`test/lib/publish.js TAP private workspaces with color > should publish
Array [
Object {
"_id": "@npmcli/b@1.0.0",
- "gitHead": "{GITHEAD}",
"name": "@npmcli/b",
"readme": "ERROR: No README data found!",
"version": "1.0.0",
@@ -72,7 +70,6 @@ exports[`test/lib/publish.js TAP workspaces all workspaces > should publish all
Array [
Object {
"_id": "workspace-a@1.2.3-a",
- "gitHead": "{GITHEAD}",
"name": "workspace-a",
"readme": "ERROR: No README data found!",
"repository": Object {
@@ -86,7 +83,6 @@ Array [
"bugs": Object {
"url": "https://github.com/npm/workspace-b/issues",
},
- "gitHead": "{GITHEAD}",
"homepage": "https://github.com/npm/workspace-b#readme",
"name": "workspace-b",
"readme": "ERROR: No README data found!",
@@ -98,7 +94,6 @@ Array [
},
Object {
"_id": "workspace-n@1.2.3-n",
- "gitHead": "{GITHEAD}",
"name": "workspace-n",
"readme": "ERROR: No README data found!",
"version": "1.2.3-n",
@@ -128,7 +123,6 @@ exports[`test/lib/publish.js TAP workspaces json > should publish all workspaces
Array [
Object {
"_id": "workspace-a@1.2.3-a",
- "gitHead": "{GITHEAD}",
"name": "workspace-a",
"readme": "ERROR: No README data found!",
"repository": Object {
@@ -142,7 +136,6 @@ Array [
"bugs": Object {
"url": "https://github.com/npm/workspace-b/issues",
},
- "gitHead": "{GITHEAD}",
"homepage": "https://github.com/npm/workspace-b#readme",
"name": "workspace-b",
"readme": "ERROR: No README data found!",
@@ -154,7 +147,6 @@ Array [
},
Object {
"_id": "workspace-n@1.2.3-n",
- "gitHead": "{GITHEAD}",
"name": "workspace-n",
"readme": "ERROR: No README data found!",
"version": "1.2.3-n",
@@ -172,7 +164,6 @@ exports[`test/lib/publish.js TAP workspaces one workspace > should publish given
Array [
Object {
"_id": "workspace-a@1.2.3-a",
- "gitHead": "{GITHEAD}",
"name": "workspace-a",
"readme": "ERROR: No README data found!",
"repository": Object {
diff --git a/deps/npm/test/coverage-map.js b/deps/npm/test/coverage-map.js
index 63f2a608e0e..aff7a652771 100644
--- a/deps/npm/test/coverage-map.js
+++ b/deps/npm/test/coverage-map.js
@@ -11,7 +11,7 @@ const coverageMap = (filename) => {
// this one doesn't provide any coverage nyc can track
return []
}
- if (/^test\/(lib|bin)\//.test(filename))
+ if (/^test\/(lib\/|bin\/|index\.js$)/.test(filename))
return filename.replace(/^test\//, '')
return []
}
diff --git a/deps/npm/test/index.js b/deps/npm/test/index.js
new file mode 100644
index 00000000000..9f97709acf8
--- /dev/null
+++ b/deps/npm/test/index.js
@@ -0,0 +1,22 @@
+const t = require('tap')
+const index = require.resolve('../index.js')
+const packageIndex = require.resolve('../')
+t.equal(index, packageIndex, 'index is main package require() export')
+t.throws(() => require(index), {
+ message: 'The programmatic API was removed in npm v8.0.0',
+})
+
+t.test('loading as main module will load the cli', t => {
+ const { spawn } = require('child_process')
+ const LS = require('../lib/ls.js')
+ const ls = new LS({})
+ const p = spawn(process.execPath, [index, 'ls', '-h'])
+ const out = []
+ p.stdout.on('data', c => out.push(c))
+ p.on('close', (code, signal) => {
+ t.equal(code, 0)
+ t.equal(signal, null)
+ t.match(Buffer.concat(out).toString(), ls.usage)
+ t.end()
+ })
+})
diff --git a/deps/npm/test/lib/npm.js b/deps/npm/test/lib/npm.js
index 03bb46d8d84..7d61762470d 100644
--- a/deps/npm/test/lib/npm.js
+++ b/deps/npm/test/lib/npm.js
@@ -412,22 +412,6 @@ t.test('npm.load', t => {
t.end()
})
-t.test('loading as main will load the cli', t => {
- const { spawn } = require('child_process')
- const npm = require.resolve('../../lib/npm.js')
- const LS = require('../../lib/ls.js')
- const ls = new LS({})
- const p = spawn(process.execPath, [npm, 'ls', '-h'])
- const out = []
- p.stdout.on('data', c => out.push(c))
- p.on('close', (code, signal) => {
- t.equal(code, 0)
- t.equal(signal, null)
- t.match(Buffer.concat(out).toString(), ls.usage)
- t.end()
- })
-})
-
t.test('set process.title', t => {
t.test('basic title setting', async t => {
process.argv = [
@@ -501,3 +485,26 @@ t.test('timings', t => {
t.match(npm.timings, { foo: Number, bar: Number })
t.end()
})
+
+t.test('output clears progress and console.logs the message', t => {
+ const npm = require('../../lib/npm.js')
+ const logs = []
+ const { log } = console
+ const { log: { clearProgress, showProgress } } = npm
+ let showingProgress = true
+ npm.log.clearProgress = () => showingProgress = false
+ npm.log.showProgress = () => showingProgress = true
+ console.log = (...args) => {
+ t.equal(showingProgress, false, 'should not be showing progress right now')
+ logs.push(args)
+ }
+ t.teardown(() => {
+ console.log = log
+ npm.log.showProgress = showProgress
+ npm.log.clearProgress = clearProgress
+ })
+
+ npm.output('hello')
+ t.strictSame(logs, [['hello']])
+ t.end()
+})
diff --git a/deps/npm/test/lib/outdated.js b/deps/npm/test/lib/outdated.js
index 34a0aa6c9e0..518436d0af4 100644
--- a/deps/npm/test/lib/outdated.js
+++ b/deps/npm/test/lib/outdated.js
@@ -102,6 +102,10 @@ const outdated = (dir, opts) => {
t.beforeEach(() => logs = '')
+const { exitCode } = process
+
+t.afterEach(() => process.exitCode = exitCode)
+
const redactCwd = (path) => {
const normalizePath = p => p
.replace(/\\+/g, '/')
@@ -175,6 +179,7 @@ t.test('should display outdated deps', t => {
outdated(null, {
config: { global: true },
}).exec([], () => {
+ t.equal(process.exitCode, 1)
t.matchSnapshot(logs)
t.end()
})
@@ -187,6 +192,7 @@ t.test('should display outdated deps', t => {
},
color: true,
}).exec([], () => {
+ t.equal(process.exitCode, 1)
t.matchSnapshot(logs)
t.end()
})
@@ -200,6 +206,7 @@ t.test('should display outdated deps', t => {
},
color: true,
}).exec([], () => {
+ t.equal(process.exitCode, 1)
t.matchSnapshot(logs)
t.end()
})
@@ -213,6 +220,7 @@ t.test('should display outdated deps', t => {
},
color: true,
}).exec([], () => {
+ t.equal(process.exitCode, 1)
t.matchSnapshot(logs)
t.end()
})
@@ -226,6 +234,7 @@ t.test('should display outdated deps', t => {
},
color: true,
}).exec([], () => {
+ t.equal(process.exitCode, 1)
t.matchSnapshot(logs)
t.end()
})
@@ -238,6 +247,7 @@ t.test('should display outdated deps', t => {
long: true,
},
}).exec([], () => {
+ t.equal(process.exitCode, 1)
t.matchSnapshot(logs)
t.end()
})
@@ -250,6 +260,7 @@ t.test('should display outdated deps', t => {
json: true,
},
}).exec([], () => {
+ t.equal(process.exitCode, 1)
t.matchSnapshot(logs)
t.end()
})
@@ -263,6 +274,7 @@ t.test('should display outdated deps', t => {
long: true,
},
}).exec([], () => {
+ t.equal(process.exitCode, 1)
t.matchSnapshot(logs)
t.end()
})
@@ -275,6 +287,7 @@ t.test('should display outdated deps', t => {
parseable: true,
},
}).exec([], () => {
+ t.equal(process.exitCode, 1)
t.matchSnapshot(logs)
t.end()
})
@@ -288,6 +301,7 @@ t.test('should display outdated deps', t => {
long: true,
},
}).exec([], () => {
+ t.equal(process.exitCode, 1)
t.matchSnapshot(logs)
t.end()
})
@@ -299,6 +313,7 @@ t.test('should display outdated deps', t => {
all: true,
},
}).exec([], () => {
+ t.equal(process.exitCode, 1)
t.matchSnapshot(logs)
t.end()
})
@@ -310,6 +325,7 @@ t.test('should display outdated deps', t => {
global: false,
},
}).exec(['cat'], () => {
+ t.equal(process.exitCode, 1)
t.matchSnapshot(logs)
t.end()
})
@@ -540,6 +556,7 @@ t.test('workspaces', async t => {
rej(err)
t.matchSnapshot(logs, 'should display ws outdated deps human output')
+ t.equal(process.exitCode, 1)
res()
})
})
@@ -554,6 +571,7 @@ t.test('workspaces', async t => {
rej(err)
t.matchSnapshot(logs, 'should display ws outdated deps json output')
+ t.equal(process.exitCode, 1)
res()
})
})
@@ -568,6 +586,7 @@ t.test('workspaces', async t => {
rej(err)
t.matchSnapshot(logs, 'should display ws outdated deps parseable output')
+ t.equal(process.exitCode, 1)
res()
})
})
@@ -582,6 +601,7 @@ t.test('workspaces', async t => {
rej(err)
t.matchSnapshot(logs, 'should display all dependencies')
+ t.equal(process.exitCode, 1)
res()
})
})
@@ -594,6 +614,7 @@ t.test('workspaces', async t => {
rej(err)
t.matchSnapshot(logs, 'should highlight ws in dependend by section')
+ t.equal(process.exitCode, 1)
res()
})
})
@@ -604,6 +625,7 @@ t.test('workspaces', async t => {
rej(err)
t.matchSnapshot(logs, 'should display results filtered by ws')
+ t.equal(process.exitCode, 1)
res()
})
})
@@ -618,6 +640,7 @@ t.test('workspaces', async t => {
rej(err)
t.matchSnapshot(logs, 'should display json results filtered by ws')
+ t.equal(process.exitCode, 1)
res()
})
})
@@ -632,6 +655,7 @@ t.test('workspaces', async t => {
rej(err)
t.matchSnapshot(logs, 'should display parseable results filtered by ws')
+ t.equal(process.exitCode, 1)
res()
})
})
@@ -647,6 +671,7 @@ t.test('workspaces', async t => {
t.matchSnapshot(logs,
'should display nested deps when filtering by ws and using --all')
+ t.equal(process.exitCode, 1)
res()
})
})
@@ -669,6 +694,7 @@ t.test('workspaces', async t => {
t.matchSnapshot(logs,
'should display missing deps when filtering by ws')
+ t.equal(process.exitCode, 1)
res()
})
})
diff --git a/deps/npm/test/lib/publish.js b/deps/npm/test/lib/publish.js
index 6e0075835c2..df73b6863b3 100644
--- a/deps/npm/test/lib/publish.js
+++ b/deps/npm/test/lib/publish.js
@@ -9,14 +9,10 @@ const fs = require('fs')
const log = require('npmlog')
log.level = 'silent'
-const cleanGithead = (result) => {
- return result.map((r) => {
- if (r.gitHead)
- r.gitHead = '{GITHEAD}'
-
- return r
- })
+t.cleanSnapshot = (data) => {
+ return data.replace(/^ *"gitHead": .*$\n/gm, '')
}
+
const {definitions} = require('../../lib/utils/config')
const defaults = Object.entries(definitions).reduce((defaults, [key, def]) => {
defaults[key] = def.default
@@ -589,7 +585,7 @@ t.test('workspaces', (t) => {
log.level = 'info'
publish.execWorkspaces([], [], (err) => {
t.notOk(err)
- t.matchSnapshot(cleanGithead(publishes), 'should publish all workspaces')
+ t.matchSnapshot(publishes, 'should publish all workspaces')
t.matchSnapshot(outputs, 'should output all publishes')
t.end()
})
@@ -599,7 +595,7 @@ t.test('workspaces', (t) => {
log.level = 'info'
publish.execWorkspaces([], ['workspace-a'], (err) => {
t.notOk(err)
- t.matchSnapshot(cleanGithead(publishes), 'should publish given workspace')
+ t.matchSnapshot(publishes, 'should publish given workspace')
t.matchSnapshot(outputs, 'should output one publish')
t.end()
})
@@ -618,7 +614,7 @@ t.test('workspaces', (t) => {
npm.config.set('json', true)
publish.execWorkspaces([], [], (err) => {
t.notOk(err)
- t.matchSnapshot(cleanGithead(publishes), 'should publish all workspaces')
+ t.matchSnapshot(publishes, 'should publish all workspaces')
t.matchSnapshot(outputs, 'should output all publishes as json')
t.end()
})
@@ -707,7 +703,7 @@ t.test('private workspaces', (t) => {
npm.color = true
publish.execWorkspaces([], [], (err) => {
t.notOk(err)
- t.matchSnapshot(cleanGithead(publishes), 'should publish all non-private workspaces')
+ t.matchSnapshot(publishes, 'should publish all non-private workspaces')
t.matchSnapshot(outputs, 'should output all publishes')
npm.color = false
t.end()
@@ -734,7 +730,7 @@ t.test('private workspaces', (t) => {
publish.execWorkspaces([], [], (err) => {
t.notOk(err)
- t.matchSnapshot(cleanGithead(publishes), 'should publish all non-private workspaces')
+ t.matchSnapshot(publishes, 'should publish all non-private workspaces')
t.matchSnapshot(outputs, 'should output all publishes')
t.end()
})
diff --git a/deps/npm/test/lib/utils/open-url.js b/deps/npm/test/lib/utils/open-url.js
index a31a8cb6867..36724d0adf7 100644
--- a/deps/npm/test/lib/utils/open-url.js
+++ b/deps/npm/test/lib/utils/open-url.js
@@ -47,11 +47,10 @@ t.test('returns error for non-https and non-file url', async (t) => {
openerOpts = null
OUTPUT.length = 0
})
- t.rejects(openUrl(npm, 'ftp://www.npmjs.com', 'npm home'), /Invalid URL/, 'got the correct error')
+ await t.rejects(openUrl(npm, 'ftp://www.npmjs.com', 'npm home'), /Invalid URL/, 'got the correct error')
t.equal(openerUrl, null, 'did not open')
t.same(openerOpts, null, 'did not open')
t.same(OUTPUT, [], 'printed no output')
- t.end()
})
t.test('returns error for non-parseable url', async (t) => {
@@ -60,11 +59,22 @@ t.test('returns error for non-parseable url', async (t) => {
openerOpts = null
OUTPUT.length = 0
})
- t.rejects(openUrl(npm, 'git+ssh://user@host:repo.git', 'npm home'), /Invalid URL/, 'got the correct error')
+ await t.rejects(openUrl(npm, 'git+ssh://user@host:repo.git', 'npm home'), /Invalid URL/, 'got the correct error')
t.equal(openerUrl, null, 'did not open')
t.same(openerOpts, null, 'did not open')
t.same(OUTPUT, [], 'printed no output')
- t.end()
+})
+
+t.test('encodes non-URL-safe characters in url provided', async (t) => {
+ t.teardown(() => {
+ openerUrl = null
+ openerOpts = null
+ OUTPUT.length = 0
+ })
+ await openUrl(npm, 'https://www.npmjs.com/|cat', 'npm home')
+ t.equal(openerUrl, 'https://www.npmjs.com/%7Ccat', 'opened the encoded url')
+ t.same(openerOpts, { command: null }, 'passed command as null (the default)')
+ t.same(OUTPUT, [], 'printed no output')
})
t.test('opens a url with the given browser', async (t) => {
@@ -79,7 +89,6 @@ t.test('opens a url with the given browser', async (t) => {
t.equal(openerUrl, 'https://www.npmjs.com', 'opened the given url')
t.same(openerOpts, { command: 'chrome' }, 'passed the given browser as command')
t.same(OUTPUT, [], 'printed no output')
- t.end()
})
t.test('prints where to go when browser is disabled', async (t) => {
@@ -96,7 +105,6 @@ t.test('prints where to go when browser is disabled', async (t) => {
t.equal(OUTPUT.length, 1, 'got one logged message')
t.equal(OUTPUT[0].length, 1, 'logged message had one value')
t.matchSnapshot(OUTPUT[0][0], 'printed expected message')
- t.end()
})
t.test('prints where to go when browser is disabled and json is enabled', async (t) => {
@@ -115,7 +123,6 @@ t.test('prints where to go when browser is disabled and json is enabled', async
t.equal(OUTPUT.length, 1, 'got one logged message')
t.equal(OUTPUT[0].length, 1, 'logged message had one value')
t.matchSnapshot(OUTPUT[0][0], 'printed expected message')
- t.end()
})
t.test('prints where to go when given browser does not exist', async (t) => {
@@ -133,7 +140,6 @@ t.test('prints where to go when given browser does not exist', async (t) => {
t.equal(OUTPUT.length, 1, 'got one logged message')
t.equal(OUTPUT[0].length, 1, 'logged message had one value')
t.matchSnapshot(OUTPUT[0][0], 'printed expected message')
- t.end()
})
t.test('handles unknown opener error', async (t) => {
@@ -146,5 +152,4 @@ t.test('handles unknown opener error', async (t) => {
npm.config.set('browser', true)
})
t.rejects(openUrl(npm, 'https://www.npmjs.com', 'npm home'), 'failed', 'got the correct error')
- t.end()
})
diff --git a/deps/npm/test/lib/utils/unsupported.js b/deps/npm/test/lib/utils/unsupported.js
index 3a05d906660..4d806cefc4e 100644
--- a/deps/npm/test/lib/utils/unsupported.js
+++ b/deps/npm/test/lib/utils/unsupported.js
@@ -27,10 +27,15 @@ const versions = [
['v7.2.3', false, true],
['v8.4.0', false, true],
['v9.3.0', false, true],
- ['v10.0.0-0', false, false],
- ['v11.0.0-0', false, false],
- ['v12.0.0-0', false, false],
- ['v13.0.0-0', false, false],
+ ['v10.0.0-0', false, true],
+ ['v11.0.0-0', false, true],
+ ['v12.0.0-0', false, true],
+ ['v12.13.0-0', false, false],
+ ['v13.0.0-0', false, true],
+ ['v14.0.0-0', false, true],
+ ['v14.15.0-0', false, false],
+ ['v15.0.0-0', false, true],
+ ['v16.0.0-0', false, false],
]
t.test('versions', function (t) {